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 .