?? jacobi迭代法解方程組.txt
字號:
#include<iostream.h>
#include<math.h>
int K;
void Jacobi(double A[6][6],double x[2][6],double b[6],int n)
{ int i,j,k,r;
double s,t;
for(k=1;;k++)
{ for(i=0;i<n;i++)
{ s=0.0;
for(j=0;j<n;j++)
{ if(j!=i)
{ if(k%2==0)
s=s+A[i][j]*x[1][j];
else s=s+A[i][j]*x[0][j];
}
}
if(k%2==0)
{ x[0][i]=(b[i]-s)/A[i][i];}
else x[1][i]=(b[i]-s)/A[i][i];
}
t=0.0;
for(r=0;r<n;r++)
{ t=t+(x[1][r]-x[0][r])*(x[1][r]-x[0][r]);}
if(sqrt(t)<=(1e-5))
break;
}
K=k;
cout<<k<<endl;
}
void main()
{ int i,j,n=6;
double b[6]={0,5,0,6,-2,6};
double A[6][6]={{4,-1,0,-1,0,0},{-1,4,-1,0,-1,0},{0,-1,4,0,0,-1},{-1,0,0,4,-1,0},{0,-1,0,-1,4,-1},{0,0,-1,0,-1,4}};
double x[2][6]={{1,1,1,1,1,1},{0,0,0,0,0,0}};
Jacobi(A,x,b,n);
for(i=0;i<n;i++)
{ if(K%2==0)
cout<<x[0][i]<<endl;
else cout<<x[1][i]<<endl;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -