為什麼這篇高斯喬登消去法程式鄉民發文收入到精華區:因為在高斯喬登消去法程式這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者a22856830 (Yel.)看板C_and_CPP標題[問題] 高斯喬登消去法時間Mon N...
我寫了個高斯喬登消去法的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