#2487 integrate loops forever with simple expression


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


  • David Scherfgen

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

    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

    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

    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.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks