?? gaussjordan.cpp
字號:
#include<iostream>
using namespace std;
int n; //未知數(shù)的個(gè)數(shù)
double a[100][100]; //系數(shù)矩陣的增廣矩陣
double x[100]; //解向量x
void main()
{
int i, j; //循環(huán)變量
double m; //系數(shù)
cout << "請輸入未知數(shù)的個(gè)數(shù)n:";
cin >> n;
cout << "請輸入系數(shù)矩陣的增廣矩陣:" << 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 ++){ //對于每一行都進(jìn)行消元,則可消成對角矩陣
if(j == i) continue; //跳過本身這一行
m = a[j][i] / a[i][i]; //計(jì)算系數(shù)
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;
}
//計(jì)算每一個(gè)未知數(shù)x[i]的值
for(i = 1; i <= n; i ++){
x[i] = a[i][n+1] / a[i][i];
cout << "x" << i << " = " << x[i] << endl;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -