# Determining the nature of roots

Here comes a simple scenario

fz = 8 (z + 18 A z + (8 - 48 A) z^3 + 16 z^5);
sol = Solve[fz == 0, z]


As we can see there are five roots. The root (0,0) is always present while the nature of the other four roots strongly depends on the numerical value of A. I found that when $A < -1/18$ we have two real and two purely imaginary roots. For $A > -1/18$ there are three cases:

(i) When $A \in (-1/18, A_1)$ we have 4 purely imaginary roots,

(ii) When $A \in (A_1, A_2)$ we have 4 complex roots,

(iii) When $A > A_2$ we have 4 real roots.

My question: How can I determine the exact values of $A_1$ and $A_2$, whiche delimit the three intervals?

• This really is more of a math question than a Mathematica question. In any event, this paper might be of interest. – J. M. will be back soon Oct 27 '17 at 2:10

You can use Discriminant:

Solve[
Discriminant[8 (z+18 A z+(8-48 A) z^3+16 z^5), z] == 0,
A
]


{{A -> -(1/18)}, {A -> -(1/18)}, {A -> -(1/18)}, {A -> 0}, {A -> 0}, {A -> 5/ 6}, {A -> 5/6}}

• Quick and elegant! – Vaggelis_Z Oct 26 '17 at 16:28
fz = 8 (z + 18 A z + (8 - 48 A) z^3 + 16 z^5);


Solve for the real roots and the ConditionalExpression for the root will tell you when it is real

As Root objects

(solR = z /. Solve[fz == 0, z, Reals]) // Column


(solR // ToRadicals) // Column


EDIT: For there to be four complex roots then -1/8 < A < 5/6. Further, for all of these four complex roots to be purely imaginary then Re[z] == 0 and there must be 5 roots counting the root at z == 0.

Select[List @@ (Reduce[{fz == 0, Re[z] == 0, -1/8 < A < 5/6}, {A, z}] //
ToRadicals), Count[#, z == _, Infinity] == 5 &]


So the interval for four purely imaginary roots is {-1/8, 0}.

For example,

% /. A -> -0.05

(* {z == 0. + 0.0988028 I || z == 0. - 0.0988028 I || z == 0 ||
z == 0. + 0.800149 I || z == 0. - 0.800149 I} *)

• Hmmm, With this method we defined that $A_2 = 5/6$. But what about $A_1$? – Vaggelis_Z Oct 26 '17 at 16:16