In matlab, I use function 'eigs()' to get a few (about 10) of the smallest eigen vectors of a large matrix (5000x5000). Like this:
[V,UU] = eigs(A, 10,'sm');
After some trying, I found that the largest size of matrix 'eigs()' is able to deal with is something between 1300 and 1500.
With bigger matrices, it pops up error message like '(A-sigma*I)is singular. The shift is an eigenvalue.' or something about 'APPAPK'(when using 'sr') in the Command Window.
I got some info about these errors from google, but they are about some inner code or theorem(sounds like one) which I don't quite understand.
So, I want to know if there are any tricks with eigs to make it work with large matrix?
Thanks for your time and help.
You can try to add an identity matrix with the same size like: A = A + k*eye(size(A,1)); here k is an experimental coefficient smaller than 1. Doing this guarantees that matrix A is nonsingular