numpy.linalg.solve#
- linalg.solve(a,b)[source]#
Solve a linear matrix equation, or system of linear scalar equations.
Computes the “exact” solution,x, of the well-determined, i.e., fullrank, linear matrix equationax = b.
- Parameters:
- a(…, M, M) array_like
Coefficient matrix.
- b{(M,), (…, M, K)}, array_like
Ordinate or “dependent variable” values.
- Returns:
- x{(…, M,), (…, M, K)} ndarray
Solution to the system a x = b. Returned shape is (…, M) if b isshape (M,) and (…, M, K) if b is (…, M, K), where the “…” part isbroadcasted between a and b.
- Raises:
- LinAlgError
Ifa is singular or not square.
See also
scipy.linalg.solveSimilar function in SciPy.
Notes
Broadcasting rules apply, see the
numpy.linalgdocumentation fordetails.The solutions are computed using LAPACK routine
_gesv.a must be square and of full-rank, i.e., all rows (or, equivalently,columns) must be linearly independent; if either is not true, use
lstsqfor the least-squares best “solution” of thesystem/equation.Changed in version 2.0:The b array is only treated as a shape (M,) column vector if it isexactly 1-dimensional. In all other instances it is treated as a stackof (M, K) matrices. Previously b would be treated as a stack of (M,)vectors if b.ndim was equal to a.ndim - 1.
References
[1]G. Strang,Linear Algebra and Its Applications, 2nd Ed., Orlando,FL, Academic Press, Inc., 1980, pg. 22.
Examples
Solve the system of equations:
x0+2*x1=1and3*x0+5*x1=2:>>>importnumpyasnp>>>a=np.array([[1,2],[3,5]])>>>b=np.array([1,2])>>>x=np.linalg.solve(a,b)>>>xarray([-1., 1.])
Check that the solution is correct:
>>>np.allclose(np.dot(a,x),b)True