Diagonalize Large Hermitian Matrices Efficiently?

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.
 
Thread 'Determine whether ##125## is a unit in ##\mathbb{Z_471}##'
This is the question, I understand the concept, in ##\mathbb{Z_n}## an element is a is a unit if and only if gcd( a,n) =1. My understanding of backwards substitution, ... i have using Euclidean algorithm, ##471 = 3⋅121 + 108## ##121 = 1⋅108 + 13## ##108 =8⋅13+4## ##13=3⋅4+1## ##4=4⋅1+0## using back-substitution, ##1=13-3⋅4## ##=(121-1⋅108)-3(108-8⋅13)## ... ##= 121-(471-3⋅121)-3⋅471+9⋅121+24⋅121-24(471-3⋅121## ##=121-471+3⋅121-3⋅471+9⋅121+24⋅121-24⋅471+72⋅121##...
##\textbf{Exercise 10}:## I came across the following solution online: Questions: 1. When the author states in "that ring (not sure if he is referring to ##R## or ##R/\mathfrak{p}##, but I am guessing the later) ##x_n x_{n+1}=0## for all odd $n$ and ##x_{n+1}## is invertible, so that ##x_n=0##" 2. How does ##x_nx_{n+1}=0## implies that ##x_{n+1}## is invertible and ##x_n=0##. I mean if the quotient ring ##R/\mathfrak{p}## is an integral domain, and ##x_{n+1}## is invertible then...
The following are taken from the two sources, 1) from this online page and the book An Introduction to Module Theory by: Ibrahim Assem, Flavio U. Coelho. In the Abelian Categories chapter in the module theory text on page 157, right after presenting IV.2.21 Definition, the authors states "Image and coimage may or may not exist, but if they do, then they are unique up to isomorphism (because so are kernels and cokernels). Also in the reference url page above, the authors present two...
Back
Top