On 14 February 2016 at 15:17, Andrew Corrigan <andrew.corri...@gmail.com> wrote:
> I'm having trouble computing a definite integral involving the sqrt of a
> non-negative expression, as implemented below (computing the length of a
> quadratic line in 2D).  It seems to fail.  I've generally had success using
> sympy for integration, except for when a sqrt is present.
>
> If anyone has any advice on how to make this work, I would appreciate it
> tremendously.  Thanks in advance!
>
> from sympy import *
> x0,x1,x2,y0,y1,y2,xi = symbols('x0 x1 x2 y0 y1 y2 xi', real=True)
> f_squared = (-4*x0*xi + 3*x0 - 4*x1*xi + x1 + 8*x2*xi - 4*x2)**2 + (4*xi*y0
> + 4*xi*y1 - 8*xi*y2 - 3*y0 - y1 + 4*y2)**2
> f = sqrt(f_squared)
> integrate(f, (xi,0,1))

Distilling this down you want to compute the integral of the square
root of a quadratic. Sympy can do this in some simple cases:

>>> sqrt(1 + x**2).integrate(x)
     ________
    ╱  2
x⋅╲╱  x  + 1    asinh(x)
───────────── + ────────
      2            2

However it fails for slightly more complicated cases:

>>> sqrt(1 + x + x**2).integrate(x)
⌠
⎮    ____________
⎮   ╱  2
⎮ ╲╱  x  + x + 1  dx
⌡

This second form can always be reduced to the first by completing the
square and changing variables. It seems that sympy is currently unable
to do that though :(

--
Oscar

-- 
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 https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxS5ys%2Bkfmz1-ZM3ekadA-gwwQ9e%2BDSGd1P4oXAkcKFn%2BQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to