求解线性方程组之Gauss_Jordan消去法
来源:互联网 发布:淘宝店铺粉丝怎么增加 编辑:程序博客网 时间:2024/05/02 01:30
//具有最大主元素的Gauss_Jordan消去法求解线性方程组
#include <iostream>
#include <math.h>
#include <process.h>
using namespace std;
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, col, 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 << "\n输入方程的个数:";
cin >> n;
row = new int[n];
col = new int[n];
x = new double[n];
a = new double*[n];
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][n];
}
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-1); scani++)
for (scanj = 0; scanj < (k-1); 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] -= 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]][n];
}
}
void jordan::jordan_output()
{
cout << "\n结果是:" << endl;
for (i = 0; i < n; i++)
{
cout << "\nx[" << i << "] = " << x[i] << endl;
}
}
- 求解线性方程组之Gauss_Jordan消去法
- 求解线性方程组--全主元消去法
- Gauss消去法求解线性方程组
- 全主元高斯消去法求解线性方程组
- 主元高斯消去法求解线性方程组 C#源码
- 求解线性方程组--高斯消去法
- 求解线性方程组--主元消去法
- 求解线性方程组之Gauss-Jordan消去法求矩阵的逆
- 计算方法之用高斯列主元消去法求线性方程组
- 行主元素消去法求解线性方程组的Pascal代码
- Gauss-Jordan消去法中完全选主元法求解线性方程组
- 列主元消去法求解线性方程组(C++实现)
- 求解线性方程组之Thomas法
- Gauss消去法求线性方程组
- 数值分析之直接法解线性方程组:高斯消去法、高斯乔丹消去法
- 求解线性方程组之高斯消元法
- 高斯消去法解线性方程组
- Gauss消去法解线性方程组(Matlab)
- UIView 动画
- linux的软连接
- 大连工业大学csdn俱乐部暑期(2013.7)至下学期(2014.1)的计划
- 数据库三范式详解
- MyEclipse中debug用法
- 求解线性方程组之Gauss_Jordan消去法
- Learning D3.js(2) 让你的柱形图/直方图动起来
- 欧拉函数
- django 事务小结(ORM 事务以及raw sql,customize sql 事务处理)
- 乐呵一下——程序猿
- 求解线性方程组之Gauss-Jordan消去法求矩阵的逆
- UVA 11300 Spreading the Wealth 推导+中位数求解
- c语言字符串 数字转换函数大全
- ISO/IEC 14496(MPEG4) 文档内容简介