# lu#

## Purpose#

Computes the LU decomposition of a square matrix with partial (row) pivoting, such that: $$X = LU$$.

## Format#

{ l, u } = lu(x)#
Parameters:

x (NxN matrix) – square nonsingular matrix

Returns:
• l (NxN matrix) – NxN “scrambled” lower triangular matrix. This is a lower triangular matrix that has been reordered based on the row pivoting.

• u (NxN matrix) – upper triangular matrix

## Examples#

// Set seed for repeatable random numbers
rndseed 13;

// Print format, display 4 digits after decimal point
format /rd 10,4;

// Create random A matrix
A = rndn(3, 3);

{ L, U } = lu(A);
A2 = L*U;

      -0.0195     0.4054    -0.0874
A =   -1.2948     0.1734     1.9712
0.5408    -0.1294     0.7646

0.0150     1.0000     0.0000
L =    1.0000     0.0000     0.0000
-0.4177    -0.1414     1.0000

-1.2948     0.1734     1.9712
U =    0.0000     0.4028    -0.1170
0.0000     0.0000     1.5714

-0.0195     0.4054    -0.0874
A2 =  -1.2948     0.1734     1.9712
0.5408    -0.1294     0.7646