LU factorization with complete pivoting.

An implementation of algorithm 3.4.2 from Matrix Computations.

You are now following this Submission

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://www.mathworks.com/matlabcentral/fileexchange/27249-lu-factorization-with-complete-pivoting), MATLAB Central File Exchange. Retrieved .

Categories

Find more on Sparse Matrices in Help Center and MATLAB Answers

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
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