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 伪逆。
通过执行 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 伪逆。