小编Fir*_*Ace的帖子

numpy矩阵反演舍入误差

我的BinvA矩阵的(1,1)条目得到一个非常奇怪的值我
只是试图反转B矩阵并做一个(B ^ -1)A乘法.

我明白,当我手工计算时,我的(1,1)应该是0,但我得到的是1.11022302e-16.我该如何解决?我知道浮点数不能完全准确地表示,但为什么这给我这样一个不准确的响应而不是四舍五入到有没有办法让它更精确?

她是我的代码:

import numpy as np

A = np.array([[2,2],[4,-1]],np.int)
A = A.transpose()


B = np.array([[1,3],[-1,-1]],np.int)
B = B.transpose()

Binv = np.linalg.inv(B) #calculate the inverse

BinvA = np.dot(Binv,A) 
print(BinvA)
Run Code Online (Sandbox Code Playgroud)

我的打印声明:

[[  1.11022302e-16  -2.50000000e+00]
 [ -2.00000000e+00  -6.50000000e+00]]
Run Code Online (Sandbox Code Playgroud)

python floating-point numpy matrix-multiplication floating-point-precision

0
推荐指数
1
解决办法
3063
查看次数