我的朋友和我在Python 2
和Python 3
执行的代码这一行:NumPy的反转不可逆矩阵
import numpy as np
mat = np.array([[1,0,0],[-1,3,3],[1,2,2]])
np.linalg.inv(mat)
将返回:
array([[ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 1.50119988e+16, 6.00479950e+15, -9.00719925e+15],
[ -1.50119988e+16, -6.00479950e+15, 9.00719925e+15]])
这是奇怪给出:
np.linalg.matrix_rank(mat)
返回2
,因此表明该矩阵是不是可逆的。
我从这个线程了解到,可能是由于numpy和python处理浮点数的方式,尽管我的矩阵由整数组成。
mat
为什么会破坏numpy的逆向实现吗?
请澄清不工作:你的意思是“矩阵是_invertible_”或“矩阵不是_invertible_”? – DyZ