I have committed some work on the Bessel functions to get the Bessel
functions more consistent for specific values and to implement the
handling of limits for Bessel functions for specific values.
Furthermore, the algorithm for the numerical evaluation for a complex
order of the Bessel functions and the mapping over lists has been
implemented.
Consistent handling of bessel_j(0,0) with different combinations of
values in float and bigfloat precision:
(%i1) bessel_j([0,0.0,0.0b0],[0,0.0,0.0b0]);
(%o1) [[1,1.0,1.0b0],[1.0,1.0,1.0b0],[1.0b0,1.0b0,1.0b0]]
bessel_j(v,0) for values in float or bigfloat precision:
(%i2) bessel_j([1/2, 1/2+%i, 2.5], [0, 0.0, 0.0b0]);
(%o2) [[0,0.0,0.0b0],[0,0.0,0.0b0],[0.0,0.0,0.0b0]]
Limits of the Bessel J function:
(%i3) limit(bessel_j(a,[inf, minf, -inf, -minf]));
(%o3) [0,0,0,0]
(%i4) limit(bessel_j([-1/2, -2.5],x),x,0);
(%o4) [infinity,infinity]
(%i5) limit(bessel_j(%i,x),x,0);
(%o5) und
Here are some limits for the Bessel Y function. When known the limits
from both sides are implemented:
(%i6) limit(bessel_y([0,1/2,-1/2,%i,%i+1],x),x,0);
(%o6) [minf,infinity,infinity,und,infinity]
(%i7) limit(bessel_y([-4,-2,0,2,4],x),x,0,plus);
(%o7) [minf,minf,minf,minf,minf]
(%i8) limit(bessel_y([-4,-2,0,2,4],x),x,0,minus);
(%o8) [minf,minf,minf,minf,minf]
(%i9) limit(bessel_y([-3,-1,1,3],x),x,0,plus);
(%o9) [inf,inf,minf,minf]
(%i10) limit(bessel_y([-3,-1,1,3],x),x,0,minus);
(%o10) [minf,minf,inf,inf]
Numerical evaluation for a complex order:
(%i15) bessel_j(1+%i,0.5);
(%o15) -.3170679634596975*%i-0.0934572645840017
(%i16) bessel_y(1+%i,0.5);
(%o16) -.4736740696661281*%i-.6643489087038037
(%i17) bessel_i(1+%i,0.5);
(%o17) -.3307637608360081*%i-.1065510556563671
(%i18) bessel_k(1+%i,0.5);
(%o18) .9667921800877555*%i+.3833517678165186
I would like to suggest to create a new test file rtest_bessel.lisp
which collects all test we have and some new tests for Bessel functions.
Most of the tests we have are in the file rtest14.mac. These tests could
be moved to the new file.
The implementation of the numerical evaluation in bigfloat precision and
a revision of the documentation might be the next work to do for the
Bessel functions.
Dieter Kaiser