?? jacobi.cpp
字號:
#include <iostream.h>
#include <math.h>
int main()
{
const int N=3;
/*const long int MAX=10000000;*/
double a[N][N];
double x0[N]={0,0,0};
double x[N]={1,1,1}; //只是為了循環的時候方便
double b[N];
cout<<"請輸入數組a"<<endl;
for (int i=0;i<N;i++)
for (int j=0;j<N;j++)
cin>>a[i][j];
cout<<"請輸入數組b"<<endl;
for ( i=0;i<N;i++)
cin>>b[i];
//進行迭代
for (int k=1;k<=15/*MAX*/;k++)
{
for (int i=0;i<N;i++)
{
for (int j=0;j<N;j++)
if(j!=i)
{
x[i]=b[i]-a[i][j]*x0[j];
x[i]=x[i]/a[i][i];
}
}
//計算兩個結果的差
double c=x0[0]-x[0];
double max=fabs(c);
for (int q=1;q<N;q++)
{
c=x0[q]-x[q];
if(fabs(c)>max)
max=fabs(c);
}
/* //考察精度
if(max<1.0E-5)
{
cout<<"The reusult is:"<<endl;
for(int i=0;i<N;i++)
cout<<"x"<<i<<"="<<x[i]<<" "<<endl;
return 0;
}
else
{
for(int i=0;i<N;i++)*/
x0[i]=x[i];
/*}*/
}
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
for(i=0;i<N;i++)
cout<<x[i]<<endl;
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
return 1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -