为什么Python计算矩阵的行列式是错误的?



我试图在Spyder IDE中计算矩阵的行列式,但结果使我怀疑"scipy"进一步研究

下面是我使用的代码:
import numpy as np
from scipy import linalg
matrix = np.array([[5.0, 9.0],[3.0, 5.0]], dtype=float)
det = linalg.det(matrix)
print(det)

,下面是输出:

-1.999999999999999

另一个矩阵及其行列式:

import numpy as np
from scipy import linalg
matrix = np.array([[5.0, 12.0],[2.0, 5.0]], dtype=float)
det = linalg.det(matrix)
print(det)

输出:

1.000000000000001

你可能想看看这个答案,因为它是浮点值的一个反复出现的问题:

在Python中比较浮点数几乎相等的最好方法是什么?

这是由于浮点数的实现方式,遗憾的是,唯一真正的选择是近似或使用几个int作为分数。(即元组(分子,分母))

最新更新