On Sat, Jun 20, 2020 at 8:27 PM Audrius-St <[email protected]> wrote: > > Hello, > > A question regarding simplify() > > For example, simplify() followed by factor() successfully reduces the rather > long expression in (x, px, y, py) > > (24*px**3*x**4*sqrt(x**2 + y**2) - 72*px**3*x**2*y**2*sqrt(x**2 + y**2) + > 9*px**3*y**4*sqrt(x**2 + y**2) + > 180*px**2*py*x**3*y*sqrt(x**2 + y**2) - 135*px**2*py*x*y**3*sqrt(x**2 + y**2) > - 36*px*py**2*x**4*sqrt(x**2 + y**2) + > 243*px*py**2*x**2*y**2*sqrt(x**2 + y**2) - 36*px*py**2*y**4*sqrt(x**2 + y**2) > + 22*px*x**4 + 14*px*x**2*y**2 - 8*px*y**4 - > 45*py**3*x**3*y*sqrt(x**2 + y**2) + 60*py**3*x*y**3*sqrt(x**2 + y**2) + > 30*py*x**3*y + 30*py*x*y**3)/(x**2 + y**2)**5 > > to the desired simpler form > > (24*px**3*x**4 - 72*px**3*x**2*y**2 + 9*px**3*y**4 + 180*px**2*py*x**3*y - > 135*px**2*py*x*y**3 - 36*px*py**2*x**4 + > 243*px*py**2*x**2*y**2 - 36*px*py**2*y**4 + 22*px*x**2*sqrt(x**2 + y**2) - > 8*px*y**2*sqrt(x**2 + y**2) - 45*py**3*x**3*y + > 60*py**3*x*y**3 + 30*py*x*y*sqrt(x**2 + y**2))/(x**2 + y**2)**(9/2) > > However, simplify() is, understandably, time consuming. > Also, I would like to follow the the advice in introductory blurb in the > simplify() documentation regarding "robustness". > > My questions: > > 1. Is it possible to determine which algorithms simplify() chooses to use?
The only way is to look at the source code, or run it through a debugger. > > 2. I've reviewed the sympy documentation, but have not been able to identify > other simplification algorithms that would apply. > This is probably due to my lack of familiarity with this aspect of sympy. Any > suggestions would be appreciated. I got your desired result with factor(expand(collect(expr, sqrt(x**2 + y**2)), deep=False)). The collect() pulls the square roots into a single square root term, and the expand(deep=False) expands the top-level fraction so that the square root can combine with the denominator. The factor() then puts it into a single fraction form. Aaron Meurer > > > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/f8376c85-8e49-4570-9bd0-e1363bc87cc5o%40googlegroups.com. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6LyBvu8NXE%3D68BUcZ%2BXrQM-rQwV62mM%3Dcy9jmVuxNQ-UQ%40mail.gmail.com.
