I agree. On Friday, February 27, 2015 at 4:27:42 AM UTC+2, Aaron Meurer wrote: > > Ah, apparently the core is looking at assumptions and automatically > simplifies based on them. I don't think that any automatic > simplification should happen based on assumptions. > > Aaron Meurer > > On Thu, Feb 26, 2015 at 6:20 PM, Paul Royik <[email protected] > <javascript:>> wrote: > > Thank you. > > Got it! > > > > On Friday, February 27, 2015 at 1:52:32 AM UTC+2, Ondřej Čertík wrote: > >> > >> On Thu, Feb 26, 2015 at 4:05 PM, Paul Royik <[email protected]> > wrote: > >> > It doesn't work if x is positive. > >> > >> Indeed, looks like a bug. As a workaround, you can always substitute > >> general "x" for the positive "x", then it will work: > >> > >> In [4]: x = Symbol("x", positive=True) > >> > >> In [5]: powsimp(sqrt(x)*sqrt(x-4), force=True) > >> Out[5]: > >> ___ _______ > >> ╲╱ x ⋅╲╱ x - 4 > >> > >> In [6]: powsimp((sqrt(x)*sqrt(x-4)).subs(x, Symbol("x"), force=True) > >> ...: > >> KeyboardInterrupt > >> > >> In [6]: powsimp((sqrt(x)*sqrt(x-4)).subs(x, Symbol("x")), force=True) > >> Out[6]: > >> ___________ > >> ╲╱ x⋅(x - 4) > >> > >> > >> > In fact, when x is positive, 1/sqrt(x*(x-4)) automatically converted > to > >> > 1/sqrt(x)/sqrt(x-4) > >> > >> The same trick: > >> > >> In [7]: powsimp(1/(sqrt(x)*sqrt(x-4)).subs(x, Symbol("x")), force=True) > >> Out[7]: > >> 1 > >> ───────────── > >> ___________ > >> ╲╱ x⋅(x - 4) > >> > >> > >> Ondrej > >> > >> > > >> > On Thursday, February 26, 2015 at 11:23:31 PM UTC+2, Aaron Meurer > wrote: > >> >> > >> >> See http://docs.sympy.org/latest/tutorial/simplification.html#powers. > > >> >> powsimp(expr, force=True) will do what you want. > >> >> > >> >> Aaron Meurer > >> >> > >> >> On Thu, Feb 26, 2015 at 12:18 PM, Paul Royik <[email protected]> > >> >> wrote: > >> >> > I need something more general > >> >> > > >> >> > On Thursday, February 26, 2015 at 7:50:15 PM UTC+2, John Peterson > >> >> > wrote: > >> >> >> > >> >> >> > >> >> >> > >> >> >> On Thursday, February 26, 2015 at 8:32:11 AM UTC-7, Paul Royik > >> >> >> wrote: > >> >> >>> > >> >> >>> What is the best way to convert sqrt(x)*sqrt(x-4) to > sqrt(x^2-4x) > >> >> >>> or > >> >> >>> (x^2+5x+4)/sqrt(x)/sqrt(x-4) to (x^2+5x+4)/sqrt(x^2-4x) > >> >> >>> > >> >> >>> I tried replace, but it doesn't work in second case. > >> >> >> > >> >> >> > >> >> >> Be careful, they aren't equal for all values of x, but subs() > will > >> >> >> do > >> >> >> this > >> >> >> if you are willing to be explicit... > >> >> >> > >> >> >>> #!/usr/bin/env python > >> >> >>> from sympy import * > >> >> >>> print sympify('(x**2 + 5*x + 4) / sqrt(x) / > >> >> >>> sqrt(x-4)').subs(sympify('sqrt(x)*sqrt(x-4)'), > sympify('sqrt(x**2 - > >> >> >>> 4*x)')) > >> >> >> > >> >> >> > >> >> >> Output: > >> >> >> > >> >> >>> (x**2 + 5*x + 4)/sqrt(x**2 - 4*x) > >> >> >> > >> >> >> > >> >> > > >> >> > -- > >> >> > 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 http://groups.google.com/group/sympy. > >> >> > To view this discussion on the web visit > >> >> > > >> >> > > >> >> > > https://groups.google.com/d/msgid/sympy/a20128fc-d1bd-479e-8845-a581cfc6b7d4%40googlegroups.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 http://groups.google.com/group/sympy. > >> > To view this discussion on the web visit > >> > > >> > > https://groups.google.com/d/msgid/sympy/dc099057-8529-4f12-ae42-ed7f9e89b98e%40googlegroups.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] <javascript:>. > > To post to this group, send email to [email protected] > <javascript:>. > > Visit this group at http://groups.google.com/group/sympy. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/sympy/b9754512-debb-4099-bfab-3724b3be1568%40googlegroups.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 http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/f4a0a064-3ef0-43c7-a4fb-728323538d57%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
