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

Close

#1854 Limit gets Maxima stuck

closed
nobody
5
2009-12-23
2009-12-14
Jaime E. Villate
No

The following limit makes Maxima 5.20 enter an endless loop:

limit( (log(1+x^2)-2+2*cos(x))/((sin(x))^2+2*sqrt(1-x^2)-2),x,0);

In version 5.19.0 the loop ended with a wrong result "minf". The correct result is 5/7.

Discussion

  • Dieter Kaiser
    Dieter Kaiser
    2009-12-14

    For the record:

    lhospital generates the following expression when trying to find the limit of the example of this bug report:

    (%o28) 3*x^2/(x^4*(87*sin(x)^2-87*cos(x)^2+48*sqrt(1-x^2))
    +x^8*(4*sin(x)^2-4*cos(x)^2)-3*sin(x)^2
    +x^2*(-28*sin(x)^2+28*cos(x)^2-44*sqrt(1-x^2))
    +x^6*(60*cos(x)^2-60*sin(x)^2)-56*x^7*cos(x)*sin(x)
    +152*x^5*cos(x)*sin(x)-110*x^3*cos(x)*sin(x)+14*x*cos(x)*sin(x)
    +3*cos(x)^2+4*sqrt(1-x^2))

    Then the routine limit is called again, but it returns never. We can do it directly with the above expression:

    (%i29) limit(expr,x,0);
    ^CMaxima encountered a Lisp error:

    EXT:GC: User break

    Automatically continuing.
    To enable the Lisp debugger set *debugger-hook* to nil.

    I have no idea what is the problem.

    Dieter Kaiser

     
  • (log(1+x^2)-2+2*cos(x))/((sin(x))^2+2*sqrt(1-x^2)-2)$
    taylor(%,x,0,5)$
    limit(%,x,0);
    5/7

     
  • updated comment:
    (%i1) (log(1+x^2)-2+2*cos(x))/((sin(x))^2+2*sqrt(1-x^2)-2)$
    define(f(x),%);
    (%o2) f(x):=(log(x^2+1)+2*cos(x)-2)/(sin(x)^2+2*sqrt(1-x^2)-2)
    (%i3) /* error */
    limit(f(x),x,0);
    (%o3) -inf
    (%i4) taylor(f(x),x,0,5);
    limit(%,x,0);
    (%o4) 5/7-(163*x^2)/245+(86603*x^4)/205800+...
    (%o5) 5/7
    (%i6) limit(f(1/n),n,inf);
    (%o6) 5/7
    (%i7) limit(f(sqrt(x)),x,0);
    (%o7) 5/7
    (%i12) wxplot2d([f(x)], [x,-1.5,1.5],
    [gnuplot_preamble, "set grid;"],
    [ylabel, "f(x)"]),wxplot_size=[300,300]$
    plot2d: expression evaluates to non-numeric value somewhere in plotting range.
    (%t12) << Graphics >>
    (%i9) build_info()$
    Maxima version: 5.19.2
    Maxima build date: 8:55 8/31/2009
    host type: i686-pc-mingw32
    lisp-implementation-type: GNU Common Lisp (GCL)
    lisp-implementation-version: GCL 2.6.8
    aleksas.domarkas@mif.vu.lt

     
  • Dan Gildea
    Dan Gildea
    2009-12-23

    • status: open --> closed
     
  • Dan Gildea
    Dan Gildea
    2009-12-23

    Fixed in limit.lisp rev 1.89 - though still very slow.

    (%i4) limit( (log(1+x^2)-2+2*cos(x))/((sin(x))^2+2*sqrt(1-x^2)-2),x,0);
    (%o4) 5/7
    (%i5) time(%);
    (%o5) [33.41]