2024-06-09 08:05:03 发布
网友
我不确定python numpy是否能帮助我们决定矩阵是否是单数的。我试图根据行列式来决定,但是numpy在1.e-10附近产生了一些值,不确定我们应该为临界值选择什么。
使用带默认公差的np.linalg.matrix_rank。关于该函数的docstring有一些讨论,讨论了什么是考虑奇异值0的适当截止:
np.linalg.matrix_rank
>>> 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
使用带默认公差的
np.linalg.matrix_rank
。关于该函数的docstring有一些讨论,讨论了什么是考虑奇异值0的适当截止:相关问题 更多 >
编程相关推荐