MATLAB Answers

Jeroen
0

eigs - Error with ARPACK routine znaupd: info = -8

Asked by Jeroen
on 4 Feb 2014
Latest activity Commented on by Matt J
on 11 Feb 2014
I am trying to find the eigenvalues and -vectors of a large-ish (4400x4400 elements) sparse matrix using eigs().
When I define a small subset of eigenvalues to be found, e.g. 20 values with the largest imaginary part (option 'li'), the algorithm takes too long to converge. If I request almost all eigenvalues to be found, I manage to get a correct answer. At least, sometimes.
More often than not I get back the error below. This seems to be dependent on the number of eigenvalues I request. It works for k=3000 but not for k=4000 or k=2500.
Error using eigs (line ###)
Error with ARPACK routine znaupd: info = -8
Going through the documentation of the znaupd routine ( http://www.caam.rice.edu/software/ARPACK/UG/node138.html ), I have found that this error code means the following:
Error return from LAPACK eigenvalue calculation;
This description doesn't help me at all to pin point what goes wrong and what I can change to avoid getting these errors.
Can anyone tell me what exactly triggers this error, and how I fix my matrices/problem to avoid it?

  0 Comments

Sign in to comment.

1 Answer

Answer by Bill Greene on 6 Feb 2014

I'm not certain what the problem is but I can suggest something to try.
I'll assume you really want around 20 eigenvalues. By default, the algorithm is using 40 Lanczos vectors during the iteration. I suggest you increase the number of vectors to something like 100 using the opts.p option to eigs.
If you really want several thousand eigenvalues, I suggest considering converting the matrix to full and using the eig function to calculate all of them.
Bill

  1 Comment

Jeroen Commented:
Unfortunately it doesn't solve the problem.
Currently I'm circumventing the problem by setting sigma in eigs() to an estimated target eigenvalue instead of the option 'li' , requesting all the eigenvalues, and sorting them manually afterwards.
This seems to work for now, but is not really the answer to my problem.

Sign in to comment.