【发布时间】:2020-09-06 17:10:48
【问题描述】:
我正在尝试使用 np.linalg.det([A]) 计算 (4x4) 矩阵 A 的行列式
这里的A定义如下
import numpy as np
A = np.array([
[1, 3, 1, 2],
[5, 8, 5, 3],
[0, 4, 0, 0],
[2, 3, 2, 8]
], dtype=np.float_)
如果我运行这个
np.linalg.det([A])
我得到的值是array([-4.4408921e-15]),这在我看来似乎是错误的。
因为从我对奇异矩阵的理解来看,矩阵 A 的第 1 列和第 3 列是相同的,如果列相同,我应该将 det 值设为 0,但在这里我得到一个非零值,我错过了什么?
【问题讨论】:
-
根据您的系统,
4e-15非常小,可以算作精度错误。 -
是这样..因为当我采取 dtype=int32/16 时我仍然得到 -4.4408921 x 10^-15 ,我希望这是正常的。
-
行列式不是整数运算,无论你的数据类型是什么,它都会被转换为浮点数。
-
从来没有这样想过,感谢您的洞察力,这回答了我的问题。
标签: python python-3.x numpy matrix