I am writing code to compute Classical Multidimensional Scaling (abbreviated to MDS) of a very large n
by n
matrix, n = 500,000
in my example.
In one step of MDS, I need to compute the highest three eigenvalues and their corresponding eigenvectors of a n
by n
matrix. This matrix is called the B
matrix. I only need these three eigenvectors and eigenvalues. Common methods of calculating eigenvectors and eigenvalues of a large matrix take a long time, and I do not require a very accurate answer, so I am seeking an estimation of the eigenvectors and eigenvalues.
Some parameters:
B
matrix is symmetric, real, and quite dense
B
in theory should always produce real numbers. My question: Are there fast methods of estimating the three highest eigenvectors and eigenvalues of such a large B
matrix?
My progress: I have found a method of approximating the highest eigenvalue of a matrix, but I do not know if I can generalize it to the highest three. I have also found this paper written in 1996, but it is extremely technical and hard for me to read.
G. Golub and C.F Van Loan Matrix Computations 2nd in chapter 9 state that Lanczos algorithms are one choice for this (except that the matrix should ideally be sparse - it clearly works for non-sparse ones as well)
https://en.wikipedia.org/wiki/Lanczos_algorithm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With