📄 seidel.cpp
字号:
#define N 4 //方程个数
#include <math.h>
#include <iostream>
using namespace std;
int main()
{
float a[N][N],b[N],x1[N],x2[N];
int i,j,count=1;
//输入方程组的系数矩阵
cout<<"请输入方程组的系数矩阵:"<<endl;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
//输入方程组右边的值
cout<<"请输入方程组右边的值:"<<endl;
for(i=0;i<N;i++)
cin>>b[i];
//输入迭代初值
cout<<"请输入X的初始值:"<<endl;
for(i=0;i<N;i++)
cin>>x1[i];
while(1)
{
float st;
for(i=0;i<N;i++)
{
float st1=0,st2=0;
for(j=0;j<i;j++)
st1+=a[i][j]*x2[j];//Jacobi法时st1+=a[i][j]*x1[j];
for(j=i+1;j<N;j++)
st2+=a[i][j]*x1[j];
x2[i]=(b[i]-st1-st2)/a[i][i];
}
st=fabs(x1[0]-x2[0]);
if(st<0.0001)
break;
for(i=0;i<N;i++)
x1[i]=x2[i];
count++;
}
cout<<"迭代成功,GuassSeidel迭代次数为:"<<count<<endl;//Jacobi时将此行注释
cout<<"方程组的解为:";
for(i=0;i<N;i++)
cout<<"X"<<i+1<<"="<<x1[i]<<" ";;
cout<<endl;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -