My question is similar to Get rid of imaginary parametric eigenvalues of a Hermitian matrix

However I find it puzzling that the situations is so complicated, since in my case I discuss only a $3\times3$ matrix:

$$m=\begin{pmatrix} 0 & 0 & 1 \\ 0 & U & \eta \\ 1 & \eta & U \\ \end{pmatrix}$$

with real values for $U$ and $\eta$. Calling Eigenvalues[m] returns Root objects, and forcing Cubics -> True returns a readable result.

What annoys me is apparently Mathematica is unable get rid of the imaginary part by simplification.

My question is:

In my rather simple case is there a way to force Mathematica to get rid of the imaginary part? Even if the resulting expression wouldn't be as short?

Trying for instance e + Conjugate[e] where e is one of values, as well as putting it within FullSimplify didn't help.

  • $\begingroup$ Have you provided the proper assumptions about real valued parameters to (Full)Simplify? $\endgroup$
    – Lukas
    Commented Jul 3, 2017 at 8:51
  • $\begingroup$ Yes, and it didn't help me. Essentially I need only to assume $U$ is real, but I added also an assumption about the real nature of $\eta$. The problem lies within the square roots of the explicit expressions. I assumed that is results from the fact that MMA doesn't which is bigger $U$ or $\eta$, but also if the two are equal (I replaced one with the other) i can't get an explicitly real answer $\endgroup$
    – Yair M
    Commented Jul 3, 2017 at 8:53
  • $\begingroup$ A related question. $\endgroup$ Commented Nov 2, 2017 at 11:44

1 Answer 1


I don't think it's that easy. The problem is that if you express the Root objects as radicals, you get expression with cubic radicals, the results of which will be complex, so that you do need complex numbers outside of the roots to compensate for them.

It is a known feature of third degree polynomials that complex numbers are required to express some of the real solutions. Indeed, citing from the relevant wikipedia page (enphasis mine):

When a cubic equation has three real roots, the formulas expressing these roots in terms of radicals involve complex numbers. It has been proved that when none of the three real roots is rational—the casus irreducibilis— one cannot express the roots in terms of real radicals. Nevertheless, purely real expressions of the solutions may be obtained using hypergeometric functions,[23] or more elementarily in terms of trigonometric functions, specifically in terms of the cosine and arccosine functions.

This means that it's not Mathematica's lack of ability to simplify the expressions: there is no way to write those roots, using only elementary functions, without using complex numbers.

From the last sentence above, you may have hope rewriting the roots in terms of hypergeometric functions, but at that point you may prefer to use a simpler method.

Why do you need your solutions to not involve complex numbers?

  • 1
    $\begingroup$ Thanks. In fact the trigonometric solution suggested in the wiki page you referenced does quite nicely, and the solution is , much more compact the the one generated by eigenvalues. I guess it hasn't been implemented as it only helps is the very specific case of a cubic characteristic polynomial of a Hermitian matrix (where one would expect real eigenvalues). $\endgroup$
    – Yair M
    Commented Jul 3, 2017 at 11:34

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.