Strong Rank Revealing QR decomposition

Version 1.0.3 (12.9 KB) by Xin Xing
A matlab implementation of the strong rank revealing QR.
439 Downloads
Updated 16 Jul 2021

View License

This code is for the strong rank-revealing QR (Strong RRQR) introduced in the following reference.
Reference:
Gu, Ming, and Stanley C. Eisenstat. "Efficient algorithms for computing a strong rank-revealing QR factorization." SIAM Journal on Scientific Computing 17.4 (1996): 848-869.
Given a target matrix A, a strong RRQR of A is of form
AP = [Q1, Q2] * [R11, R12; 0 R22] \approx Q1 [R11, R12]
where P is a permutation matrix, [Q1,Q2] has orthonormal columns, and R11 is an upper-triangular matrix. R11 and R12 need to satisfy that matrix inv(R11)*R12 has each entry bounded by a pre-specified constant that is not less than 1.
The code contains the strong rank revealing QR with (1) a fixed rank, i.e., the dimension of R11; (2) an error threshold, i.e., each column of R22 has norm less than the threshold. The implementation strictly follows the algorithms proposed in the above reference.
Note:
The main time-consuming step in the code is usually a complete pivoting QR decomposition of the target matrix A, i.e. [Q,R,p] = qr(A, 0). Practically, the algorithm only requires a partial pivoting QR (R22 doesn't have to be upper-triangular) but I can't find an efficient partial pivoting QR implementation. Greatly appreciated if any one can provide an efficient partial pivoting QR code for both a fixed rank or a fixed threshold.

Cite As

Xin Xing (2025). Strong Rank Revealing QR decomposition (https://www.mathworks.com/matlabcentral/fileexchange/69139-strong-rank-revealing-qr-decomposition), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Matrix Decomposition in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

StrongRRQR/StrongRRQR

Version Published Release Notes
1.0.3

Adding a m file for givens

1.0.2

*Fix a minor bug for SRRQR with rank being the number of columns.

1.0.1

Changed typos and added more descriptions.

1.0.0