R: Find a few approximate largest eigenvalues and corresponding...
partial_eigen
R Documentation
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, ...)
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.
Value
Returns a list with entries:
values n approximate largest eigenvalues
vectors n approximate corresponding eigenvectors
Note
Specify symmetric=FALSE to compute the largest n eigenvalues
and corresponding eigenvectors of the symmetric matrix cross-product
t(x) %*% x.
This function uses the irlba function under the hood. See ?irlba
for description of additional options, especially the tol parameter.
References
Augmented Implicitly Restarted Lanczos Bidiagonalization Methods, J. Baglama and L. Reichel, SIAM J. Sci. Comput. 2005.
See Also
eigen, irlba
Examples
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]