Currently I am using the LAPACK routine DSYEVR to compute the eigenvalues for a positive (all diagonal nonnegative) symmetric real matrix, but encountered with some questions. Can anyone give me some hints?
It's a small N*N matrix, with N only ~20. However, for some matrix, the DSYEVR gives even ridiculous results.
I observed that, for such matrix, the L1 condition number is larger than those giving expected results.
For example, when condition number is below 30, it gives expected results; when it goes to 80, it starts to give wrong
results, and when it goes to ridiculously large, say ~10^7, it gives very negative eigenvalues.
BTW, I only need the smallest eigenvalue.
So, I am wondering if there is any well-built routines or implementable methods for computing eigenvalues for ill-conditioned matrix.
Thank you very much!