LinAlgError: Singular matrix problem solving

Error 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

wrong reason:

Some matrices are not invertible, so inverting will result in an error.

Solution: Use the pseudo-inverse solution instead.

That is , change np.linalg.inv to np.linalg.pinv .

Guess you like

Origin blog.csdn.net/sinat_29891353/article/details/132117485