Randomized sketches work well to find the largest K of N eigenvectors when K << N.
The idea is similar to power iteration, but instead of iteratively transforming and normalizing a single random vector, you use several of them and repeatedly orthogonalize them. The span of these vectors converges to the span of the largest eigenvectors. As with power iteration, the speed of convergence and accuracy depends on the flatness of the matrix spectrum. By using a few extra dimensions above what you care about, you can improve convergence. e.g. use 13 vectors instead of 10. See https://arxiv.org/pdf/0909.4061v2.pdf -- Mark Borgerding On 6/18/20 7:03 AM, Mathieu Dutour wrote: > For some computation I need to compute the say 10 highest eigenvalues > of a symmetric positive definite matrix. > > The numerical technique is typically the power-method but this gives only > the highest eigenvector and more work is required for getting more than > one eigenvector. > > In Matlab the command of choice is eigs(A, 10) and it is implemented as > well in the "octave" open source software. > > Could we have such a functionality in Eigen? That would be fairly natural > for Eigen. > > Mathieu
