| BunchKaufman-methods | R Documentation |
Computes the Bunch-Kaufman factorization of an n \times n
real, symmetric matrix A, which has the general form
A = U D_{U} U' = L D_{L} L'
where
D_{U} and D_{L} are symmetric, block diagonal
matrices composed of b_{U} and b_{L}
1 \times 1 or 2 \times 2 diagonal blocks;
U = \prod_{k = 1}^{b_{U}} P_{k} U_{k}
is the product of b_{U} row-permuted unit upper triangular
matrices, each having nonzero entries above the diagonal in 1 or 2 columns;
and
L = \prod_{k = 1}^{b_{L}} P_{k} L_{k}
is the product of b_{L} row-permuted unit lower triangular
matrices, each having nonzero entries below the diagonal in 1 or 2 columns.
Methods are built on LAPACK routines dsytrf and dsptrf.
BunchKaufman(x, ...)
## S4 method for signature 'dsyMatrix'
BunchKaufman(x, warnSing = TRUE, ...)
## S4 method for signature 'dspMatrix'
BunchKaufman(x, warnSing = TRUE, ...)
## S4 method for signature 'matrix'
BunchKaufman(x, uplo = "U", ...)
x |
a finite symmetric matrix or
|
warnSing |
a logical indicating if a warning should
be signaled for singular |
uplo |
a string, either |
... |
further arguments passed to or from methods. |
An object representing the factorization, inheriting from
virtual class BunchKaufmanFactorization.
The specific class is BunchKaufman unless
x inherits from virtual class packedMatrix,
in which case it is pBunchKaufman.
The LAPACK source code, including documentation; see https://netlib.org/lapack/double/dsytrf.f and https://netlib.org/lapack/double/dsptrf.f.
Golub, G. H., & Van Loan, C. F. (2013). Matrix computations (4th ed.). Johns Hopkins University Press. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.56021/9781421407944")}
Classes BunchKaufman and
pBunchKaufman and their methods.
Classes dsyMatrix and
dspMatrix.
Generic functions expand1 and expand2,
for constructing matrix factors from the result.
Generic functions Cholesky, Schur,
lu, and qr,
for computing other factorizations.
showMethods("BunchKaufman", inherited = FALSE)
set.seed(0)
data(CAex, package = "Matrix")
class(CAex) # dgCMatrix
isSymmetric(CAex) # symmetric, but not formally
A <- as(CAex, "symmetricMatrix")
class(A) # dsCMatrix
## Have methods for denseMatrix (unpacked and packed),
## but not yet sparseMatrix ...
## Not run:
(bk.A <- BunchKaufman(A))
## End(Not run)
(bk.A <- BunchKaufman(as(A, "unpackedMatrix")))
## A ~ U DU U' in floating point
str(e.bk.A <- expand2(bk.A), max.level = 2L)
stopifnot(all.equal(as(A, "matrix"), as(Reduce(`%*%`, e.bk.A), "matrix")))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.