迭代法的突出优点是算法简单,因而写成程序比较容易,然而迭代法又要求系数矩阵在迭代过程中保持收敛(要求对角占优),否则发散的迭代没有实用价值。
1>Jacobi迭代法
对于线性方程组∑aij*xj=bi,转化为xi=(bi-∑aij*xj)/aij,选取迭代初值x1=x2=x3=0,将其代入迭代,不断用第k步的值进行迭代出k+1步,直至逼近所要的结果。
do{
cout<<endl;
error1=0;//清零
for(i=0;i<row;i++)
{
temp=0;
for(j=0;j<line;j++)
if(j!=i)temp=temp+matrix[i][j]*x[j];
x1[i]=(result[i]-temp)/matrix[i][i];
cout<<x1[i]<<"\t";
if(ABS(x1[i]-x[i])>error1)error1=ABS(x1[i]-x[i]);//寻找最大误差
}
for(j=0;j<line;j++)x[j]=x1[j];
}while(error1>error);//精度控制