LAPACK Archives

[Lapack] eigenvectors problem about zgeev

( I did not look at your codes. ) 

You are correct.

1) LAPACK ZHEEV guarantees numerical orthogonality of the eigenvectors, this is 
a Hermitian eigensolver,

2) LAPACK ZGEEV does not guarantee it, this is a non-Hermitian eigensolver, 

3) If your input matrix is Hermitian and you use ZGEEV:

3a) if you have a  well separated eigenvalue, (meaning distinct enough from all 
the other eigenvalues in the spectrum)
you should find that the associated eigenvector is well orthogonal from all 
other eigenvectors returned by ZGEEV,

3b) if you have close eigenvalues, the orthogonality will deteriorate (the 
closer the eigenvalues, the more deterioration).
Typically, if you have a multiple eigenvalue, the orthogonality of the 
associated eigenvector is absolutely messed up. 
This makes sense if you look at the specification of ZGEEV. Nowhere is it said 
that the eigenvectors should be orthogonal. 
(Linear independent, yes, orthogonality, no.)

Bottom line, if you have a Hermitian matrix, you want to use an Hermitian 
eigenvalue solver. 
(Moreover this would be much faster.)

( The same holds true for complex eigenvalues: LAPACK ZGEEV might return 
eigenvalues with 
nonzero imaginary part for a Hermitian matrix. )

Cheers, Julien.

On Nov 22, 2012, at 6:18 AM, Shih-Kai Chou <lasergodf91@Domain.Removed> wrote:


I use the same hermitian matrix called Hw in my case but use different 
(1) zgeev
(2) zheev

Zgeev can't give me the eigenvector satisfying the orthogonal property but 
zheev can.
By the way, both of them give me the same eigenvalues.

I use c-language to write my code.
I don't use the complex structure, instead that I just use the 1-dimensional 

cc -o file file.c -llapack -lblas


Shih-Kai Chou
Lapack mailing list

<Prev in Thread] Current Thread [Next in Thread>

For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or