MATLAB Functions | Help Desk |
lu
LU matrix factorization
[L,U]The=
lu(X) [L,U,P] = lu(X) lu(X)
lu
function expresses any square 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 LINPACK routine ZGEFA
.
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 /.
A factor of |
|
ATo see the LU factorization, call=
1
2
3
4
5
6
7
8
0
lu
with two output arguments:
[L,U]Notice that=
lu(A) L
=
0.1429
1.0000
0
0.5714
0.5000
1.0000
1.0000
0
0 U
=
7.0000
8.0000
0.0000
0
0.8571
3.0000
0
0
4.5000
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:
L*Uwhich returns the original
A
. Using three arguments on the left-hand side to get the permutation matrix as well
[L,U,P] = lu(A)returns the same value of
U
, but L
is reordered:
LTo verify that=
1.0000
0
0
0.1429
1.0000
0
0.5714
0.5000
1.0000 U
=
7.0000
8.0000
0
0
0.8571
3.0000
0
0
4.5000 P
=
0
0
1
1
0
0
0
1
0
L
*U
is a permuted version of A
, compute L
*U
and subtract it from P
*A
:
P*A - L*UThe inverse of the example matrix,
X = inv(A)
, is actually computed from the inverses of the triangular factors:
X = inv(U)*inv(L)The determinant of the example matrix is
d = det(A)which gives
dIt is computed from the determinants of the triangular factors:=
27
d = det(L)*det(U)The solution to Ax
=
b is obtained with matrix division:
x = A\bThe solution is actually computed by solving two triangular systems:
y = L\b, x = U\y
lu
uses the subroutines ZGEDI
and ZGEFA
from LINPACK. For more information, see the LINPACK Users' Guide.
\
Matrix left division (backslash)
/
Matrix right division (slash)
cond
Condition number with respect to inversion
det
Matrix determinant
inv
Matrix inverse
qr
Orthogonal-triangular decomposition
rref
Reduced row echelon form