Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find a better algorithm to compute eigenvalue and eigenvector of a very large matrix

I have used Jacobi method to find all eigenvalues and eigenvectors in c code. Though the complexity of Jacobi method is O(n^3) but the dimension of my matrix is huge (17814 X 17814). It takes a lot of time. I want to know a better algorithm by which I can solve this problem. If you want I can attach my c code.

like image 532
Ankita Mandal Avatar asked Mar 19 '15 08:03

Ankita Mandal


People also ask

Which of the following methods is used to find the numerically largest eigen value of a matrix?

If it is unsymmetrical apply LR or QR method. If you are interested in largest or smallest in magnitude eigenvalues then apply Power's method.


1 Answers

The algorithm suggested in the comments is not necessarily the best one.
As you can see here, the Jacobi method can be vastly faster when using special techniques.
On top of that, Jacobi is quite easy to run in parallel, and it's much faster for sparse matrices than for dense matrices so you can take advantage of that as well, depending on your architecture and the type of matrix you have.

I'd say that the best thing is to test a few different methods and see in practice where you can get the best results.
O(n^2.376) is not necessarily better than O(n^3) depending on constants.

like image 198
Matt Ko Avatar answered Oct 09 '22 19:10

Matt Ko