LinAlgError: Singular matrix when solving linalg.inv with numpy

LinAlgError: Singular matrix when solving linalg.inv with numpy

通过执行 np.linalg.inv(S) 我总是得到一个错误:

原S是

matrix([[matrix([[6371.]]), matrix([[6371.]])],
        [matrix([[6371.]]), matrix([[6371.]])]], dtype=object)

TypeError: No loop matching the specified signature and casting was found for ufunc inv

如果我将 s 转换为 float64 S = S.astype(np.float64) S 的内容是

matrix([[6371., 6371.],
        [6371., 6371.]])

LinAlgError: Singular matrix 

我该如何解决这个问题?我知道行列式是 0,但是,通过使用 SVD 和 QR 等其他方法,我也会出错。

将 S 转换为 float64 后尝试以下操作:

result = np.linalg.pinv(S)

这 returns 伪逆。