MATLAB MATLAB: anti-crossing eigenvalues

AI Thread Summary
The discussion focuses on an eigenvalue problem related to a Hamiltonian matrix in Quantum Mechanics, specifically addressing the issue of eigenvalue crossing due to zero off-diagonal elements. It is noted that while Hermitian matrices typically exhibit anti-crossing behavior, this property can be lost when certain off-diagonal elements are zero, leading to potential eigenvalue crossings. The original poster seeks a method to maintain the initial sorting of eigenvalues as a variable changes, which can be disrupted during crossings. A suggested solution is to use the Jacobi iterative method, which recalculates eigenvalues and eigenvectors in each iteration, helping to preserve the sorting order. This approach ensures that the eigenvalue sorting remains consistent despite variations in the matrix.
phy127
Messages
12
Reaction score
0
I am solving an eigenvalue problem -- Hamiltonian problem in Quantum Mechanics. The matrix is 8x8 with off-diagonal terms, but some are zero.

It is well known that the eigenvalues of a Hermitian matrix anti-cross as it nears each other. This is very easy see if the matrix have an independent variable.

However, if the matrix have some zero off-diagonal elements, the anti-crossing is lost and some eigenvalues could cross. Then, the problem arises.

Correct me if I'm wrong. When a matrix is diagonalized, MATLAB sorted the eigenvalues. Now, if there is anti-crossing, I have no problem since the initial sorting of eigenvalues will not change as I vary my variable.

If there are eigenvalues that crosses each other, then at the instant there is crossing, the sorting of eigenvalues will be different. Please have a look at my attached image. Look at the yellow and purple lines, at their crossing, the initial sorting of eigenvalues is broken.

QUESTION:
Is there any way such that the initial sorting of eigenvalues, e.g. when my variable is zero, will not change as I vary my variable?
Back in my mind, it should be possible if during the sorting of eigenvalues, in each step, it will consider the previous eigenvalues. The changes are small anyway. But I don't know exactly how to implement it.

Please help! :)
 

Attachments

  • untitled.jpg
    untitled.jpg
    26.4 KB · Views: 610
Physics news on Phys.org
The answer to your question is yes, it is possible to keep the initial sorting of eigenvalues as you vary your variable. The easiest way to do this is to use an iterative method such as the Jacobi iterative method. This method works by successively finding the eigenvalues and eigenvectors of the matrix. In each iteration, the eigenvalues and eigenvectors are re-computed using the current values of the eigenvalues and eigenvectors. This ensures that the sorting of the eigenvalues remains consistent as the matrix changes.
 

Similar threads

Replies
32
Views
4K
Replies
6
Views
2K
Replies
2
Views
2K
Replies
1
Views
1K
Replies
2
Views
3K
Replies
4
Views
4K
Replies
3
Views
3K
Back
Top