⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaussjordan.cpp

📁 GaussJordan法解线性方程组
💻 CPP
字号:
#include<iostream>
using namespace std;

int n;		//未知数的个数
double a[100][100];		//系数矩阵的增广矩阵
double x[100];		//解向量x

void main()
{
	int i, j;		//循环变量
	double m;		//系数
	cout << "请输入未知数的个数n:";
	cin >> n;
	cout << "请输入系数矩阵的增广矩阵:" << endl;
	//输入矩阵
	for(i = 1; i <= n; i ++){
		for(j = 1; j <= n+1; j ++){
			cin >> a[i][j];
		}
	}

	//Gauss_Jordan消元
	for(i = 1; i <= n; i ++){
		for(j = 1; j <=n; j ++){	//对于每一行都进行消元,则可消成对角矩阵
			if(j == i) continue;	//跳过本身这一行
			m = a[j][i] / a[i][i];	//计算系数
			for(int k = 1; k <= n+1; k ++){		//E[j] - m*E[i] -> E[j]
				a[j][k] = a[j][k] - m * a[i][k];
			}
		}
	}
	//如果最后一行为0,则没有惟一解
	if(a[n][n] == 0){
		cout << "no unique solution exists." << endl;
		return;
	}
	//计算每一个未知数x[i]的值
	for(i = 1; i <= n; i ++){
		x[i] = a[i][n+1] / a[i][i];
		cout << "x" << i << " = " << x[i] << endl;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -