lu.Hermitian(x, lower = T, norm.comp = T, tune = <see below>, workspace = <see below>)
solve
is going to eventually be applied to the factorization with condition
estimation. The default is to compute the norm.
NB
and
NBMIN
as described in
.laenv
.
x
is returned as
an object of class
c("lu.Hermitian", "decomp")
.
A copy of the call to
lu.Hermitian
is included as an
attributes, as is the one or infinity norm of the matrix if requested
(used for condition estimation).
Based on the functions dsytrf and zhetrf from LAPACK (Anderson et al. 1994).
For any symmetric (Hermitian) matrix
X
, there is a row permutation
P
,
a triangular matrix
T
whose diagonal elements equal 1, and a block diagonal
matrix
B
with either 1 by 1 or symmetric 2 by 2 blocks on the diagonal,
such that
P X t(P) = T B t(T)
.
The matrix
T
is either lower or upper triangular (depending on which
triangle is selected by
lower
).
This product is called a
symmetric indefinite factorization
of
X
. If all of the blocks of
B
are 1 by 1 (i. e.
B
is diagonal), and
if all of the diagonal elements of
B
are positive, the the matrix is
positive definite and the factorization is a variant of the Cholesky
decomposition with pivoting.
Anderson, E., et al. (1994). LAPACK User's Guide, 2nd edition, SIAM, Philadelphia.
n <- 5 x <- Matrix( rnorm(n*n), nrow = n, ncol = n) x[row(x) > col(x)] <- t(x)[row(x) > col(x)] # construct symmetric matrix class(x) <- Matrix.class(x) lu(x) # symmetric indefinite factorization of A