#include<iostream>
#include<math.h>
using namespace std;
const int n=3;
void Gauss_Seidel();
double A[n][n]={{3,1,1},{1,3,-1},{3,1.0,-5.0}};//系数矩阵
double B[n]={5,3,-1}; ///
int main()
{
Gauss_Seidel();
}
void Gauss_Seidel()
{
double X[n]={0,0,0,};
for (int k=0;k<1000;k++)
{
for(int i=0;i<n;i++)
{
double sum=0;
for(int j=0;j<n;j++)
{
if(j==i) continue; //跳过aii
sum+=A[i][j]*X[j];
}
X[i]=(B[i]-sum)/A[i][i]; ///计算完新的x[i],旧的x[i]会被自然冲掉
}
}
for (int i=0;i<n;i++)
cout<<X[i]<<'\t';
cout<<endl;
}
C++高斯赛德迭代法,求线性方程组的解(version1.0)
最新推荐文章于 2021-12-14 10:35:14 发布