📄 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 + -