📄 赛德尔迭代法.cpp
字号:
//
#include <iostream.h>
#include <math.h>
int main()
{
int i,j,n;
long double x[100],B[100][100],F[100],e,sum,a,max=0;
cout<<"***************赛德尔迭代法***************"<<endl;
cout<<"输入方程组的阶数n=";
cin>>n;
cout<<"输入允许的误差e=";
cin>>e;
cout<<"输入系数矩阵B:"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>B[i][j];
cout<<"输入左端项F:"<<endl;
for(i=1;i<=n;i++)
cin>>F[i];
for(i=1;i<=n;i++)
x[i]=0;
while(1)
{
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
sum=sum+B[i][j]*x[j];
}
a=x[i];
x[i]=sum+F[i];
if(fabs(x[i]-a)>max) max=fabs(x[i]-a);
}
if(max<e)
{
for(i=1;i<=n;i++)
cout<<"x["<<i<<"]="<<x[i]<<" ";
return 1;
}
else max=0;
}
cout<<"N次迭代后不收敛;"<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -