当前位置:   article > 正文

singular matrix python_如何确定一个矩阵在python-numpy中是否是奇异的?

python 怎么判断奇异矩阵

I am not sure whether python-numpy can help us decide whether a matrix is singular or not. I am trying to decide based on the determinant, but numpy is producing some values around 1.e-10 and not sure what should we choose for a critical value.

解决方案

Use np.linalg.matrix_rank with the default tolerance. There's some discussion on the docstring of that function on what is an appropriate cutoff to consider a singular value zero:

>>> 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/96612
推荐阅读
相关标签
  

闽ICP备14008679号