📄 seidel.cpp
字号:
//gauss-seidel迭代法解Ax=b的解;
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
#define N 100
void main()
{
cout<<"gauss-seidel迭代法解Ax=b的解:\n";
int i,j,n;
double t,p;
double a[N][N],b[N],x[N],temp,pe;
cout<<"请输入A的阶数:\n";
cin>>n;
cout<<"请输入A:\n";
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cout<<"请输入列向量b:\n";
for(i=0;i<n;i++)
cin>>b[i];
cout<<"请输入精度要求pe:\n";
cin>>pe;
for(i=0;i<n;i++)
x[i]=0;
do
{
p=0;
for(i=0;i<n;i++)
{
t=x[i];
temp=0;
for(j=0;j<n;j++)
if(j!=i) temp+=a[i][j]*x[j];
x[i]=(b[i]-temp)/a[i][i];
if(fabs(x[i]-t)>p) p=fabs(x[i]-t);
}
}while(p>pe);
cout<<"解为:\n";
for(i=0;i<n;i++)
cout<<"x"<<i+1<<"="<<x[i]<<"\n";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -