LU factorization with complete pivoting.

An implementation of algorithm 3.4.2 from Matrix Computations.
2.3K Downloads
Updated 24 Apr 2010

View License

To compute the LU factorization under default settings:

[L U p q] = lucp(A)

This produces a factorization such that L*U = A(p,q). Vectors p and q permute the rows and columns, respectively.

The pivot tolerance can be controlled:

[L U p q] = lucp(A,tol)

The algorithm will terminate if the absolute value of the pivot is less than tol.

Permutation matrices can be generated:

[L U P Q] = lucp(A,tol,'matrix')
[L U P Q] = lucp(A,tol,'sparse')

The first will generate full permutation matrices P and Q such that L*U = P*A*Q. The second generates sparse P and Q.

If A is sparse, L and U will be sparse. However, no effort is taken to reduce fill in.

This function works on non-square matrices.

Cite As

Nick Henderson (2026). LU factorization with complete pivoting. (https://ch.mathworks.com/matlabcentral/fileexchange/27249-lu-factorization-with-complete-pivoting), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Sparse Matrices in Help Center and MATLAB Answers
Version Published Release Notes
1.3.0.0

fixed bug from last update.

1.2.0.0

Performs a final column swap in the case where A is m by n with n > m. The goal is to have well conditioned U(1:m,1:m).

1.0.0.0