phase of the elements of the eigenvector
3 views (last 30 days)
Show older comments
Hi there,
I get exact eigenvalues using MATLAB, but the phase of the corresponding elements of the eigenvectors I am getting using eig() are changing kind of arbitrarily:
say I have,
, and Ej calculated by [C E]=eig(H) are correct and exact.
also,
are also correct, but the phase of Cij is changing arbitrarily in the E-K space, such that in my code I get in trouble big time calculating
where Cij are complex numbers
+--------------------------------------------------------
to make my question more clear, assume you have a 4x4 hamiltonian ,
and you get the eigenvector [C11(K) C12(K) C13(K) C14(K)] for the first eigenvalue Ej
now if you plot(Kx, Ky angle(C11(Kx,Ky)) ) , then you get a map like:
-------------------------
|\ |
| ------\ angle |
| \ 2 |
| \ | Ky
| angle \ |
| 1 \ |
| \ |
-------------------------
Kx
and this boundary causes problems for me when it comes to gradients, I have been thinking of smoothing or shifting the phases, but I d rather not to have those in the first place,
thank you for your help
1 Comment
David Goodmanson
on 20 Aug 2019
Edited: David Goodmanson
on 25 Aug 2019
Hi rooz,
One possibility is, if you have a basic unperturbed hamiltonian, you can define the phases of the associated eigenvectors, which are supposed to be easy to calculate. Then if psi0 and psi are the eigenvectors of the unperturbed and full hamiltonian respectively, you could set the phase of psi by requiring that, say, dot(psi,psi0') is positive real.
Answers (0)
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!