SparseM.solve {SparseM} | R Documentation |
chol
performs a Cholesky
decomposition of a symmetric positive definite sparse matrix x
of class matrix.csr
.
backsolve
performs a triangular back-fitting to compute
the solutions of a system of linear equations.
solve
combines chol
and backsolve
and will
compute the inverse of a matrix if the right-hand-side is missing.
chol(x, ...) backsolve(r, x, k, upper.tri, transpose) solve(a, b, ...)
a |
symmetric positive definite matrix of class matrix.csr . |
r |
object of class matrix.csr.chol returned by the function
chol . |
x,b |
vector(regular matrix) of right-hand-side(s) of a system of linear equations. |
k |
inherited from the generic; not used here. |
pivot |
inherited from the generic; not used here. |
nsubmax,nnzlmax,tmpmax |
dimensions of work arrays, in normal operation these are determined inside the algorithm. |
upper.tri |
inherited from the generic; not used here. |
transpose |
inherited from the generic; not used here. |
... |
further arguments passed to or from other methods. |
chol
performs a Cholesky decomposition of
a symmetric positive definite sparse matrix x
of class
matrix.csr
using the block sparse Cholesky algorithm of Ng and
Peyton (1993).
backsolve
does triangular back-fitting to compute
the solutions of a system of linear equations. For systems of linear equations
that only vary on the right-hand-side, the result from chol
can be reused.
solve
combines chol
and backsolve
, and will
compute the inverse of a matrix if the right-hand-side is missing.
The determinant of the Cholesky factor is returned providing a
means to efficiently compute the determinant of sparse positive
definite symmetric matrices.
Koenker, R and Ng, P. (2002). SparseM: A Sparse Matrix Package for R,
http://www.econ.uiuc.edu/~roger/research
Ng, E. G. and B. W. Peyton (1993), "Block sparse Cholesky algorithms on advanced uniprocessor computers", SIAM J. Sci. Comput., 14, pp. 1034-1056.
slm
for sparse version of lm
data(lsq) class(lsq) # -> [1] "matrix.csc.hb" model.matrix(lsq)->design.o class(design.o) # -> "matrix.csr" dim(design.o) # -> [1] 1850 712 y <- model.response(lsq) # extract the rhs length(y) # [1] 1850 t(design.o)%*%design.o -> XpX t(design.o)%*%y -> Xpy chol(XpX)->chol.o backsolve(chol.o,Xpy)-> b1 # least squares solutions in two steps solve(XpX,Xpy) -> b2 # least squares estimates in one step