Unable to evaluate Eigenvalues and Eigenvectors for a matrix

I have the following 3X3 matrix M and I wish to find its eigenvectors and eigenvalues

M = {{-I*ω + Γ/2, I*g1,
0}, {I*g1, -I*ω + κ1/2, I*g2}, {0,
I*g2, -I*ω + κ2/2}}


Simply doing

Eigenvectors[M]


Returns the error

Eigenvectors: Unable to find all eigenvectors.


Doing

Eigenvalues[M]


Returns a long list of numbers, variables and the complex identity I. Also some numbers or variables has a # sign attached to it. I suspect it's a condition statement but I'm not sure how to deal with it. Would appreciate any assistance I can get. Thanks for the help in advance.

• Which version of Mathematica are you using? It works for me. The second part is also ok. Try using some values of your constants. Jul 24, 2018 at 18:59
• I'm using 11.3 Student Edition. Well it doesn't work for me clearly. I'm not suppose to set the constants yet for [CapitalGamma], [Kappa}1, [Kappa]2, g1, g2 but even when I did, I'm still getting a # sign in the eigenvalues. Could you elaborate on what you did to make it work ? Jul 24, 2018 at 19:07
• I have the same problem with version 11.3 on macOS. The error message is Eigenvectors::eivec0. Jul 24, 2018 at 19:21
• Might be a bug, I'll check when I get a chance. Jul 24, 2018 at 21:11
• The eigenvectors of $M$ and $M + i \omega I$ where $I$ is the identity matrix are identical, so just find the eigenvectors of $M + i \omega I$. Aug 1, 2018 at 0:01

M = {{-I*ω + Γ/2, I*g1,
0}, {I*g1, -I*ω + κ1/2, I*g2}, {0,
I*g2, -I*ω + κ2/2}};

ev = Eigenvalues[M];


The Eigenvalues contain Root objects. Looking at the first one

ev[[1]]

(* 1/2 Root[-4 g2^2 Γ -
4 g1^2 κ2 - Γ κ1 κ2 +
8 I g1^2 ω + 8 I g2^2 ω +
2 I Γ κ1 ω +
2 I Γ κ2 ω +
2 I κ1 κ2 ω + 4 Γ ω^2 +
4 κ1 ω^2 + 4 κ2 ω^2 - 8 I ω^3 +
4 g1^2 #1 +
4 g2^2 #1 + Γ κ1 #1 + Γ κ2 #1 + \
κ1 κ2 #1 - 4 I Γ ω #1 -
4 I κ1 ω #1 - 4 I κ2 ω #1 -
12 ω^2 #1 - Γ #1^2 - κ1 #1^2 - κ2 #1^2 \
+ 6 I ω #1^2 + #1^3 &, 1] *)


Low-order Root objects can be converted to radicals with ToRadicals

ev1 = ev[[1]] // ToRadicals

(* 1/2 (-((2^(
1/3) (12 g1^2 +
12 g2^2 - Γ^2 + Γ κ1 - \
κ1^2 + Γ κ2 + κ1 κ2 - \
κ2^2))/(3 (-36 g1^2 Γ + 72 g2^2 Γ +
2 Γ^3 - 36 g1^2 κ1 - 36 g2^2 κ1 -
3 Γ^2 κ1 - 3 Γ κ1^2 +
2 κ1^3 + 72 g1^2 κ2 - 36 g2^2 κ2 -
3 Γ^2 κ2 +
12 Γ κ1 κ2 - 3 κ1^2 κ2 -
3 Γ κ2^2 - 3 κ1 κ2^2 +
2 κ2^3 + √(4 (12 g1^2 +
12 g2^2 - Γ^2 + Γ κ1 - \
κ1^2 + Γ κ2 + κ1 κ2 - \
κ2^2)^3 + (-36 g1^2 Γ + 72 g2^2 Γ +
2 Γ^3 - 36 g1^2 κ1 - 36 g2^2 κ1 -
3 Γ^2 κ1 -
3 Γ κ1^2 + 2 κ1^3 +
72 g1^2 κ2 - 36 g2^2 κ2 -
3 Γ^2 κ2 +
12 Γ κ1 κ2 -
3 κ1^2 κ2 - 3 Γ κ2^2 -
3 κ1 κ2^2 + 2 κ2^3)^2))^(1/3))) + (1/(
3 2^(1/3)))((-36 g1^2 Γ + 72 g2^2 Γ +
2 Γ^3 - 36 g1^2 κ1 - 36 g2^2 κ1 -
3 Γ^2 κ1 - 3 Γ κ1^2 +
2 κ1^3 + 72 g1^2 κ2 - 36 g2^2 κ2 -
3 Γ^2 κ2 + 12 Γ κ1 κ2 -
3 κ1^2 κ2 - 3 Γ κ2^2 -
3 κ1 κ2^2 +
2 κ2^3 + √(4 (12 g1^2 +
12 g2^2 - Γ^2 + Γ κ1 - \
κ1^2 + Γ κ2 + κ1 κ2 - \
κ2^2)^3 + (-36 g1^2 Γ + 72 g2^2 Γ +
2 Γ^3 - 36 g1^2 κ1 - 36 g2^2 κ1 -
3 Γ^2 κ1 - 3 Γ κ1^2 +
2 κ1^3 + 72 g1^2 κ2 - 36 g2^2 κ2 -
3 Γ^2 κ2 +
12 Γ κ1 κ2 - 3 κ1^2 κ2 -
3 Γ κ2^2 - 3 κ1 κ2^2 +
2 κ2^3)^2))^(1/3)) +
1/3 (Γ + κ1 + κ2 - 6 I ω)) *)


The complexity/length of this expression is why a Root object is used to represent it in more compact form.

To avoid the Root objects you can use the option Cubics

Eigenvalues[M, Cubics -> True]


EDIT: As a workaround for the Eigenvectors you can try

Simplify[Eigenvectors[M /. Complex[0, -1] -> mi, Cubics -> True] /. mi -> -I]

• I didn't know you can do that but this is what I'm looking for. Thank you! Edit: The Eigenvectors still won't show itself. I did Eigenvectors[M]//ToRadicals but it's returning the same error, saying unable to find all eigenvectors Jul 24, 2018 at 19:10
• I don't get the I -> i part. Are you saying replace the complex identity I to a lower case i and then switch it back again at the end? It doesn't work unfortunately. Jul 24, 2018 at 19:54
• @kowalski - I must have had an old definition lying around. Try the revised workaround. Jul 24, 2018 at 20:03
• Thank you very much! That works!! Jul 24, 2018 at 20:18

I tried this and works:

 M = {{-I*ω + Γ/2, I*g1,
0}, {I*g1, -I*ω + κ1/2, I*g2}, {0,
I*g2, -I*ω + κ2/2}};
EVec = Eigenvectors[M]; (*gives all eigen vectors*)
EVec[[1]] (*gives first eigen vector*)
Eval = Eigenvalues[M]; (*gives all eigen values*)
Eval[[1]]  (*gives first eigen value*)


You may try this as well,

 {eval, evec} = Eigensystem[M];
eval
evec

• Again, the Eigenvectors returns the same error. Namely: Doing EVec = Eigenvectors[M]; returns the error Eigenvectors: Unable to find all eigenvectors. Could you please print the output so I know what you're comparing it. Bob Hanlon provided the solution for the eigenvalue but I still need to compute the eigenvectors. Jul 24, 2018 at 19:29
• Hi, Have tried with Mathematica version 11.0.1.0. It works there. But when I run with version 11.3.0.0, I get the same error as yours. Jul 24, 2018 at 20:29