shaare.it

LinAlgError: Singular matrix

7 Dec 2025

1 min read

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))