Iterative method to compute only the positive eigenvalue's and corresponding eignevectors of a very large matrix?

526 Views Asked by At

I have a very large dense matrix (~10000 X ~10000) which is not full rank . I want to compute only the positive eigenvalues and corresponding eigenvectors instead of computing all of them.

I have looked into iterative power method and inverse power methods from iterative Method, but they compute the full spectrum which ,I need to avoid.

In short I want to compute only the positive eigenvalues instead of the full spectrum.

Can someone suggest me some good literature to read on this problem.

Thank you .

1

There are 1 best solutions below

2
On BEST ANSWER

Not an answer, just a long thought that may or may not help

This method won't give the eigenvectors directly. You will have more computation to do. But I guess it is better than finding the whole spectrum. I assume that all eigenvalues are real for your matrix, say $A$. Then, add a large positive number $\alpha$ to its diagonal entries. Effectively, you have $B=A+\alpha I$ where $I$ is identity. Thus all eigenvalues of $A$ will get increased by $\alpha$. Thus if $\alpha$ is large enough, then the most negative eigenvalue will also move beyond zero on to the positive side of the real line. Now, use any technique (power method, variations of lanczos algorithm) which calculates the largest magnitude eigenvalue of $B$ (which is also the most positive eigenvalue of $B$, since all eigenvalues of $B$ are positive). Note that you can get the largest positive eigenvalue of $A$ from this by subtracting $\alpha$. Now find the second largest magnitude eigenvalue and so on. Find the eigen values of $A$ as well in parallel. Stop the moment, when the eigenvalue of $A$ becomes negative.

A good choice of $\alpha$ would be $\lvert\lvert A \rvert\rvert_F$ (frobenious norm of $A$).