C++高斯赛德迭代法,求线性方程组的解(version1.0)
生活随笔
收集整理的這篇文章主要介紹了
C++高斯赛德迭代法,求线性方程组的解(version1.0)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#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; //跳過aiisum+=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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ for循环跳过某一项求和
- 下一篇: C++理解全局变量在调用函数中的应用