Python numpy - 赋予非单一元素非零的单位矩阵

时间:2016-07-24 15:59:25

标签: python numpy matrix linear-algebra mat

我正在使用python numpy进行矩阵运算。单位矩阵的计算给出了意想不到的结果 - 没有得到标准单位矩阵。

R0 = matrix([
    [0.02187598,  0.98329681, -0.18068986],
    [0.99856708, -0.01266115,  0.05199501],
    [0.04883878, -0.18156839, -0.9821648]
]);

print R0.dot(R0.I) 

# prints [[  1.00000000e+00   0.00000000e+00  5.55111512e-17]
#         [  0.00000000e+00   1.00000000e+00   0.00000000e+00]
#         [ -5.55111512e-17   0.00000000e+00   1.00000000e+00]]

1 个答案:

答案 0 :(得分:2)

问题在于,即使数学上点(R,RI)的结果等于I,由于浮点数中的数值误差,numpy返回非常接近I的东西,但不完全等于它。 / p>

e-17的值非常接近0。

如果要生成精确的单位矩阵,只需使用numpy.identity:

  

numpy.identity(3)