gauss-jordan 消元法
2011-03-25 11:12
323 查看
gauss-jordan消元法的基本思想是将系数矩阵化为单位阵,那样就省去了回代的过程,直接的到方程组的解,该方法也可用于求矩阵的逆矩阵。其代码如下:
#include<iostream.h> #include<math.h> #include<process.h> class jordan { private: int i,j,k,n,flag,scani,scanj,*row,*col; double eps,pivot,aijcolk,*x,**a; public: void jordan_input();//数据输入的函数声明 void jordan_reduction();//消去法函数声明 void jordan_output();//结果输出的函数声明 ~jordan() { delete [] row; delete [] col; delete [] x; for(i=0;i<n;i++) { delete [] a[i]; } delete []a; } }; void main() { jordan solution; solution.jordan_input(); solution.jordan_reduction(); solution.jordan_output(); } void jordan::jordan_input() { cout<<"输入方程的个数:"; cin>>n; row = new int ; col = new int ; x = new double ; a = new double* ; for(i=0;i<n;i++) { a[i] = new double[n+1]; } for(i=0;i<n;i++) for(j=0;j<n;j++) { cout<<"/n输入 a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } for(i=0;i<n;i++) { cout<<"/n输入 b["<<i<<"]="; cin>>a[i] ; } cout<<"/n输入最小主元素"; cin>>eps; } void jordan::jordan_reduction() { for(k=0;k<n;k++) { pivot = 0.0; for(i=0;i<n;i++) { flag = 0; for(j=0;j<n;j++) { flag = 0; if(k>0) { for(scani=0;scani<k;scani++) for(scanj=0;scanj<k;scanj++) { if((i==row[scani])||(j==col[scanj])) { flag = 1;//标记记录过的行和列 } } } else { flag = 0;//标记为未为设置 } if(flag == 0) { if(fabs(a[i][j])>fabs(pivot)) { pivot = a[i][j]; row[k] = i; col[k] = j; } }//记录主元信息结束 } } if(fabs(pivot)>eps) { for(j=0;j<(n+1);j++) { a[row[k]][j]/=pivot; } for(i=0;i<n;i++) { aijcolk=a[i][col[k]]; if(i!=row[k]) { for(j=0;j<(n+1);j++) { a[i][j] = a[i][j] - aijcolk * a[row[k]][j]; } } } } else { cout<<"/n最大的主元素 = "<<pivot<<endl; cout<<"/n矩阵可能奇异.失败..."<<endl; exit(0); } } for(i=0;i<n;i++) { x[col[i]] = a[row[i]] ; } } void jordan::jordan_output() { cout<<"/n结果是:"<<endl; for(i=0;i<n;i++) { cout<<"/nx["<<i<<"]="<<x[i]<<endl; } }
相关文章推荐
- 高斯-约当 (Gauss-Jordan) 消元法 [学习笔记]
- 选主元的高斯-约旦(Gauss-Jordan)消元法解线性方程组/求逆矩阵
- Gauss-Jordan 消元法 解方程组
- 选主元的高斯-约当(Gauss-Jordan)消元法解线性方程组和求逆矩阵
- 高斯-约当(Gauss-Jordan)消元法——c++代码实现
- 高斯消元法 & 高斯-约当 (Gauss-Jordan) 消元法
- 高斯-约当(Gauss-Jordan)消元法
- 计算方法Gauss-Jordan消去法求线性方程组的解
- # museum(Gauss-Jordan/Gauss对比-4倍常数)
- # museum(Gauss-Jordan/Gauss对比-4倍常数)
- Gauss-Jordan消去法中完全选主元法求解线性方程组
- 数值计算方法与算法:C语言实现利用Gauss消元法解方程组
- Gauss消元法的Matlab实现
- 顺序Gauss 消元法
- gauss-jordan消元
- 全选主元Gauss 消元法
- gauss消元法求解线性方程组(举例子)
- Gauss消元法(特解与通解)
- 求解线性方程组之Gauss_Jordan消去法
- 求解线性方程组之Gauss-Jordan消去法求矩阵的逆