R中的逆矩阵乘法不给出单位矩阵

0 r

我用%*%来表示矩阵及其反函数.我没有得到单位矩阵.我错过了什么?

D 

    [,1] [,2] [,3]
[1,] 1 2 3

[2,] 4 2 1

[3,] 2 2 0

solve(D)

       [,1]       [,2]       [,3]
[1,] -0.1428571 0.4285714 -0.2857143

[2,] 0.1428571 -0.4285714 0.7857143

[3,] 0.2857143 0.1428571 -0.4285714

D %*% solve(D)

          [,1]          [,2]          [,3]
[1,] 1.000000e+00 0.000000e+00 -2.220446e-16

[2,] -5.551115e-17 1.000000e+00 0.000000e+00

[3,] -1.110223e-16 -1.110223e-16 1.000000e+00
Run Code Online (Sandbox Code Playgroud)

C_Z*_*_Z_ 5

由于浮点精度误差,对于非对角线,您不会回到零.

你可以看到,如果你舍入,这确实是单位矩阵:

round(D %*% solve(D))
Run Code Online (Sandbox Code Playgroud)