[問題] 高斯喬登消去法
我寫了個高斯喬登消去法的C code
但是跑出來的反矩陣大部分是0還有-0
希望得到的正確結果:算出正確的反矩陣
程式跑出來的錯誤結果:很多元素值是0
開發平台:C
有問題的code:
int x, y, k;
for (k = 0; k < N; k++)
R[k][k] = 1;
for (k = 0; k < N; k++) {
for (x = 0; x < N; x++) {
if (x <= k)
continue;
for (y = 0; y < N; y++) {
M[x][y] -= (M[x][k] / M[k][k]) * M[k][y];
R[x][y] -= (M[x][k] / M[k][k]) * R[k][y];
}
}
}
for (k = N - 1; k >= 0; k--) {
for (x = N - 1; x >= 0; x--) {
if (x >= k)
continue;
for (y = 0; y < N; y++) {
M[x][y] -= (M[x][k] / M[k][k]) * M[k][y];
R[x][y] -= (M[x][k] / M[k][k]) * R[k][y];
}
}
}
for (k = 0; k < N; k++) {
for (y = 0; y < N; y++) {
R[k][y] /= M[k][k];
}
}
for (x = 0; x < N; x++) {
for (y = 0; y < N; y++)
printf("%.f ", R[x][y]);
printf("\n");
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.109.89
→
11/29 19:35, , 1F
11/29 19:35, 1F
推
11/29 19:37, , 2F
11/29 19:37, 2F
→
11/29 19:40, , 3F
11/29 19:40, 3F
→
11/29 19:40, , 4F
11/29 19:40, 4F
→
11/29 20:04, , 5F
11/29 20:04, 5F
→
11/29 20:08, , 6F
11/29 20:08, 6F
→
11/29 20:11, , 7F
11/29 20:11, 7F
→
11/29 20:12, , 8F
11/29 20:12, 8F
→
11/29 20:15, , 9F
11/29 20:15, 9F
→
11/29 20:16, , 10F
11/29 20:16, 10F
→
11/29 20:16, , 11F
11/29 20:16, 11F
→
11/29 20:17, , 12F
11/29 20:17, 12F
→
11/29 20:17, , 13F
11/29 20:17, 13F
→
11/29 23:43, , 14F
11/29 23:43, 14F
→
11/30 02:58, , 15F
11/30 02:58, 15F
→
11/30 02:59, , 16F
11/30 02:59, 16F
→
11/30 03:07, , 17F
11/30 03:07, 17F
推
11/30 11:36, , 18F
11/30 11:36, 18F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章