高斯赛德尔迭代法

高斯赛德尔迭代法 p75-11(2)

#include <iostream>
#include <math.h>
using namespace std;
int main()

{
 double a[3][3]={{1,2,-2},{1,1,1},{2,2,1}},b[3]={1,-1,0};

double  x[3]={0,0,0},sum1,sum2;

int i,j,k,n=3;

for (k=0;k<5;k++)

{ for(i=0;i<n;i++)

    { sum1=0;sum2=0;

     for(j=0;j<i-1;j++)

      { sum1=sum1+a[i][j]*x[j];

      }

     for(j=i+1;j<n;j++)

     {sum2=sum2+a[i][j]*x[j];}

     x[i]=(b[i]-sum1-sum2)/a[i][i];

    }

   for(i=0;i<n;i++)

    { printf("x%d=%-15f",i+1,x[i]);}

     printf("\n"); 

} 

}
posted @ 2020-10-24 16:51  星卅  阅读(309)  评论(0)    收藏  举报