关于高斯消元
  • 板块学术版
  • 楼主AK_heaven
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/6/22 13:28
  • 上次更新2024/6/22 16:18:02
查看原帖
关于高斯消元
799877
AK_heaven楼主2024/6/22 13:28

各位大佬,请问一下高斯消元如果不满足 N ×\times 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; 
}

2024/6/22 13:28
加载中...