Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- how to make eigenvectors ( obtained from _geev ) orthorgonal?

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

Weng__Chi-Hung

Beginner

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

08-26-2013
06:41 AM

119 Views

how to make eigenvectors ( obtained from _geev ) orthorgonal?

Thanks in advance for any reply&comments.

CH.

Link Copied

5 Replies

mecej4

Black Belt

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

08-26-2013
08:50 AM

119 Views

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

Weng__Chi-Hung

Beginner

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

08-27-2013
03:35 AM

119 Views

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?

mecej4

Black Belt

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

08-27-2013
06:16 AM

119 Views

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

Weng__Chi-Hung

Beginner

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

08-27-2013
09:06 AM

119 Views

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...

mecej4

Black Belt

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

08-27-2013
09:26 AM

119 Views

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

Topic Options

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

For more complete information about compiler optimizations, see our Optimization Notice.