Consider a real symmetric matrix of dimension N~10^5 and rank m~2000. What is the most efficient algorithm for determining the top m eigenvectors? If the answer isn't obvious, are there existing routines for this in languages like MATLAB or Python?

  • 1
    $\begingroup$ Take a look at "Efficient Algorithms for Large-scale Generalized Eigenvector Computation and Canonical Correlation Analysis" arxiv.org/abs/1604.03930 $\endgroup$ – Biswajit Banerjee Sep 12 '16 at 23:14
  • $\begingroup$ That paper deals with generalized eigenvectors and CCA. I don't see a solution to this problem in there unless I'm missing something. $\endgroup$ – user149661 Sep 13 '16 at 4:13
  • $\begingroup$ As a first though (didn't test it), I would go with QR decomposition with economy option both in matlab or scipy. Then work with the smaller square matrix. $\endgroup$ – percusse Sep 13 '16 at 9:19
  • 1
    $\begingroup$ Is the matrix dense? $\endgroup$ – Wolfgang Bangerth Sep 13 '16 at 20:32
  • 1
    $\begingroup$ @user149661 Are the inputs exact, or are there measurement errors that may spoil the low-rank property? $\endgroup$ – Federico Poloni Sep 14 '16 at 12:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.