错误Numpy error: Matrix is singular
具体是什么意思(使用linalg.solve
功能时)?我查看了Google,但在发生此错误时找不到任何明确说明的内容。
答案 0 :(得分:16)
奇异矩阵是不可逆的矩阵。这意味着您尝试解决的方程组没有唯一的解决方案; linalg.solve
无法处理此问题。
您可能会发现linalg.lstsq
提供了可用的解决方案。
答案 1 :(得分:1)
此函数也使用numpy.linalg.lstsq
:
def inv(m):
a, b = m.shape
if a != b:
raise ValueError("Only square matrices are invertible.")
i = np.eye(a, a)
return np.linalg.lstsq(m, i)[0]