如何判断矩阵在pythonnumpy中是否是奇异的?

2024-06-16 12:33:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定pythonnumpy是否能帮助我们判断矩阵是否是奇异的。我试图根据行列式做出决定,但numpy产生了一些1.e-10左右的值,不确定我们应该为临界值选择什么


Tags: numpy矩阵行列式pythonnumpy
1条回答
网友
1楼 · 发布于 2024-06-16 12:33:00

使用带有默认公差的np.linalg.matrix_rank。关于函数的DROBACK讨论了什么是一个适当的截止值来考虑奇异值零:

>>> a = np.random.rand(10, 10)
>>> b = np.random.rand(10, 10)
>>> b[-1] = b[0] + b[1] # one row is a linear combination of two others
>>> np.linalg.matrix_rank(a)
10
>>> np.linalg.matrix_rank(b)
9
>>> def is_invertible(a):
...     return a.shape[0] == a.shape[1] and np.linalg.matrix_rank(a) == a.shape[0]
... 
>>> is_invertible(a)
True
>>> is_invertible(b)
False

相关问题 更多 >