?? 迭代法求解線形方程組.cpp
字號:
#include<iostream.h>
#include<iomanip.h>
void Output(double a[4][5],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=n;j++)
{
cout<<setw(12)<<a[i][j];
}
cout<<endl;
}
}
void main()
{
int n=4;
double a[4][5]={
{7,2 ,1,-2,4},
{9,15,3,-2,7},
{-2,-2,11,5,-1},
{1,3 ,2,13,0},
};
int i=0,j=0,count=0;
double k=0,l=0;
double temp=0,sum=0;
for(i=0;i<=n-1;i++)
{
temp=a[i][i];
for(j=0;j<=n;j++)
{
if(j!=n)a[i][j]=-a[i][j]/temp;
else a[i][j]=a[i][j]/temp;
}
}
a[0][0]=1;
a[1][1]=1;
a[2][2]=1;
a[3][3]=1;
cout<<"構造方程組后:"<<endl;
Output(a,n);
a[0][0]=0;
a[1][1]=0;
a[2][2]=0;
a[3][3]=0;
do{
cout<<"count="<<count<<endl;
k=a[0][0];
for(i=0;i<=n-1;i++)
{
sum=0;
for(j=0;j<=n;j++)
{
if(j!=i&&j<n)
{
sum+=a[i][j]*a[j][j];
}
else if(j==n)
{sum+=a[i][j];}
a[i][i]=sum;
}
cout<<"x"<<i+1<<"="<<a[i][i]<<'\t';
}
cout<<endl;
count++;
l=a[0][0];
}while(l-k>0.0000001||l-k<-0.0000001);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -