LinAlgError: Singular matrix
LinAlgError: Singular matrix
$ python -c "import numpy as np; from numpy.linalg import inv; a = np.array([[1,2],[2,4]]); inv(a)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
numpy.linalg.LinAlgError: Singular matrix
Why this happens
The matrix is singular (determinant zero) and not invertible; linear solvers and inverse operations fail.
Fix
Check matrix rank, use pseudo-inverse np.linalg.pinv, regularize, or reformulate the problem.
Wrong code
import numpy as np
from numpy.linalg import inv
a = np.array([[1,2],[2,4]])
inv(a)
Fixed code
import numpy as np
from numpy.linalg import pinv
a = np.array([[1,2],[2,4]])
print(pinv(a))
# or regularize
a_reg = a + np.eye(2) * 1e-8
print(np.linalg.inv(a_reg))