我不明白爲什麼下面的代碼給出矩陣'u'的錯誤答案。矩陣'u'應該等於單位矩陣,但只有一些值是正確的。任何人都可以幫助我理解爲什麼會發生這種情況?矩陣乘法錯誤-
for (k=0; k<3; k++) {
int j;
for (j=0; j<3; j++) {
int h;
for (h=0; h<3; h++) {
u[k][j]+=(F[k][h])*(B[h][j]);
}
}
}
Matrix F
2 -2.2 0.6
-0 0.4 -0.2
-3 3.2 -0.6
Matrix B
2 3 1
3 3 2
6 1 4
Matrix u
1 -4.44089e-16 0
0 1 0
8.88178e-16 1.33227e-15 1
有趣的「*代碼是正確的,但答案是錯誤的*」;那麼你認爲會導致錯誤的輸出? –
我不會說像8.88178e-16這樣的數字與零相同。但他們真的很小。所以可能會因爲算術精度而出現錯誤 – infixed
歡迎使用Stack Overflow!請**用[mcve]或[SSCCE(Short,Self Contained,Correct Example)](http://sscce.org)**您的問題 – NathanOliver