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

open
nobody
5
2015-01-13
2004-07-15
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 - 2006-04-10
• labels: --> Lisp Core - Integration

• 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.