Cholesky-class {Matrix} | R Documentation |
The "Cholesky"
class is the class of Cholesky
decompositions of positive-semidefinite, real dense matrices. The
"BunchKaufman"
class is the class of Bunch-Kaufman
decompositions of symmetric, real matrices. The "pCholesky"
and "pBunchKaufman"
classes are their packed
storage versions.
Objects can be created by calls of the form new("Cholesky",
...)
or new("BunchKaufman", ...)
, etc,
or rather by calls of the form chol(pm)
or
BunchKaufman(pm)
where pm
inherits from
the "dpoMatrix"
or "dsyMatrix"
class or as a side-effect of other functions
applied to "dpoMatrix"
objects (see dpoMatrix
).
A Cholesky decomposition extends class
MatrixFactorization
but is basically a triangular
matrix extending the "dtrMatrix"
class.
uplo
:inherited from the "dtrMatrix"
class.
diag
:inherited from the "dtrMatrix"
class.
x
:inherited from the "dtrMatrix"
class.
Dim
:inherited from the "dtrMatrix"
class.
Dimnames
:inherited from the "dtrMatrix"
class.
A Bunch-Kaufman decomposition also extends the "dtrMatrix"
class and has a perm
slot representing a permutation matrix.
The packed versions extend the "dtpMatrix"
class.
Class "MatrixFactorization"
and "dtrMatrix"
, directly.
Class "dgeMatrix"
, by class "dtrMatrix"
.
Class "Matrix"
, by class "dtrMatrix"
.
Both these factorizations can directly be treated as
(triangular) matrices, as they extend "dtrMatrix"
, see above.
There are currently no further explicit methods defined with class
"Cholesky"
or "BunchKaufman"
in the signature.
Objects of class "Cholesky"
typically stem from
chol(D)
, applied to a dense matrix D
.
On the other hand, the function Cholesky(S)
applies to a sparse matrix S
, and results in objects
inheriting from class CHMfactor
.
For traditional matrices m
, chol(m)
is a
traditional matrix as well, triangular, but simply an n * n numeric matrix
. Hence, for compatibility,
the "Cholesky"
and "BunchKaufman"
classes (and their
"p*"
packed versions) also extend triangular Matrix classes
(such as "dtrMatrix").
Consequently, determinant(R)
for R <- chol(A)
returns the determinant of R
, not of A
. This is in
contrast to class CHMfactor
objects C
, where
determinant(C)
gives the determinant of the original
matrix A
, for C <- Cholesky(A)
, see also the
determinant
method documentation on the class
CHMfactor
page.
Classes dtrMatrix
, dpoMatrix
;
function chol
.
Function Cholesky
resulting in class
CHMfactor
objects, not class "Cholesky"
ones, see the section ‘Note’.
(sm <- as(as(Matrix(diag(5) + 1), "dsyMatrix"), "dspMatrix")) signif(csm <- chol(sm), 4) (pm <- crossprod(Matrix(rnorm(18), nrow = 6, ncol = 3))) (ch <- chol(pm)) if (toupper(ch@uplo) == "U") # which is TRUE crossprod(ch) stopifnot(all.equal(as(crossprod(ch), "matrix"), as(pm, "matrix"), tol=1e-14))