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
provides an interface to the techniques used in the LINPACK
routine DQRDC. 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. It is useful for computing regression
coefficients and in applying the Newton-Raphson algorithm.
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. |
qr.Q
, qr.R
, qr.X
for
reconstruction of the matrices.
solve.qr
, lsfit
,
eigen
, svd
.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