Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#586 integrate(x^n,x,a,b) wrong for a<0<b

open
nobody
5
2015-01-13
2004-07-15
Stavros Macrakis
No

integrate(x^n,x,a,b);
Is n positive, negative, or zero? neg;
Is n + 1 zero or nonzero? n;
Is b - a positive, negative, or zero? pos;
=> b^(n+1)/(n+1)-a^(n+1)/(n+1) (NO!)

This is incorrect for (e.g.) n=-2, a<0<b:

integrate(x^-2,x,a,1);
Is a - 1 positive, negative, or zero? neg;
=> Integral is divergent (OK)

Same thing, but a more dramatic demo:

assume(equal(a,-1),equal(b,1),equal(n,-2));
integrate(x^n,x,a,b) =>
b^(n+1)/(n+1)-a^(n+1)/(n+1) (NO!)

vs.

integrate(x^-2,x,-1,1) => Divergent (OK)

Also

assume(equal(n,-2));
integrate(x^n,x,-1,1); => (-1)^n/(n+1)+1/(n+1) (NO!)

Discussion

  • Robert Dodier
    Robert Dodier
    2006-04-10

    • labels: --> Lisp Core - Integration
     
  • Raymond Toy
    Raymond Toy
    2006-04-10

    Logged In: YES
    user_id=28849

    These errors occur because maxima is trying to see if there
    are any poles on the real axis. It does so by calling
    poles-in-interval, which calls real-roots on the denominator
    of the integrand, which is x^(-n), since n is negative. But
    solve thinks this equation has no real roots.

    This is why x^(-2) works. solve wants the roots of x^2,
    which it can figure out, and thus poles-in-interval finds
    poles in the interval.