Learn R Programming

irlba (version 2.3.5.1)

partial_eigen: Find a few approximate largest eigenvalues and corresponding eigenvectors of a symmetric matrix.

Description

Use partial_eigen to estimate a subset of the largest (most positive) eigenvalues and corresponding eigenvectors of a symmetric dense or sparse real-valued matrix.

Usage

partial_eigen(x, n = 5, symmetric = TRUE, ...)

Value

Returns a list with entries:

  • values n approximate largest eigenvalues

  • vectors n approximate corresponding eigenvectors

Arguments

x

numeric real-valued dense or sparse matrix.

n

number of largest eigenvalues and corresponding eigenvectors to compute.

symmetric

TRUE indicates x is a symmetric matrix (the default); specify symmetric=FALSE to compute the largest eigenvalues and corresponding eigenvectors of t(x) %*% x instead.

...

optional additional parameters passed to the irlba function.

References

Augmented Implicitly Restarted Lanczos Bidiagonalization Methods, J. Baglama and L. Reichel, SIAM J. Sci. Comput. 2005.

See Also

eigen, irlba

Examples

Run this code
set.seed(1)
# Construct a symmetric matrix with some positive and negative eigenvalues:
V <- qr.Q(qr(matrix(runif(100), nrow=10)))
x <- V %*% diag(c(10, -9, 8, -7, 6, -5, 4, -3, 2, -1)) %*% t(V)
partial_eigen(x, 3)$values

# Compare with eigen
eigen(x)$values[1:3]

# Use symmetric=FALSE to compute the eigenvalues of t(x) %*% x for general
# matrices x:
x <- matrix(rnorm(100), 10)
partial_eigen(x, 3, symmetric=FALSE)$values
eigen(crossprod(x))$values

Run the code above in your browser using DataLab