高斯法解方程组
void gauss(double a[3][3], double b[], int m, double x[]) { for (int i=0; i<m; i++) { float tmp = a[i][i]; int t; //选主元 for (int k=i+1; k<m; k++) { if (fabs(tmp) < fabs(a[k][i])) { t=k; tmp = a[k][i]; } } //列主元(换行) for (int j=i; j<m; j++) { tmp=a[i][j]; a[i][j]=a[t][j]; a[t][j]=tmp; } tmp = b[i]; b[i] = b[t]; b[t] = tmp; //列消去 for(int k=i+1;k<m;k++) { a[k][i]=a[k][i]/a[i][i]; for(int j=i+1;j<m;j++) { a[k][j]=a[k][j]-a[k][i]*a[i][j]; } b[k]=b[k]-a[k][i]*b[i]; } } //回代 x[m-1]=b[m-1]/a[m-1][m-1]; for(int i=m-2;i>=0;i--) { for(int k=m-1;k>i;k--) { b[i]=b[i]-a[i][k]*x[k]; } x[i]=b[i]/a[i][i]; } }
作者:涵曦(www.hanxi.cc)
出处:hanxi.cnblogs.com
GitHub:github.com/hanxi
Email:im.hanxi@gmail.com
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
《 Skynet 游戏服务器开发实战》
-
学习地址:
-
优惠推荐码:
2CZ2UA5u
-
可以先免费试学前 2 章内容