Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

DSYEVD and eigenvalue order

xiaomingg
Beginner
912 Views

I am new to INTEL MKL, and using fotran 77.

I am using DSYEVD to compute eigenvalues and eigenvectors. I need the eigenvalues and eigenvectors in original order in the subsequent calculation. But DSYEVD output eigenvalues in ascending order. Is there a solution?

Thank you for your help.

0 Kudos
1 Solution
Michael_C_Intel4
Employee
912 Views

Hello,

it's not possible for any eigensolver in MKL. I doubt if there's some determined original order, different algorithms can extract eigenvalues in different order.

Michael.

View solution in original post

0 Kudos
7 Replies
Michael_C_Intel4
Employee
913 Views

Hello,

it's not possible for any eigensolver in MKL. I doubt if there's some determined original order, different algorithms can extract eigenvalues in different order.

Michael.

0 Kudos
nvaneck
New Contributor I
912 Views
I need the same thing. Does anyone know of a non-MKL Fortran routine that will do this?

Thanks!
0 Kudos
mecej4
Honored Contributor III
912 Views
I find the requirement puzzling. How do you define "original order" with reference to eigenvalue determination? Or, equivalently, what is "original order" for the roots of the characteristic equation

det (A - I) = 0

?

Different algorithms may produce the eigenvalues in different order. How do you evaluate whether a particular order is closer to "original order"?
0 Kudos
nvaneck
New Contributor I
912 Views
It's a good question for which I have no answer. In a program for discriminant analysis I am working on I get different eventual results based upon the order of variables in the input matirx sscp. In all case the eigenvectors are valid, but the use of different sets leads to different results. The MKL symmtric lower triangleroutine gives different results than a square matrix equivalent withh the'U' argument set, othereigenvector routines I've tried give eigenvalues in low to high range, MKL gives them in high to low range. Perhaps the order of returned eigenvectors makes a difference somehow.

For instance, comparing the output of my program with MYSTAT gives the same results if the variables are one order, but reverses tnhe signs when in the reverse order, while all other statistical output matches completley. Other orders vary. In at least one case MYSTAT show the same behavior with unimportant secondary functions.

So I'm looking for causes and solutions, which may arise elsewere, but are certainly not obvious, as the preliminary matrices are the same in all cases. I'm looking for a solution of any kind.
0 Kudos
mecej4
Honored Contributor III
912 Views
A rather trivial solution, then, is to take the eigenvalues and eigenvectors returned by whichever eigenvalue routine (MKL or other) you use, and simply sort the eigenvalue array, with the eigenvector matrix as the associated array during the sort.
0 Kudos
nvaneck
New Contributor I
912 Views
I wish it were that simple, but I thinkthe eigenvalues always come back sorted. (MKL routines say they come back in increasing order.)
0 Kudos
yuriisig
Beginner
912 Views

Partially to solve a problem it is possible, comparing eigenvectors on various iterations. I did it at calculation of spectra.

0 Kudos
Reply