Hi all,


A project I'm currently working on requires me to compute the eigenvectors / eigenvalues of sparse symmetric integer matrices. This is needed in the context of Principal Component Analysis. I tried to look around for efficient algorithms but am not 100% sure where to start.


Ideally, I'd like to find the first 10 eigenvectors (e.g. corresponding to the 10 biggest eigen values) of a 10k x 10k matrix in less than 10 seconds.


Is that a crazy objective? What property of the matrices would you leverage? Integer + symmetric screams Smith Normal Form but I'm wondering if there exists better than that...


Any help appreciated! Thanks in advance,


Guillaume 



Spectral analysis of sparse symmetric integer matrices
<http://www.caam.rice.edu/software/ARPACK/> is the standard tool. It's Fortran (ouch), but there are libraries to call it from C++, Matlab, Python, and possibly also other languages that I do not know (I'd be surprised if there were no Java adapter around, for instance).


Don't write your restarted Arnoldi implementation from scratch if you have no previous experience in numerical analysis, it might be tricky.


