## Get unscaled eigenvectors from DGEEV

Open discussion regarding features, bugs, issues, vendors, etc.

### Get unscaled eigenvectors from DGEEV

Hello,
Does anybody know how to get unscaled left and right eigenvectors from dgeev? I am trying to find A = VR(GAMMA)VL, which will not work with the scaled versions.
Thanks,
Chris
costoich

Posts: 3
Joined: Mon Apr 04, 2011 12:08 pm

### Re: Get unscaled eigenvectors from DGEEV

Hi Chris, not sure what you mean by scaled and unscaled. Anyway, please read the following thread:
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=2&t=298.
Julien.
Julien Langou

Posts: 827
Joined: Thu Dec 09, 2004 12:32 pm
Location: Denver, CO, USA

### Re: Get unscaled eigenvectors from DGEEV

Thank you Julien, that was helpful. I still run into a little problem though. I am following your instructions to dsigg:

What's the conclusion of all this. Looks like for your application, you really
want inv(VR) and that VL is not enough. Even if your eigenvalue are distinct,
LAPACK will not guarantee you
VL^H * VR = I.
But (if dist. eigs.) VR^H * VL is a diagonal matrix with modulus 1 diagonal element,
therefore you can compute for each i=1 to n:
VL(:,i)^H * VR(:,i) = alpha.
alpha is necessarilly a scalar of modulus 1, if it's not, then the modulus of
alpha nedds to be between 0 and 1 and this means that you have multiple eigenvalues
and well, it's a little harder to handle, so I'll skip.
Then you just need to divide the row i of VL by conj(alpha) or the col i of VR
by alpha. (Either one or the other, but not both!). And that should do it.
After this scaling, you will find inv(VR) from VL^H.

In my case, I expect 5 eigenvalues, 3 of which are multiple. Sometimes alpha = 0.0, which is a problem. Do you have any advise?
Thanks a lot!
-Chris
costoich

Posts: 3
Joined: Mon Apr 04, 2011 12:08 pm

### Re: Get unscaled eigenvectors from DGEEV

Yep, for multiple eigenvalues, you would get (alpha.NE.1.0D+00). (The fact that it is ZERO or not is not the issue actually, as soon as it's not ONE you are in trouble.)
So, what you can do is simply compute VR (only), and compute the inverse of VR to get VL. That's the best idea I have at this point. Read the email of Jim (at the bottom of topic #298) to see the danger of doing this.
If your problem is well conditioned, the procedure above ( compute VR (only), and compute the inverse of VR to get VL ) will work.
Julien.
Julien Langou

Posts: 827
Joined: Thu Dec 09, 2004 12:32 pm
Location: Denver, CO, USA

### Re: Get unscaled eigenvectors from DGEEV

Hi Julien,
Thanks for the reply. I have been doing that: computing VR, then the pseudo-inverse using SVD (sometimes VR is singular). Thank you very much for confirming that this is probably my best option.
-Chris
costoich

Posts: 3
Joined: Mon Apr 04, 2011 12:08 pm