13

错误具体是什么Numpy error: Matrix is singular意思(使用linalg.solve函数时)?我在 Google 上查看过,但在发生此错误时找不到任何明确的信息。

4

2 回答 2

25

奇异矩阵是不可逆的。这意味着您尝试求解的方程组没有唯一解;linalg.solve不能处理这个。

您可能会发现它linalg.lstsq提供了一个可用的解决方案。

于 2012-12-10T06:09:48.220 回答
3

此函数也使用以下方法反转奇异矩阵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]
于 2017-05-17T14:02:26.397 回答