The appropriate function for symbolic representation of complex functions and numbers is ComplexExpand
, e.g.
ComplexExpand @ Table[(-1)^(k/3), {k, 3}]
{1/2 + (I Sqrt[3])/2, -(1/2) + (I Sqrt[3])/2, -1}
For this specific task ExpToTrig
yields the expected result, but for more general cases I recommend using ComplexExpand
instead of ExpToTrig
, for F
(defined in the question) it yields the same :
ComplexExpand @ Eigenvalues @ F == ExpToTrig @ Eigenvalues @ F
True
Consider for example this matrix :
m = Array[GCD, {3, 3}];
it yields eigenvalues of m
in terms of Root
objects, to get the result in terms of radicals one could add this option Cubics->True
to Eigenvalues
, Eigensystem
etc. (this answer would be helpful as well).
Let's compare how ExpToTrig
and ComplexExpand
deal with Eigenvalues
in this case :
ExpToTrig @ Eigenvalues[ m, Cubics -> True] // TraditionalForm

Therefore we can't even be sure that the eigenvalues are real numbers until we don't evaluate e.g. :
# ∈ Reals & /@ Eigenvalues[ m]
{True, True, True}
we can see that ExpToTrig
is not really helpful here, unlike ComplexExpand
yielding symbolic eigenvalues, manifestly real:
ComplexExpand @ Eigenvalues[ m, Cubics -> True] // TraditionalForm

N@Eigenvalues@F
. $\endgroup$F-Transpose[F]
you will find out that your matrix is not symmetric so its eigenvalues need not be real. And indeed they are not. $\endgroup$N @ Eigenvalues @ F
is the same asN[ Eigenvalues[ F ] ]
and the same asF // Eigenvalues // N
. So these are the three ways of using functions on some arguments. $\endgroup$