## #2487 integrate loops forever with simple expression

open
nobody
7
2015-03-27
2012-11-08
No

if you calculate this:

integrate(x^(1/3)/(x^(2/3)+1), x, 0, 8);

Maxima will compute forever and never return.
However, the indefinite integral works:

integrate(x^(1/3)/(x^(2/3)+1), x);

gives you the antiderivative:

F(x) := (3*(x^(2/3)+1))/2-(3*log(x^(2/3)+1))/2;

Now the original definite integral can be computed as F(8) - F(0).
This is OK, because F(x) doesn't change sign or shows any other notable behavior between 0 and 8.
The question is: why doesn't Maxima do this? Instead it loops forever ...

## Discussion

• David Scherfgen - 2012-11-08
• priority: 5 --> 7

• Raymond Toy - 2012-11-08

Definite integration in maxima often does not compute the indefinite integral first, but in this case it does compute the indefinite integral. Maxima appears to be stuck computing the limits. Don't know why that should be.

• Dan Gildea - 2012-12-17

Simpler example:
limit( (-3/2)*log(1+x^(2/3)) , x, 0, plus),algebraic:true;

This goes into an infinite loop in BPROG.

What does BPROG do?

• Richard Fateman - 2015-03-27

limit(-log(1+x^(2/3)) , x, 0, plus),algebraic:true; also fails. replace 2/3 by 1/3 and it succeeds (gives 0).
bprog is part of the program that computes partial fractions.

There is no problem if algebraic:false .
Sorry, not a bug fix.
Rjf