I'm looking to obtain the left and right eigenvectors of a general complex matrix. The left eigenvectors satisfy the equation: $\phi^L_i L = \lambda_i \phi^L_i$, with $\lambda_i$ being the $i$th eigenvalue, and the right eigenvectors satisfy $L\phi^R_i = \lambda_i \phi^R_i$. Importantly, the eigenvectors need to be orthonormal: $\phi^L_i . \phi^R_j = \delta_{i,j}$.

I can obtain the left eigenvectors by using the eigenvectors command on the hermitian conjugate of $L$. But in case of degenerate eigenvalues it doesn't ensure that the eigenvectors are orthonormal. Is there some way to achieve this? A working example is below:

Gen = {{-3, 2, 0, 0},{3, -2, 0, 0},{0, 0, -2, 4},{0, 0, 2, -4}};
{LR, VRT} = Eigensystem[Gen];
VR = Transpose[VRT];
{LLC, VLC} = Eigensystem[Transpose[Conjugate[Gen]]];
LL = Conjugate[LLC];
VL = Conjugate[VLC];
Do[If[Abs[Re[LL[[i]]] - Re[LR[[j]]]] <= 10^-9 && Abs[Im[LL[[i]]] - Im[LR[[j]]]] <= 10^-9, VtmpL[j] = VL[[i]], NULL], {i,1, 4}, {j, 1, 4}];
VL = Table[VtmpL[i], {i, 1, 4}];
Diag = VL.VR;

Above I have considered the example matrix in Block Jordan form, but it need not be so always. The output of the code is:


Also the right eigenvectors for the degenerate eigenvalue are different but the left ones are the same. This is what leads to a problem I guess. Any hints of how to get around this would be appreciated.

Edit: I realised that mathematica ensures that the eigenvectors command produces linearly independent eigenvectors. Can someone point out why this is not the case with the left eigenvectors (since 2 of them are exactly the same corresponding to the degenerate eigenvalue)?

  • 1
    $\begingroup$ Have you considered to apply Orthogonalize? $\endgroup$ Nov 21, 2018 at 14:26
  • $\begingroup$ @HenrikSchumacher: Not quite sure if this would work. Which ones should I consider correct to get the orthogonal pair, the left or right eigenvectors? I suspect that the right eigenvectors are not linearly independent creating this issue. Although I could be wrong. $\endgroup$
    – Juzar
    Nov 21, 2018 at 22:36


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.