integrate of bessel_i sign error?



Am Samstag, den 22.10.2011, 11:53 -0700 schrieb Edwin Woollett:
> On Oct. 22, Dieter Kaiser wrote:
> >Yes, I think the integral of bessel_i(0,x) is wrong:
> >
> >(%i1) integrate(bessel_i(1,x),x);
> >(%o1) - (bessel_i(0, x))
> >
> >The correct answer should be bessel_i(0,x), see e. g.
> >http://functions.wolfram.com/Bessel-TypeFunctions/BesselI/21/01/01/
> >
> >I will correct it.
> 
> I checked with Wolfram Alpha:
> 
> A review of the integrate of bessel_i bug:
> 
> (%i4) f(bessel_i(1,%i*1.5));
> (%o4) 0.5579365079101*%i
> (%i5) f(integrate(bessel_i(1,%i*y),y,1,2));
> (%o5) -0.54130690741673*%i
> 
> integrate appears to produce the wrong sign
> for this integral??
> 
> Here is Wolfram Alpha answer:
> NIntegrate[BesselI[1,I*y],{y,1,2}]
> 
>  ----> %i*(bessel_j(0,1) - bessel_j(0,2))
> 
>   ------->  0.541307 
> 
> Check   using maxima:
>   (%i2) f(%i*(bessel_j(0,1) - bessel_j(0,2)));
> (%o2) 0.54130690741673*%i

With a corrected formula for the integral of bessel_i(1,x) in Maxima I
get:

(%i2) integrate(bessel_i(1,%i*x),x,1,2);
(%o2) %i*bessel_i(0,%i)-%i*bessel_i(0,2*%i)
(%i3) %,numer;
(%o3) .5413069074167309*%i

The result is equivalent to

(%i4) %i*(bessel_j(0,1) - bessel_j(0,2)), numer;
(%o5) .5413069074167309*%i

This is valid, because bessel_i(n,%i*x) = %i^n*bessel_j(n,x) for n an
integer. Perhaps we should implement the this identity.

Dieter Kaiser