# How to obtain left and right eigenvectors of a general complex matrix with degenerate eigenvalues?

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;
MatrixForm[Diag]


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

{{3,0,0,0},{0,5,0,0},{0,0,0,5},{0,0,0,5}}


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)?

• Have you considered to apply Orthogonalize? – Henrik Schumacher Nov 21 '18 at 14:26
• @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. – Juzar Nov 21 '18 at 22:36