QR: QR Decomposition by Graham-Schmidt Orthonormalization

View source: R/QR.R

QRR Documentation

QR Decomposition by Graham-Schmidt Orthonormalization

Description

QR computes the QR decomposition of a matrix, X, that is an orthonormal matrix, Q and an upper triangular matrix, R, such that X = Q R.

Usage

QR(X, tol = sqrt(.Machine$double.eps))

Arguments

X

a numeric matrix

tol

tolerance for detecting linear dependencies in the columns of X

Details

The QR decomposition plays an important role in many statistical techniques. In particular it can be used to solve the equation Ax = b for given matrix A and vector b. The function is included here simply to show the algorithm of Gram-Schmidt orthogonalization. The standard qr function is faster and more accurate.

Value

a list of three elements, consisting of an orthonormal matrix Q, an upper triangular matrix R, and the rank of the matrix X

Author(s)

John Fox and Georges Monette

See Also

qr

Examples

A <- matrix(c(1,2,3,4,5,6,7,8,10), 3, 3) # a square nonsingular matrix
res <- QR(A)
res
q <- res$Q
zapsmall( t(q) %*% q)   # check that q' q = I
r <- res$R
q %*% r                 # check that q r = A

# relation to determinant: det(A) = prod(diag(R))
det(A)
prod(diag(r))

B <- matrix(1:9, 3, 3) # a singular matrix
QR(B)

matlib documentation built on Dec. 9, 2022, 1:09 a.m.