各位大佬,请问一下高斯消元如果不满足 N × N 的矩阵如何求解。
#include <bits/stdc++.h>
#define L(i, a, b) for(int i = (a); i <= (b); i++)
#define R(i, a, b) for(int i = (a); i >= (b); i--)
#define pii pair<int, int>
#define ll long long
#define vi vector<int>
using namespace std;
const int N = 40;
int x[N][N], n, m, f[N], ans[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n;
L(i, 1, n) cin >> f[i];
cin >> m;
L(i, 1, m) L(j, 1, n) cin >> x[i][j];
L(i, 1, n) x[i][m+1] = f[i];
L(i, 1, n) {
L(j, i+1, n) {
if(x[j][i]) {
L(k, 1, m+1) swap(x[i][k], x[j][k]);
}
}
L(j, 1, n) {
if(i == j) continue;
double rate = (double)x[j][i] / x[i][i];
L(k, 1, m+1)
x[j][k] -= x[i][k]*rate;
}
}
L(i, 1, m) ans[i] = x[i][m+1]/x[i][i];
return 0;
}