高斯赛德尔迭代法
高斯赛德尔迭代法 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");
}
}

浙公网安备 33010602011771号