At https://github.com/sympy/sympy/pull/2128 the algorithms are
implemented to simplify this, namely

In [1]: a = integrate(sqrt(1 + x**3)/x)

In [2]: minpoly(a.diff(x) - sqrt(1 + x**3)/x)
Out[2]: x

This means that the input satisfies the polynomial x=0, i.e., it is
identically 0.

This hasn't been integrated with simplify() yet.

Aaron Meurer


On Wed, Sep 11, 2013 at 11:34 AM, Ondřej Čertík <[email protected]> wrote:
> On Wed, Sep 11, 2013 at 11:23 AM, Aaron Meurer <[email protected]> wrote:
>> On Wed, Sep 11, 2013 at 10:37 AM, Ondřej Čertík <[email protected]> 
>> wrote:
>>> Hi Peter!
>>>
>>> On Wed, Sep 11, 2013 at 7:19 AM, Peter Luschny <[email protected]> 
>>> wrote:
>>>> Consider
>>>>
>>>> (F1) sqrt(1+x^3)/x
>>>> (F2) sqrt(1+1/x^3)*sqrt(x)
>>>>
>>>> According to Mathematica's online integrator
>>>>
>>>> (I1) integral F1 dx = (2/3)*(sqrt(x^3+1)-arctanh(sqrt(x^3+1)))
>>>> (I2) integral F2 dx =
>>>> (2*sqrt(1/x^3+1)*x^(3/2)*(sqrt(x^3+1)-arctanh(sqrt(x^3+1))))/(3*sqrt(x^3+1))
>>>>
>>>> SymPy Live computes (I1) as
>>>> (S) 2*x**(3/2)/(3*sqrt(1 + x**(-3))) - 2*asinh(x**(-3/2))/3 +
>>>> 2/(3*x**(3/2)*sqrt(1 + x**(-3)))
>>>>
>>>> SymPy Live timed out with (I2). SymPy 0.7.3 computes (I2) as
>>>> (S) 2*x**(3/2)/(3*sqrt(1 + x**(-3))) - 2*asinh(x**(-3/2))/3 +
>>>> 2/(3*x**(3/2)*sqrt(1 + x**(-3)))
>>>>
>>>> The derivative of (S) is (F2) and not (F1). So I am inclined to
>>>> say that SymPy computes (I1) not correctly.
>>>
>>>
>>> Thanks for reporting this. Here is what I tried:
>>>
>>> In [1]: x = Symbol("x", real=True)
>>>
>>> In [2]: f = integrate(sqrt(1+x**3)/x, x)
>>>
>>> In [3]: e = f.diff(x).simplify().expand().factor().cancel()
>>>
>>> In [4]: print e
>>> (x**3 + 1)/(x**(5/2)*sqrt(1 + x**(-3)))
>>>
>>> It's kind of a pain to simplify "f", but at the end, the expression [4] is 
>>> equal
>>> to sqrt(1+x^3)/x, as you can check by hand, at least for x > 0.
>>>
>>> How did you make it equal to (F2)?
>>
>> F1 and F2 are equal for x > 0.
>
> Ah right! I see, so the problem is with proper handling of sqrt() for
> general (complex)
> symbols inside integrate.
>
> As far as I know, sympy should otherwise by handling sqrt() properly.
>
> Ondrej
>
> --
> 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.
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to