使用 Numpy 行列式的精确值
Exact Value In Determinant Using Numpy
我想计算 2*2 矩阵的行列式,我使用 Numpy 中的 linalg.det 像这样:
import numpy as np
a = np.array([
[1,2],
[3,4]
])
b=np.linalg.det(a)
另一方面,我们知道我们也可以通过乘法和减法来计算它:
1*4 - 2*3 = -2
但是当我将 b 设置为 -2 时:
b == -2
它returns 错误。
这里有什么问题?我该如何解决?
如果您使用整数,可以使用
b = int(np.linalg.det(a))
只是把它变成一个整数。这应该给你以下
int(b) == -2 ## Returns True
编辑:如果近似值类似于 -1.99999999999,这将不起作用。根据下面评论中的 JohanC,请尝试改用 int(round(b))。
我想计算 2*2 矩阵的行列式,我使用 Numpy 中的 linalg.det 像这样:
import numpy as np
a = np.array([
[1,2],
[3,4]
])
b=np.linalg.det(a)
另一方面,我们知道我们也可以通过乘法和减法来计算它:
1*4 - 2*3 = -2
但是当我将 b 设置为 -2 时:
b == -2
它returns 错误。
这里有什么问题?我该如何解决?
如果您使用整数,可以使用
b = int(np.linalg.det(a))
只是把它变成一个整数。这应该给你以下
int(b) == -2 ## Returns True
编辑:如果近似值类似于 -1.99999999999,这将不起作用。根据下面评论中的 JohanC,请尝试改用 int(round(b))。