qr(x, tol=1e-07) qr.coef(qr, y) qr.qy(qr, y) qr.qty(qr, y) qr.resid(qr, y) qr.fitted(qr, y, k = qr$rank) qr.solve(a, b, tol = 1e-7) is.qr(x) as.qr(x)
x
| a matrix whose QR decomposition is to be computed. |
tol
|
the tolerance for detecting linear dependencies in the
columns of x.
|
qr
|
a QR decomposition of the type computed by qr.
|
y, b
| a vector or matrix of right-hand sides of equations. |
a
| A matrix or QR decomposition. |
qr computes the QR decomposition of a matrix. It provides an
interface to the techniques used in the LINPACK routine DQRDC.
The functions qr.coef, qr.resid, and qr.fitted
return the coefficients, residuals and fitted values obtained when
fitting y to the matrix with QR decomposition qr.
qr.qy and qr.qty return Q %*% y and
t(Q) %*% y, where Q is the Q matrix.
qr.solve solves systems of equations via the QR decomposition.
is.qr returns TRUE if x is a list with a
component named qr and FALSE otherwise.
It is not possible to coerce objects to mode "qr". Objects
either are QR decompositions or they are not.
qr
|
a matrix with the same dimensions as x.
The upper triangle contains the R of the decomposition
and the lower triangle contains information on the Q of
the decomposition (stored in compact form).
|
qraux
|
a vector of length ncol(x) which contains
additional information on Q.
|
rank
|
the rank of x as computed by the decomposition.
|
pivot
| information on the pivoting strategy used during the decomposition. |
eigen). See det2 in the examples below.qr.Q, qr.R, qr.X for
reconstruction of the matrices.
solve.qr, lsfit,
eigen, svd.
## The determinant of a matrix -- if you really must have it
det2 <- function(x) prod(diag(qr(x)$qr))*(-1)^(ncol(x)-1)
det2(print(cbind(1,1:3,c(2,0,1))))
hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
h9 <- hilbert(9); h9
qr(h9)$rank #--> only 7
qrh9 <- qr(h9, tol = 1e-10)
qrh9$rank #--> 9
##-- Solve linear equation system H %*% x = y :
y <- 1:9/10
x <- qr.solve(h9, y, tol = 1e-10) # or equivalently :
x <- qr.coef(qrh9, y) #-- is == but much better than
#-- solve(h9) %*% y
h9 %*% x # = y