我正在使用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]]
答案 0 :(得分:2)
问题在于,即使数学上点(R,RI)的结果等于I,由于浮点数中的数值误差,numpy返回非常接近I的东西,但不完全等于它。 / p>
e-17的值非常接近0。
如果要生成精确的单位矩阵,只需使用numpy.identity:
numpy.identity(3)