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.
1 解決方案
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.
連結已複製
7 回應
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"?
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"?
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.
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.
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.