MATLAB Function Reference    
lu

LU matrix factorization

Syntax

Description

The lu function expresses a matrix X as the product of two essentially triangular matrices, one of them a permutation of a lower triangular matrix and the other an upper triangular matrix. The factorization is often called the LU, or sometimes the LR, factorization.

[L,U] = lu(X) returns an upper triangular matrix in U and a psychologically lower triangular matrix (i.e., a product of lower triangular and permutation matrices) in L, so that X = L*U.

[L,U,P] = lu(X) returns an upper triangular matrix in U, a lower triangular matrix in L, and a permutation matrix in P, so that L*U = P*X.

lu(X) returns the output from the LAPACK routine DGETRF or ZGETRF.

lu(X,thresh) controls pivoting for sparse matrices, where thresh is a pivot threshold in [0,1]. Pivoting occurs when the diagonal entry in a column has magnitude less than thresh times the magnitude of any sub-diagonal entry in that column. thresh = 0 forces diagonal pivoting. thresh = 1 is the default.

Remarks

Most of the algorithms for computing LU factorization are variants of Gaussian elimination. The factorization is a key step in obtaining the inverse with inv and the determinant with det. It is also the basis for the linear equation solution or matrix division obtained with \ and /.

Arguments

X
Square matrix to be factored.
thresh
Pivot threshold for sparse matrices. Valid values are in [0,1]. The default is 1.
L
A factor of X. Depending on the form of the function, L is either lower triangular, or else the product of a lower triangular matrix with a permutation matrix P.
U
An upper triangular matrix that is a factor of X.
P
The permutation matrix satisfying the equation L*U = P*X.

Examples

Start with

To see the LU factorization, call lu with two output arguments:

Notice that L is a permutation of a lower triangular matrix that has 1's on the permuted diagonal, and that U is upper triangular. To check that the factorization does its job, compute the product:

which returns the original A. Using three arguments on the left-hand side to get the permutation matrix as well

returns the same value of U, but L is reordered:

To verify that L*U is a permuted version of A, compute L*U and subtract it from P*A:

The inverse of the example matrix, X = inv(A), is actually computed from the inverses of the triangular factors:

The determinant of the example matrix is

It is computed from the determinants of the triangular factors:

The solution to Ax = b is obtained with matrix division:

The solution is actually computed by solving two triangular systems:

Algorithm

lu uses the subroutines DGETRF (real) and ZGETRF (complex) from LAPACK.

See Also

cond, det, inv, luinc, qr, rref

The arithmetic operators \ and /

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK User's Guide, Third Edition, SIAM, Philadelphia, 1999.


 lsqr luinc