Learn R Programming

sirt (version 4.1-15)

eigenvalues.manymatrices: Computation of Eigenvalues of Many Symmetric Matrices

Description

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.

Usage

eigenvalues.manymatrices(Sigma.all, itermax=10, maxconv=0.001,
    inverse=FALSE )

Value

A list with following entries

lambda

Matrix with eigenvalues

U

An \(N \times D^2\) Matrix of orthonormal eigenvectors

logdet

Vector of logarithm of determinants

det

Vector of determinants

Sigma.inv

Inverse matrix if inverse=TRUE.

Arguments

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

References

Lange, K. (2010). Numerical Analysis for Statisticians. New York: Springer.

Examples

Run this code
# 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

Run the code above in your browser using DataLab