高斯消去法代码

高斯消去法代码高斯消去法 c 代码顺序高斯列选主元 include lt cstdio gt include lt iostream gt include lt algorithm gt include lt cmath gt usingnamespa constintn 3 执行程序前手动改变方程数 voidgauss doublea n n

高斯消去法c++代码

顺序高斯 列选主元

#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int n = 3;//执行程序前手动改变方程数 void gauss(double a[n][n+1],double x[n]) { 
    int i,j,k; double temp,s,l; for(i=0;i<n-1;i++) { 
    k=i; for(j=i+1;j<n;j++) { 
    if(fabs(a[j][i])>fabs(a[k][i])) k=j; } if(k!=i) for(j=i;j<=n;j++) swap(a[i][j], a[k][j]); for(j=i+1;j<n;j++) { 
    l=1.0*a[j][i]/a[i][i]; for(k=0;k<n+1;k++) a[j][k]=a[j][k]-a[i][k]*l; } } x[n-1]=a[n-1][n]/a[n-1][n-1]; for(i=n-2;i>=0;i--) { 
    s=0.0; for(j=i;j<n;j++) { 
    if(j==i) continue; s+=a[i][j]*x[j]; } x[i]=(a[i][n]-s)/a[i][i]; } } int main() { 
    double temp[n][n+1]; double x[n]; cout<<"该程序初设定为三个方程三个未知量的求解,如需求解其他类型请打开源代码改变n的值"<<endl; for(int i = 0;i < n;i++) for(int j = 0;j <= n;j++) cin >> temp[i][j]; gauss(temp, x); for(int i = 0;i < n;i++) cout << "X" << i << "=:" << x[i] << endl; return 0; }2】实现列主元高斯消去法,运行后查看运行结果。 【源代码粘贴处】: #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int n = 3;//执行程序前手动改变方程数 void ColPivot(double c[n][n+1],double x[]) { 
    int i,j,k; double p,maxs; double t[n]; for(i=0;i<=n-2;i++) { 
    maxs=0; k=i; for(j=i+1;j<n;j++) if(fabs(c[j][i])>maxs) { 
    k=j; maxs=fabs(c[j][i]); } if(k!=i) for(j=i;j<=n;j++) swap(c[i][j], c[k][j]); for(j=i+1;j<n;j++) { 
    p=c[j][i]/c[i][i]; for(k=i;k<=n;k++) c[j][k]-=p*c[i][k]; } } for(i=0;i<n;i++) t[i]=c[i][n]; for(i=n-1;i>=0;i--) { 
    for(j=n-1;j>i;j--) t[i]-=c[i][j]*x[j]; x[i]=t[i]/c[i][i]; } } int main() { 
    double temp[n][n+1]; double x[n]; cout<<"该程序初设定为三个方程三个未知量的求解,如需求解其他类型请打开源代码改变n的值"<<endl; for(int i = 0;i < n;i++) for(int j = 0;j <= n;j++) cin >> temp[i][j]; ColPivot(temp, x); for(int i = 0;i < n;i++) cout << "X" << i << "=:" << x[i] << endl; return 0; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202873.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:06
下一篇 2026年3月19日 下午11:06


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号