QR {matlib} | R 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 |
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
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)
[Package matlib version 0.9.8 Index]