Given a possibly rectangular m×n matrix A with rank k, the LUQ Decomposition takes the form:

A=^L^U^Q

where ^L is an invertible m×m matrix, ^Q is an invertible n×n matrix and ^U has the form:

^U=(^U11000),

where ^U11 is a k×k invertible upper triangular matrix.

To construct the LUQ decompostion, we start with a standard LU decomposition with pivoting determines matrices such that:

PAQ=LU,

where P is a m×m permutation matrix, Q is a n×n permutation matrix, L is an invertible m×m lower triangular matrix, and U is a m×n upper triangular matrix.

Lemma 1: There exists an m×m row permutation R and a n×n column permutation C of U from the decomposition of A above such that the matrix:

¯¯¯¯U=RUC

has the form

¯¯¯¯U=(¯¯¯¯U11¯¯¯¯U12¯¯¯¯U21¯¯¯¯U22)

where ¯¯¯¯U11 is a square r×r matrix has a non-zero diagonal and ¯¯¯¯U22 has a zero diagonal. Further, if A has rank kmn then rk.

Proof: (invoke some property of U maintained during LU decomposition) █

We can plug this into our decomposition:

PAQ=LU

PAQ=LRTRUCCT

PAQ=LRT¯¯¯¯UCT

PAQC=LRT¯¯¯¯U

Let’s let Q and L swallow these permutations: ¯¯¯¯Q=QC and ¯¯¯¯L=LRT, so that we have,

PA¯¯¯¯Q=¯¯¯¯L¯¯¯¯U

where ¯¯¯¯Q is an n×n permutation matrix and ¯¯¯¯L is an invertible (not necessarily lower triangular) m×n matrix.

Now we will transform ¯¯¯¯U into a block diagonal matrix by creating zeros below ¯¯¯¯U11 and to the right of ¯¯¯¯U11. Accomplish this by constructing an m×m matrix K and a n×n matrix S over the following form:

¯¯¯¯U=(I0¯¯¯¯U21¯¯¯¯U 111I)K(¯¯¯¯U1100¯¯¯¯U22¯¯¯¯U21¯¯¯¯U 111¯¯¯¯U12)˜U(I¯¯¯¯U 111¯¯¯¯U120I)S,¯¯¯¯U=K˜US.

Again, let ¯¯¯¯Q and ¯¯¯¯L absorb S and K by letting ˜Q=¯¯¯¯QS1 and ˜L=¯¯¯¯LK, so that:

PA˜Q=˜L˜U

PA˜Q=˜L(¯¯¯¯U1100˜U22)

Now we focus our attention on ˜U22, the (mr)×(nr) bottom right block of ˜U. If this block is empty we’re done. In general though, there will have been rows or columns in U that have a zero on the diagaonal, but have non-zeros elsewhere. These show up as non-zeros in ˜U22. We would like to move these to the upper left corner of this block and then we’d like this block to become upper triangular (invertible).

Start by permuting all rows and columns with all zeros to the bottom right corner:

(A0000)=˜R˜U22˜C

Let A0=^L0^U0^Q0 be the LUQ decomposition of A0, computed recursively (base cases are trivial). This means we have,

˜U22=˜RT(A0000)˜CT

˜U22=˜RT(^L0^U0^Q0000)˜CT

˜U22=˜RT(^L000I)X(^U0000)˜U0(^Q000I)˜CTY

˜U22=X˜U0Y

Popping up, we substitute this in form ˜U22 above:

PA˜Q=˜L(¯¯¯¯U1100˜U22)

PA˜Q=˜L(¯¯¯¯U1100X˜U0Y)

PA˜Q=˜L(I00X)(¯¯¯¯U1100˜U0)(I00Y)

Finally, absorb P and these new matrices into ˜L and ˜Q and absorb the top left corner of ˜U0 into the top left block of ¯¯¯¯U11:

A=PT˜L(I00X)(^U11000)(I00Y)˜QT

A=^L^U^Q