LinAlgError: Singular matrix 问题解决
错误log:
c:\Program Files\Python39\lib\site-packages\numpy\linalg\linalg.py in inv(a)543 signature = 'D->D' if isComplexType(t) else 'd->d'544 extobj = get_linalg_error_extobj(_raise_linalgerror_singular)
--> 545 ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)546 return wrap(ainv.astype(result_t, copy=False))547 c:\Program Files\Python39\lib\site-packages\numpy\linalg\linalg.py in _raise_linalgerror_singular(err, flag)86 87 def _raise_linalgerror_singular(err, flag):
---> 88 raise LinAlgError("Singular matrix")89 90 def _raise_linalgerror_nonposdef(err, flag):LinAlgError: Singular matrix
错误原因:
一些矩阵不可逆,所以求逆会报错。
解决办法:换为用伪逆求即可。
即把np.linalg.inv改为np.linalg.pinv即可。