eigenvalues.manymatrices.Rd
This function computes the eigenvalue decomposition of \(N\) symmetric positive definite matrices. The eigenvalues are computed by the Rayleigh quotient method (Lange, 2010, p. 120). In addition, the inverse matrix can be calculated.
eigenvalues.manymatrices(Sigma.all, itermax=10, maxconv=0.001, inverse=FALSE )
Sigma.all | An \(N \times D^2\) matrix containing the \(D^2\) entries of \(N\) symmetric matrices of dimension \(D \times D\) |
---|---|
itermax | Maximum number of iterations |
maxconv | Convergence criterion for convergence of eigenvectors |
inverse | A logical which indicates if the inverse matrix shall be calculated |
A list with following entries
Matrix with eigenvalues
An \(N \times D^2\) Matrix of orthonormal eigenvectors
Vector of logarithm of determinants
Vector of determinants
Inverse matrix if inverse=TRUE
.
Lange, K. (2010). Numerical Analysis for Statisticians. New York: Springer.
# define matrices Sigma <- diag(1,3) Sigma[ lower.tri(Sigma) ] <- Sigma[ upper.tri(Sigma) ] <- c(.4,.6,.8 ) Sigma1 <- Sigma Sigma <- diag(1,3) Sigma[ lower.tri(Sigma) ] <- Sigma[ upper.tri(Sigma) ] <- c(.2,.1,.99 ) Sigma2 <- Sigma # collect matrices in a "super-matrix" Sigma.all <- rbind( matrix( Sigma1, nrow=1, byrow=TRUE), matrix( Sigma2, nrow=1, byrow=TRUE) ) Sigma.all <- Sigma.all[ c(1,1,2,2,1 ), ] # eigenvalue decomposition m1 <- sirt::eigenvalues.manymatrices( Sigma.all ) m1 # eigenvalue decomposition for Sigma1 s1 <- svd(Sigma1) s1