I am trying to calculate all of the eigenvectors/eigenvalues of large (40000x40000), sparse, asymmetric matrix. I am using MATLAB and have 3 GB of working memory. The way I am calculating them is by sweeping through (as suggested here -http://www.mathworks.com/support/solutions/en/data/1-A0QRGR/index.html?product=SL&solution=1-A0QRGR). All of my eigenvalues are negative. I start from near the most negative eigenvalue, use eigs, then select the maximum. I repeat eigs on that maximum plus 1E-5 to avoid using eigs with a shift equal to an eigenvalue and then collect the eigenvalues (and the corresponding eigenvectors) that are greater than that maximum plus 1E-14 to avoid duplicate eigenvalues due to numerical error. I repeat this until the maximum of a new set of eigenvalues reaches close to 0. However, I always seem to fall a few (~5) eigenvalues short of the total. I have checked for the possibility of a maximum being a complex number and making sure that the complex conjugate has been tabulated, but that does not do anything. Moreover, some (~2) of the zero eigenvalues have corresponding eigenvectors that are entirely NaN. I am currently at a complete loss of how to proceed, and any suggestions regarding useful texts, etc., would be greatly appreciated.
Over the course of 40,000 eigenvalues/eigenvectors, I wouldn't be surprised at all if at least a couple were closer to each other than the 1e-14 tolerance you're allowing, and that's why you're missing a few. If you really need all of these eigenvectors, the easiest possible solution would be to just find a computer with enough memory to do this in matlab. As Wolfgang pointed out, this will probably take ~20gb+ of memory; pushes the limit of tractability on a single computer but you can try and find one available that works. Another alternative is to set up a lot of virtual memory (swap space), keeping in mind that this will likely be very slow. So either get a bigger computer, use the eigenpairs you do already have, or just use swap space and wait.
Also, you used the phrase "matrix for which the eigenpairs can be calculated exactly." Keep in mind you are never computing these "exactly". They're being determined by iterative methods, and are subject to all floating point errors the same as any other method.