On Wed, May 20, 2009 at 11:58 AM, Robert Kern <robert.k...@gmail.com> wrote:
>
> On Wed, May 20, 2009 at 13:55, Ondrej Certik <ond...@certik.cz> wrote:
>>
>> Hi Pablo!
>>
>> On Wed, May 20, 2009 at 4:40 AM, Pablo W. <pablo.win...@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> I have been using sympy a lot recently (economical modelling) and
>>> (while it's a great software) I found a strange behavior when doing
>>> substitution : it is not respecting operators priority. I think it's
>>> because it works sequentially with all its arguments, but it leads to
>>> somewhat surprising results.
>>>
>>> In the following session, I was expecting to get the square root of 4,
>>> i.e. 2, but instead the program is taking to fractional exponents of a
>>> negative number which has a non unique definition.
>>>
>>> In [1]: from sympy import *
>>>
>>> In [2]: var('a b')
>>> Out[2]: (a, b)
>>>
>>> In [3]: eq = (a/b)**0.5
>>>
>>> In [4]: eq.subs({a:-2,b:-0.5})
>>> Out[4]: -2.00000000000000
>>>
>>> As a workaround, I found myself lambdifying expressions, but I know
>>> it's a bad workaround working only when substituion is made with
>>> respect to all arguments. What do you suggest ?
>>
>> Indeed, that's a bug that has to be fixed:
>>
>> http://code.google.com/p/sympy/issues/detail?id=1427
>>
>> thanks for discovering it and reporting it.
>>
>> The sqrt() (or rational power) simplifications has to be fixed in
>> sympy, as pointed out by Sebastian and Aaron. I didn't realize there
>> is such a big problem in there. One way to fix it is check if "a" and
>> "b" is positive, only then split sqrt(a/b) to sqrt(a)/sqrt(b).
>
> Hmm, I thought I fixed that already:
>
> http://code.google.com/p/sympy/issues/detail?id=1263

I think this is a different issue. I just wrote a preliminary fix is here:

http://code.google.com/p/sympy/issues/detail?id=1434


Ondrej

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com
To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to