Diagonalize Large Hermitian Matrices Efficiently?

  • Context: Graduate 
  • Thread starter Thread starter John943
  • Start date Start date
  • Tags Tags
    Hermitian Matrices
Click For Summary

Discussion Overview

The discussion revolves around efficient methods for diagonalizing large, complex Hermitian matrices, particularly in the context of needing only the eigenvalues for simulations. Participants explore various algorithms and techniques that could potentially reduce computational time and resources.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant seeks efficient methods for obtaining eigenvalues from large Hermitian matrices without full diagonalization, mentioning the use of the QR algorithm.
  • Another participant suggests methods involving matrix multiplication and fixed points to find the largest eigenvalue, questioning if that is sufficient for the original poster's needs.
  • A suggestion is made to use the power iteration method, which is effective for identifying the largest eigenvalue under certain conditions.
  • Concerns are raised about the reliability of using a self-implemented QR algorithm, recommending instead the use of established libraries like LAPACK for better performance and reliability.
  • One participant questions how to determine which eigenvalue is desired if it is neither the largest nor the smallest, prompting a discussion about finding eigenvalues near a specified constant using iterative methods.

Areas of Agreement / Disagreement

Participants express varying opinions on the best methods to use, with no consensus reached on a single approach. Some participants agree on the utility of established libraries, while others propose alternative methods for specific eigenvalue extraction.

Contextual Notes

Limitations include the assumption that the matrices have certain properties (e.g., a strictly largest eigenvalue) and the dependence on the user's specific needs for eigenvalue selection.

Who May Find This Useful

Researchers and practitioners working with large Hermitian matrices in simulations, particularly those interested in numerical linear algebra and eigenvalue problems.

John943
Messages
2
Reaction score
0
I am running a program that has to diagonalize large, complex Hermitian matrices (the largest they get is about 1000x1000). To diagonalize the matrix once isn't too bad, but I need to diagonalize thousands to millions of different Hermitian matrices each time I run a simulation. If I only need the eigenvalues of each matrix, is there an efficient method that does not require me to diagonalize each matrix to get said eigenvalues? I'm currently using a version of the QR algorithm to diagonalize the matrices but I was hoping there was a faster method. Is there a way to emulate the matrices with a series or polynomial of some sort? Any help is greatly appreciated (if anyone knows of any papers written on this topic that would be perfect). Thanks!
 
Physics news on Phys.org
There are methods using matrix multiplication and fixed points to pick out the largest eigenvalue if you only need that one. Is that the case here?
 
That sounds helpful! I only ever need one eigenvalue from the computation (though not necessarily the largest); if you know of any resources on such methods could you point me to them? Hopefully I can adapt them to what I need. Thanks!
 
Check out the power iteration method. The matrix must have a strictly largest ev, and this method will pick it out.
 
I wouldn't use your own code for the QR algorithm for this. Find the routine from a professional library like LAPACK (which is free) and use that. If you want to see the theory, google for the "LAPACK Working Notes" (that's a collection of 200+ papers many of which describ the research done to develop the methods - but you will need a strong background in linear algebra to understand some of them!)

John943 said:
That sounds helpful! I only ever need one eigenvalue from the computation (though not necessarily the largest); if you know of any resources on such methods could you point me to them? Hopefully I can adapt them to what I need. Thanks!

The obvious question is "how do you know which eigenvalue you want, if it's not the largest or the smallest, and you don't care about the eigenvectors"?

If you want an eigenvalue near some constant S, you can find the smallest (closest to 0) eigenvalues of (A - sI) using an interative method.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 7 ·
Replies
7
Views
8K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 5 ·
Replies
5
Views
5K