Previous Up Next

6.49.5  LU decomposition: lu

The LU decomposition of a square matrix A is P A= L U, where P is a permutation matrix, L is lower triangular with 1s on the diagonal, and U is upper triangular. The lu command finds the LU decomposition of a matrix.

The permutation matrix P is defined from p by:

Pi,p(i)=1,    Pi,j=0  if  j  ≠ p(i)

In other words, it is the identity matrix where the rows are permuted according to the permutation p. You can get the permutation matrix from p by P:=permu2mat(p) (see Section 6.9.6).


Example.
Input:

A := [[3.,5.],[4.,5.]]:;
(p,L,U):=lu(A)

Output:


1,0
,

10
0.751


,

4.05.0
01.25


Here n=2, hence:

P[0,p(0)]=P2[0,1]=1,     P[1,p(1)]=P2[1,0]=1,    P=[[0,1],[1,0]] 

Verification:
Input:

permu2mat(p)*A; L*U

Output:



4.05.0
3.05.0


,

4.05.0
3.05.0



Note that the permutation is different for exact input (the choice of pivot is the simplest instead of the largest in absolute value).
Input:

lu([[1,2],[3,4]])

Output:


0,1
,

10
31


,

12
0−2


Input:

lu([[1.0,2],[3,4]])

Output:


1,0
,

10
0.3333333333331


,

3.04.0
00.666666666667



Previous Up Next