I guess the answer is "no," Solve
does not always find solutions in terms of radicals when they exist.
Example: The polynomial $x^5 + 20 x^3 + 20 x^2 + 30 x + 10$ has root expressible in terms of radicals (see Wikipedia):
poly = x^5 + 20 x^3 + 20 x^2 + 30 x + 10;
x1 = 2^(1/5) - 2^(2/5) + 2^(3/5) - 2^(4/5);
poly /. x -> x1 // Simplify
(* 0 *)
But Solve
returns only Root
objects:
Solve[poly == 0, x]
(*
{{x -> Root[10 + 30 #1 + 20 #1^2 + 20 #1^3 + #1^5 &, 1]},
...,
{x -> Root[10 + 30 #1 + 20 #1^2 + 20 #1^3 + #1^5 &, 5]}}
*)
Applying ToRadicals
does not convert Root
to radicals. However all roots may be expressed in terms of radicals, as may be seen by executing the following:
deflation = PolynomialReduce[poly, {x - x1}, x][[1, 1]]
Solve[deflation == 0, x]
(* long expression in radicals omitted *)
They may be compared to the original Root
objects with
(x /. Solve[poly == 0, x]) -
Join[{x1}, x /. Solve[deflation == 0, x]] // FullSimplify
(* {0, 0, 0, 0, 0} *)