#2513 wrong principle value integral

None
closed
nobody
None
5
2012-12-07
2012-12-04
No

integrate (and defint) give the wrong Cauchy
principal value result for a non-convergent
integral:


Maxima 5.28.0-2 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL)

(%i1) integrate(1/(x-1),x,0,2);
Principal Value
(%o1) %i*%pi

(%i2) assume(eps > 0, eps < 1);
(%o2) [eps > 0,eps < 1]

/ the limit of i1 plus i2 as eps --> 0 is zero /

(%i3) i1 : integrate(1/(x-1),x,0,1-eps);
(%o3) log(eps)

(%i4) i2 : integrate(1/(x-1),x,1+eps,2);
(%o4) -log(eps)

the limit of i1+i2 as eps -> 0 is zero, so correct
cauchy principle value is 0.

Another example:

(%i1) integrate(1/(x-1),x,0,2);
Principal Value
(%o1) %i*%pi


in which the correct Cauchy principal value is 0.

Another example of an incorrect principal value
integral:

(%i2) assume(eps > 0, eps < 1);
(%o2) [eps > 0,eps < 1]

(%i20) integrate(1/((x-1)(x-2)),x,0,3);
Principal Value
(%o20) %i
%pi-2*log(2)

/ which is wrong; as usual we let eps be a
small positive number, and calculate three
pieces:
/

(%i21) i1: integrate(1/((x-1)*(x-2)),x,0,1-eps);
(%o21) log(eps+1)-log(eps)-log(2)

(%i22) i2: integrate(1/((x-1)(x-2)),x,1+eps,2-eps);
Is 2
eps-1 positive, negative, or zero?

n;
(%o22) 2log(eps)-2log(1-eps)

(%i23) i3: integrate(1/((x-1)*(x-2)),x,2+eps,3);
(%o23) log(eps+1)-log(eps)-log(2)

(%i24) isum : i1+i2+i3;
(%o24) 2log(eps+1)-2log(1-eps)-2*log(2)

(%i25) limit(isum,eps,0,plus);
(%o25) -2*log(2)


So the correct result is -2*log(2).

Discussion

  • Dan Gildea

    Dan Gildea - 2012-12-07

    Fixed in limit.lisp.

    o $limit: when creating new variable for limit, make assumptions
      about new variable, not original variable.
    
     
  • Dan Gildea

    Dan Gildea - 2012-12-07
    • status: open --> closed
     

Log in to post a comment.