4
$\begingroup$

Does Solve[] find ALL the exact roots of rational polynomials?

I've done a bunch of tests where I created an expression with some analytic roots, and Solve[] always found them all. But is the failure of Solve[] to find any analytic roots conclusive proof that none exist?

expr = (12 x - 29)*(31 x + 113)*(501 x - Prime[28])*(x^4 - 7 x^2 + 1001 x - 20)*(1001*x^5 + 47*x^4 + x^3 + 91*x^2 + 144 x - 1001) //Expand;
Solve[expr == 0, x]
$\endgroup$
  • 1
    $\begingroup$ Maybe I'm misreading the question, but polynomials of degree > 1 always have a root (FTA). $\endgroup$ – Michael E2 May 2 '16 at 23:05
  • $\begingroup$ @MichaelE2 I'm asking specifically about analytically expressible roots. All n roots of an n-th order polynomial are analytically expressible if n<5, but if n>=5, there might not be any analytical solutions. Solve[] leaves those solutions in Root[] form. $\endgroup$ – Jerry Guern May 2 '16 at 23:32
  • $\begingroup$ @MichaelE2 For example, if you run Solve[Sum[x^n, {n, 0, 4}] + 1 == 0, x], you'll get analytical expressions for each of the four solutions, which are all irrational. If you change the 4 to a 5, you'll get none. $\endgroup$ – Jerry Guern May 2 '16 at 23:38
  • $\begingroup$ By "analytically expressible", I take it you mean expressible "in terms of (only) radicals"? (That is, not just any exact analytic or symbolic expression.) $\endgroup$ – Michael E2 May 2 '16 at 23:39
  • $\begingroup$ @MichaelE2 I don't believe polynomials have any exact solutions other than rational solutions and solutions in terms of radicals. $\endgroup$ – Jerry Guern May 2 '16 at 23:42
6
$\begingroup$

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}  *)
$\endgroup$
  • $\begingroup$ Thank you, even though I was hoping the answer would be yes. :-( $\endgroup$ – Jerry Guern May 3 '16 at 2:14
  • 2
    $\begingroup$ In fact it's not trivial determining if a polynomial's root can even be expressed in terms of radicals. One needs to find its Galois group. See here. $\endgroup$ – Chip Hurst May 3 '16 at 2:31
  • 2
    $\begingroup$ Here's a package to solve quintics in radicals (when possible). $\endgroup$ – Chip Hurst May 3 '16 at 2:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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