# Is there a package to find ALL exact roots of a polynomial, if they exist?

There are polynomials with roots not expressible with radicals but expressible as trigonometric or other functions, for which Solve[] only returns Root[]-form punt results. Example:

a = 1 + 6*x - 12*x^2 - 32*x^3 + 16*x^4 + 32*x^5
b = Expand[(y^5)*a/.x->(y+1/y)/2


Solve[] fails to find roots of a but does find roots of b, so if you happen to know to do that substitution, you can show that $x=\cos(2n\pi/11)$ where $n={1,2,3,4,5}$ are roots of a.

This issue and some related Galois Theory are discussed HERE and and HERE, and some piecemeal methods to find very specific types of exactly-expressible solutions are offered.

Does anyone have a package or Module that extends Solve[] to rigorously search for all those exact solutions that can be expressed exactly but not with radicals? I'm attempting to do this myself, but my Galois Theory game is weak so I'm not sure how to cover all bases.

I'm a little surprised Wolfram hasn't already done this. Or have they?

• ToRadicals does exist, but according to the documentation, "there are some cases in which expressions involving radicals can in principle be given, but ToRadicals cannot find them." (I'm also not sure that $\cos(2 n \pi/11)$ can be expressed in terms of radicals.) May 3, 2016 at 19:33
• I'm not aware of any such package. At a minimum it would need to determine when a polynomial has a solvable Galois group. That's not a trivial undertaking. May 3, 2016 at 19:41
• Why do you consider Root objects inferior? They are better behaved than radicals, and can express all roots of any polynomial with rational coefficients exactly. Embrace them. May 3, 2016 at 22:30
• There's no particular reason to call Cos[something] more informative in general. You can't count on your special forms to exist, so unless you like codes that sometimes fail, they're not effective. Even when special forms exist, they are usually rather complicated. Numerical instability and branch cuts can bite you. But algebraic Root objects are well behaved, and with a little "pretty please" through functions like RootReduce can be manipulated as the perfectly well-defined numbers they are. May 3, 2016 at 23:03
• @JerryGuern Here's a post about expressing Root in terms of trig. May 4, 2016 at 2:19

I think in general no one know's how to express roots of polynomials in terms of radicals, or even determine when it's possible.

Quintics has been solved and there's a Mathematica package to solve them. Radicals.nb

SolveQuintic[x^5 + 20 x + 32 == 0, x]


For sextics I believe the most that is known is how to determine which equations can be expressed in terms of radicals. See here.

Abstract:

Criteria are given for determining whether an irreducible sextic equation with rational coefficients is algebraically solvable over the complex number field $\mathbb{C}$.

As for higher degrees, I don't know of anything but a Google search on solvable septics did not prove very fruitful...

One alternative is to try to express roots in terms of HypergeometricPFQ. See this post for some information on that.

• The Abel-Ruffini theorem proved that there is no closed form solution for polynomials of degree >5. Feb 9, 2017 at 14:40
• @ijustlovemath this is only true for polynomials who's Galois group is not solvable. Some quintics can be solved in radicals, for example x^5-1 or x^5 + 20 x + 32, which is solved in my answer above. Feb 9, 2017 at 14:53
• Yes, but the question was regarding general solutions, for which there are none Feb 9, 2017 at 14:54
• The question reads "Is there a package to find ALL exact roots of a polynomial, if they exist?" Feb 9, 2017 at 15:25