我不明白为什么下面的代码给出矩阵'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