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.
How to find a better algorithm to compute eigenvalue and eigenvector of a very large matrix
Asked Answered
This question has already been answered here –
Tamratamsky
The Coppersmith and Winograd algorithm can solve the problem in O(n ^ 2.376) –
Tamratamsky
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.
© 2022 - 2024 — McMap. All rights reserved.