基于C++的n阶线性方程组Ax=b求解
来源:互联网 发布:js实现5秒倒计时 编辑:程序博客网 时间:2024/05/16 05:51
基于C++的n阶线性方程组Ax=b求解:
bool CUtil::Solve(double** A, double* b, double* x, int n){ double** M = new double*[n]; for (int i=0; i<n; i++) { M[i] = new double[n+1]; for (int j=0; j<n; j++) { M[i][j] = A[i][j]; } M[i][n] = b[i]; } for (int k=0; k<n; k++) {//n个主元 double colMax = fabs(M[k][k]); int maxLineIndex = k; for(int i=k+1; i<n; i++) {//寻找第k列的最大元素 if(fabs(M[i][k]) > colMax) { colMax = fabs(M[i][k]); maxLineIndex = i; } } if(colMax < EPSILONG) {//奇异矩阵 for (int i=0; i<n; i++) { delete M[i]; } delete M; return false; } double temp; //交换k行和maxLineIndex行 for (int m=0; m<n+1; m++) { temp = M[k][m]; M[k][m] = M[maxLineIndex][m]; M[maxLineIndex][m] = temp; } //消去 for(int i=k+1; i<n; i++) { for (int j=k+1; j<n+1; j++) { M[i][j] = M[k][k]*M[i][j]/M[i][k] - M[k][j]; } } } //回归求解 for (int i=n-1; i>=0; i--) { x[i] = M[i][n]; for (int j=i+1; j<n; j++) { x[i] -= M[i][j]*x[j]; } x[i] /= M[i][i]; } for (int i=0; i<n; i++) { delete M[i]; } delete M; return true; }
2 0
- 基于C++的n阶线性方程组Ax=b求解
- 基于C++的n阶线性方程组Ax=b求解
- C语言求解线性方程组AX=b
- 线性方程组 Ax=b 求解(Chapter28)
- Matlab求解线性方程组Ax=b的几种常见方法Matlab求解线性方程组Ax=b的几种常见方法
- 欠定线性方程组Ax=b的稀疏解
- PETSc 库解线性方程组Ax = b
- 线性方程组的求解(C++)
- 求解Ax=b:可解性和解的结构
- 求解方程Ax=b的通用程序
- 欠定线性方程组Ax=b的稀疏解, 一篇关于稀疏信号处理
- 线性代数(十二) : 线性方程组Ax=b可解性与解的结构
- eigen求解方程Ax=b
- 求解ax^2+bx+c=0的根
- The Balance(扩张欧几里得求线性方程ax+by=c或模线性方程ax=b (mod n)的完善模板)
- 龙贝格法求解线性方程组(c++)
- C语言求解线性方程组
- 高斯消元法解方程Ax=b的C源代码实现
- Velocity 语法(转)
- Phonegap
- Filter拒绝浏览器缓存
- 二叉树前序、中序、后序遍历相互求法
- 安装QEMU,虚拟mini2440开发板
- 基于C++的n阶线性方程组Ax=b求解
- Maximum Gap
- 在Myeclipse中的动态web工程如何加入struts配置文件
- Ionic开发时,默认样式android和ios的一些不同
- Unicode和字符编码总结
- 获取键盘的高度变化
- CMS
- 设计模式:19 分公司=一部门_组合模式
- Velocity教程