LU decomposition of matrix.

Syntax: @lu(M, L, U)

M: matrix

L: matrix

U: matrix

Return: matrix (P)

Performs an LU decomposition with partial (row) pivoting of the matrix M:

• if M is a square produce a unit lower triangular matrix, L, an upper triangular matrix, U, and a row permutation matrix, P, such that .

• if M is a non-square matrix, if , L will be unit lower trapezoidal (rather than triangular), and if , U will be upper trapezoidal (rather than triangular).

Examples

matrix m = @mnrnd(10, 8)

matrix lmat

matrix umat

matrix pmat = @lu(m, lmat, umat)

generates the random matrix M, then performs the LU decomposition returning PMAT and yielding updated LMAT, UMAT.

The following commands validate the definition

matrix m1 = pmat * lmat * umat

matrix diff = m - m1

since DIFF equals zero.

Cross-references