ページ 11

初心者です ガウス・ザイデル法

Posted: 2015年6月20日(土) 23:02
by kohaA
ガウス・ザイデル法で連立一次方程式をときたいのですが
コンパイルできなくて困ってます(すごく初歩的なミスなんですけどどこを間違えているのか見つけられず早1時間…)
そもそもガウス・ザイデル法を書けているのか(;_;)

コード:

#include<stdio.h>
#define n 3

int main()
{
  int i,j,k;
  double a[n+1][n+1],b[n+1],x[n+1],z=0;

  a[1][1]=6;  a[1][2]=5;  a[1][3]=4;  b[1]=8;
  a[2][1]=12; a[2][2]=13; a[2][3]=10; b[2]=16;
  a[3][1]=18; a[3][2]=21; a[3][3]=17; b[3]=27;
  x[1]=0; x[2]=0; x[3]=0;

  for(k=1;k<=300;k++)
    {
      for(i=1;i<=n;i++)
	{
	  for(j=1;j<=n;j++)
	    {
	      if(i!=j)
		{
		  z+=a[i][j]*x[j];
		}
	    }
	  x[i]=(b[i]-z)/a[i][i];
	  printf("%f",x[i]);
	}
    }
  return 0;
}

Re: 初心者です ガウス・ザイデル法

Posted: 2015年6月20日(土) 23:17
by みけCAT
kohaA さんが書きました:コンパイルできなくて困ってます(すごく初歩的なミスなんですけどどこを間違えているのか見つけられず早1時間…)
6行目の,nが蛇足です。削除してください。

Re: 初心者です ガウス・ザイデル法

Posted: 2015年6月20日(土) 23:23
by kohaA
ありがとうございましたコンパイルは出きるようになりました

ガウスザイデル方として式はあっているのでしょうか・・・?

Re: 初心者です ガウス・ザイデル法

Posted: 2015年6月20日(土) 23:27
by みけCAT
kohaA さんが書きました:ガウスザイデル方として式はあっているのでしょうか・・・?
各要素の計算の前にzを初期化していないので、間違っていると思います。

ガウス=ザイデル法 - Wikipedia

Re: 初心者です ガウス・ザイデル法

Posted: 2015年6月20日(土) 23:31
by kohaA
そうでした!!!ありがとうございまう!