- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

I am looking for the eigenvectors & eigenvalues of a non-symmetric, complex-valued matrix. The matrix is a Hermitian matrix with some diagonal imaginary terms added, which is then non-hermitian. The obtained eigenvalues from the subroutine zgeev are precise, but, the eigenvectors are not, when I compare the results using zgeev with the results obtained from Mathematica. I think the problem is that it is not guaranteed that, the obtained eigenvectors from zgeev are orthorgonal, though, I have no idea why that the results obtained from Mathematica are perfect, ie. The eigenvectors are orthornomal and complete. Should I impose further procedure after using zgeev, to make sure the eigenvectors are orthonormal?

Thanks in advance for any reply&comments.

CH.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Please present details, preferably using a short example, to support your claim.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

for more explicitly, I am doing this as a check, it is a 3X3 matrix. and there is a complex number only at matrix(1,1)

matrix = {{ -6.75490294261523187*(10^-4) + (i *(-10^-3)), 1, 1 },

{ 1, 0, 1 },

{ 1, 1, 6.75490294261523187*(10^-4) }}

The matrix is non-symmetric. therefore I call zgeev for solving this. and it yields the following eigenvalues(here I output the real part of it only):

2.0000000273480896

-1.0003672906735881

-0.99963273667450081

However, in mathematica, it is (real part of the eigenvalue)

2

-1

-1

I am wondering that maybe due to quasi-degeneracy, the eigenvalues are not precise enough (also the eigenvectors). Should I find ways to increase the precision or, try other subroutines for dealing degeneracy eigenvalues?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

If you ran Mathematica on the 3 X 3 matrix that you gave above, you would not have obtained the eigenvalues as 2, -1 and -1. If the matrix that you gave Mathematica was the same matrix but with the diagonal elements replaced by zero, your comparison is not valid. Furthermore, your example does not agree with your original statement that "The obtained eigenvalues from the subroutine zgeev are precise".

Please make valid comparisons and report what you did accurately

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

sorry for the wrong results...the real part of the eigenvalue was not what I had written here. I am new to mathematica.

I discovered that if I set * N[Eigenvalues[mat],14]*

in mathematica, it would yield the same eigenvalues as what I have got using fortran+zgeev

though, if I set

*N[ Eigenvalues[mat] ]*

in mathematica then it is somehow different. therefore the precision of the eigenvalues seems not converged when I use fortran..?

also the left/right eigenvectors are always not in accordance...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Chi-Hung W. wrote:Again, a simple statement such as that is not enough to go on. Note also that if

also the left/right eigenvectors are always not in accordance

**v**is an eigenvector, so is

*c*

**v**, where

*c*is a complex constant different from zero. Different packages may use different conventions for choosing the constant.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page