Numpy错误:奇异矩阵

Kal*_*iMa 9 python numpy

Numpy error: Matrix is singular具体错误是什么意思(使用该linalg.solve功能时)?我查看了Google,但发现此错误时找不到任何明确的内容.

Mic*_*ber 20

奇异矩阵是不可逆的矩阵.这意味着您尝试解决的方程组没有唯一的解决方案; linalg.solve无法处理这个问题.

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

  • “没有唯一的解决方案”是指它可能有多种解决方案吗? (2认同)
  • @KaliMa 当方程组是奇异的时,它要么有无限多个解,要么没有——所以不,通常你不能全部检索它们。Linalg.lstsq 只返回这些解决方案之一 - 即使没有:在这种情况下,它返回“最佳”解决方案(在最小二乘意义上);但是,还有无数其他“最佳”解决方案。进一步阅读:http://en.wikipedia.org/wiki/System_of_linear_equations (2认同)

小智 6

该函数还使用以下方法反转奇异矩阵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]
Run Code Online (Sandbox Code Playgroud)