On Wed, Jan 20, 2016 at 10:30 AM, Oscar Benjamin <[email protected] > wrote:
> On 20 January 2016 at 15:11, Aaron Meurer <[email protected]> wrote: > > SymPy has algorithms to find roots of quintics in radicals (when they > > exist). I don't recall if the algorithms work for symbolic inputs. > > > > One can take a general quintic (x**5 + a*x**4 + b*x**3 + c*x**2 + d*x + > e) > > and shift it by y (replace x with x - y). Then expand and collect terms > in > > x. The coefficient of x**3 is a quadratic in y. Hence, one can solve a > > quadratic in y in radicals terms of a and b, and shift the quintic by > that. > > One then has a new quintic, with no cubic term, with the same roots > shifted > > by some term which is expressible in radicals. Hence, the general quintic > > with no cubic term is not solvable in radicals, as a solution would give > a > > solution to the general quintic (shift it back by the radical expression > > above, which would keep it in radicals). > > The above argument extends to making any of the coefficients zero with > the exception of the constant coefficient e. If we could shift to x - > t so that we have a new polynomial with zero constant term then x = t > would be a root of the original polynomial which would imply being > able to find one root of (and hence all roots of) any quintic. > Otherwise though we can shift to make any of a, b, c or d zero. > > However the OP asked about a less general case where the cubic and > quadratic coefficients are both zero. It's not possible in general to > shift a quintic so that both b and c are zero. > Oh I didn't notice that :) > > Here is some SymPy code: > > > > a, b, c, d, e, x, y = symbols('a b c d e x y') > > q = x**5 + a*x**4 + b*x**3 + c*x**2 + d*x + e > > print(collect(q.subs(x, x - y).expand(), x, evaluate=False)[x**3]) > > t = solve(collect(q.subs(x, x - y).expand(), x, evaluate=False)[x**3], > y)[0] > > print(t) > > print(collect(q.subs(x, x - t).expand(), x, evaluate=False).get(x**3)) > > To make b and c zero we'd need to solve these two equations > simultaneously for one variable y: > > In [5]: print(collect(q.subs(x, x - y).expand(), x, evaluate=False)[x**2]) > 6*a*y**2 - 3*b*y + c - 10*y**3 > > In [6]: print(collect(q.subs(x, x - y).expand(), x, evaluate=False)[x**3]) > -4*a*y + b + 10*y**2 > > Clearly that will only work for some lucky values of a, b, and c. (One > that jumps out is the trivial solution that we could have y=0 if b and > c are both 0.) > > So this is not a general quintic but neither sympy nor Wolfram can > solve it. I was wondering if it is possible to specifically verify > that it has an unsolvable Galois group but perhaps not. > SymPy is not able to do that (I checked and the roots_quintic function in the polys only works for rational coefficients). If WolframAlpha can compute Galois groups I wasn't able to get it to work. Probably GAP can do it, if someone wants to check that. Aaron Meurer > > -- > Oscar > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAHVvXxSFaF4BPbg0uhPMT2278NmRrmKj%2BUJsw4m04vOPTzvrQQ%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6K3hzRQp3qNbVj5RkbWfZ03YrzRid1ck18WNz5JzpvW0A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
