Oh I guess it's easy: In [32]: print(collect(a.subs(x, x - y).expand(), x)) x**5 + x**4*(-5*y - 5) + x**3*(10*y**2 + 20*y + 30) + x**2*(-10*y**3 - 30*y**2 - 90*y - 50) + x*(5*y**4 + 20*y**3 + 90*y**2 + 100*y + 55) - y**5 - 5*y**4 - 30*y**3 - 50*y**2 - 55*y - 21
So in this case, we just need to shift by y=-1. Aaron Meurer On Mon, Jan 27, 2014 at 6:57 PM, Aaron Meurer <asmeu...@gmail.com> wrote: > Ah, apparently the paper > (http://www.ams.org/journals/mcom/1991-57-195/S0025-5718-1991-1079014-X/S0025-5718-1991-1079014-X.pdf > ("Solving solvable quintics", D. S. Dummit)), glosses over this, > because of this fact. What is the algorithm to eliminate the fourth > order term? > > How can we simplify the roots. Will the more advanced sqrtdenest > algorithms help (https://code.google.com/p/sympy/issues/detail?id=93)? > > Aaron Meurer > > On Mon, Jan 27, 2014 at 10:59 AM, mario <mario.pern...@gmail.com> wrote: >> >> One can always eliminate the fourth order by a translation, in this case by >> one; one obtains then >> ``x**5 + 20*x**3 + 20*x**2 + 30*x + 10``, which is solved by SymPy; it would >> be useful to automatize this step. >> >> However the real solution is not simplified, it has ``count_ops = 267``, vs >> ``count_ops=11`` for the simplified >> real solution ``S('2^(1/5) - 4^(1/5) + 8^(1/5) - 16^(1/5)')`` >> >> >> >> >> >> On Monday, January 27, 2014 11:42:03 AM UTC+1, Harsh Gupta wrote: >>> >>> > Apparently only for some of them: it does not solve >>> > ``x**5 - 5*x**4 + 30*x**3 - 50*x**2 + 55*x - 21 = 0`` >>> >>> Thanks. Yes, not all of them, Only equations of form x**5 + p*x**3 + >>> q*x**2 + r*x + s, no fourth order terms are solvable. >> >> >>> >>> The implementation was added in >>> https://github.com/sympy/sympy/pull/1746. So, there is scope of >>> improvement. I wonder >>> how many of other methods of solving solvable quintics can be >>> implemented without a knowledge of abstract algebra. >>> Aaron Meurer can you guide me on this? >>> >>> On 27 January 2014 13:28, mario <mario....@gmail.com> wrote: >>> > You wrote "Methods to solve solvable quintics are implemented in sympy." >>> > >>> > Apparently only for some of them: it does not solve >>> > ``x**5 - 5*x**4 + 30*x**3 - 50*x**2 + 55*x - 21 = 0`` >>> > >>> > taken from http://en.wikipedia.org/wiki/Quintic_function >>> > >>> > >>> > >>> > >>> > On Monday, January 27, 2014 3:11:37 AM UTC+1, Harsh Gupta wrote: >>> >> >>> >> I'm reading and understanding the solvers code. I have started >>> >> documenting it here https://github.com/sympy/sympy/wiki/solvers. >>> >> >>> >> @Matthew >>> >> For implementing and dealing with infinite sets I've found a draft by >>> >> Richard Fateman >>> >> http://www.cs.berkeley.edu/~fateman/papers/sets.pdf >>> >> >>> >> I have skimmed through it and it appears all of the techniques >>> >> described there are implementable in sympy. >>> >> >>> >> On 25 January 2014 06:28, Aaron Meurer <asme...@gmail.com> wrote: >>> >> > On Fri, Jan 24, 2014 at 2:02 PM, Harsh Gupta <gupta....@gmail.com> >>> >> > wrote: >>> >> >>>> Great to hear it. As noted on the ideas page, this one will >>> >> >>>> require a >>> >> >>>> good deal of thought to be done in the application, so let's start >>> >> >>>> discussing. >>> >> >> >>> >> >> Thanks a lot, and sorry for the late reply >>> >> >> >>> >> >>>> Another thing I'd like to know is if there's literature on solving >>> >> >>>> algorithms, particularly solving transcendental equations, and >>> >> >>>> very >>> >> >>>> particularly on if there are any complete algorithms out there for >>> >> >>>> some class of equations. >>> >> >> >>> >> >> I found a old paper called "SOLVING SYMBOLIC EQUATIONS WITH PRESS" >>> >> >> >>> >> >> >>> >> >> http://www.research.ed.ac.uk/portal/files/413486/Solving_Symbolic_Equations_%20with_PRESS.pdf >>> >> >> >>> >> >>>> Do we know how other computer algebra systems solve this problem? >>> >> >>>> How robust are the algorithms behind wolframalpha.com ? >>> >> >> >>> >> >> I have found another paper "A Review of Symbolic Solvers" >>> >> >> >>> >> >> >>> >> >> http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.9444&rep=rep1&type=pdf >>> >> >> and according to it Mathematica performs performs pretty bad. >>> >> > >>> >> > That was in 1996. >>> >> > >>> >> > Nonetheless this, along with the Wester paper, should provide some >>> >> > good test cases so we can see what can be done that we can't do. >>> >> > >>> >> > Aaron Meurer >>> >> > >>> >> >> >>> >> >>>> An audit of the current solve code might be in order. In >>> >> >>>> particular, >>> >> >>>> I'd like to know: >>> >> >>>> >>> >> >>>> 1. what are the different "solvers"? (if we split solve into >>> >> >>>> "hints" >>> >> >>>> like with dsolve, these would be the different hints), and >>> >> >>>> 2. which are algorithmically complete (i.e., we know they will >>> >> >>>> give >>> >> >>>> all solutions, or they can detect somehow if they may have missed >>> >> >>>> one)? >>> >> >>>> >>> >> >>>> And this may raise auxiliary questions, like: >>> >> >>>> >>> >> >>>> - to what degree can the different solvers be separated? For >>> >> >>>> instance, >>> >> >>>> one solver (I'm not sure if it's actually implemented) would use >>> >> >>>> decompose() to solve recursively. How would such "recursive >>> >> >>>> solvers" >>> >> >>>> look in a hints system? >>> >> >>>> >>> >> >>>> - of those that are heuristic (not algorithmically complete), can >>> >> >>>> they >>> >> >>>> be improved? >>> >> >> >>> >> >> I'm going through the solvers code and will answer these questions >>> >> >> soon. >>> >> >> >>> >> >> -- >>> >> >> 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 sympy+un...@googlegroups.com. >>> >> >> To post to this group, send email to sy...@googlegroups.com. >>> >> >> Visit this group at http://groups.google.com/group/sympy. >>> >> >> For more options, visit https://groups.google.com/groups/opt_out. >>> >> > >>> >> > -- >>> >> > 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 sympy+un...@googlegroups.com. >>> >> > To post to this group, send email to sy...@googlegroups.com. >>> >> > Visit this group at http://groups.google.com/group/sympy. >>> >> > For more options, visit https://groups.google.com/groups/opt_out. >>> >> >>> >> >>> >> >>> >> -- >>> >> Harsh >>> > >>> > -- >>> > 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 sympy+un...@googlegroups.com. >>> > To post to this group, send email to sy...@googlegroups.com. >>> > Visit this group at http://groups.google.com/group/sympy. >>> > For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >>> -- >>> Harsh >> >> -- >> 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 sympy+unsubscr...@googlegroups.com. >> To post to this group, send email to sympy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sympy. >> For more options, visit https://groups.google.com/groups/opt_out. -- 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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.