import numpy as np a = np.array([[2., 1.], [1., 1.]]) b = np.array([8., 5.]) x = np.linalg.solve(a, b) print(np.allclose(x, [3., 2.], atol=1e-12)) print(np.allclose(a @ x, b, atol=1e-12)) singular = np.array([[1., 1.], [2., 2.]]) if np.linalg.matrix_rank(singular) < singular.shape[0]: print("Rejected singular system") else: np.linalg.solve(singular, b)