LU decomposition¶
- numeric.linalg.lu(a)¶
Compute pivoted LU decomposition of a matrix.
The decomposition is:
A = P L U
where P is a permutation matrix, L lower triangular with unit diagonal elements, and U upper triangular.
Parameters
- a(M, M) array_like
Array to decompose
- permute_lbool, optional
Perform the multiplication P*L (Default: do not permute)
- overwrite_abool, optional
Whether to overwrite data in a (may improve performance)
- check_finitebool, optional
Whether to check that the input matrix contains only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs.
Returns
- p(M, M) ndarray
Permutation matrix
- l(M, M) ndarray
Lower triangular or trapezoidal matrix with unit diagonal.
- u(M, M) ndarray
Upper triangular or trapezoidal matrix
Examples:
a = array([[1,3,5],[2,4,7],[1,1,0]]) p,l,u = np.linalg.lu(a) print p print l print u
Result:
>>> run script... array([[0.0, 1.0, 0.0] [1.0, 0.0, 0.0] [0.0, 0.0, 1.0]]) array([[1.0, 0.0, 0.0] [0.5, 1.0, 0.0] [0.5, -1.0, 1.0]]) array([[2.0, 4.0, 7.0] [0.0, 1.0, 1.5] [0.0, 0.0, -2.0]])