qrcpp function

QR Decomposition of a Matrix

QR Decomposition of a Matrix

Computes the QR decomposition of a matrix.

qrcpp(X, tol = 1e-12)

Arguments

  • X: A numeric matrix whose QR decomposition is to be computed.
  • tol: The tolerance for detecting linear dependencies in the columns of X.

Returns

A list with the following components:

  • qr: A matrix with the same dimensions as X. The upper triangle contains the R of the decomposition and the lower triangle contains Householder vectors (stored in compact form).
  • rank: The rank of X as computed by the decomposition.
  • pivot: The column permutation for the pivoting strategy used during the decomposition.
  • Q: The complete mm-by-mm orthogonal matrix QQ.
  • R: The complete mm-by-nn upper triangular matrix RR.

Details

This function performs Householder QR with column pivoting: Given an mm-by-nn matrix AA with mnm \geq n, the following algorithm computes r=rank(A)r = \textrm{rank}(A) and the factorization QTAPQ^T A P equal to

|R11R_{11}R12R_{12}|rr
|00|mrm-r
rrnrn-r

with Q=H1HrQ = H_1 \cdots H_r and P=P1PrP = P_1 \cdots P_r. The upper triangular part of AA

is overwritten by the upper triangular part of RR and components (j+1):m(j+1):m of the jjth Householder vector are stored in A((j+1):m,j)A((j+1):m, j). The permutation PP is encoded in an integer vector pivot.

Examples

hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, `+`) } h9 <- hilbert(9) qrcpp(h9)

References

Gene N. Golub and Charles F. Van Loan. Matrix Computations, second edition. Baltimore, Maryland: The John Hopkins University Press, 1989, p.235.

Author(s)

Kaifeng Lu, kaifenglu@gmail.com

  • Maintainer: Kaifeng Lu
  • License: GPL (>= 2)
  • Last published: 2025-03-20

Useful links