Further Improvements of bessel_j



I have implemented the improvemtents suggested for bessel_j for the other Bessel
functions too.

1. 
Complete handling of the different cases of zero argument.
The return values includes the constants INF, MINF and INFINITY. Is that useful
for Maxima?

With this changes you get e.g.

limit(bessel_y(2,x),x,0) ---> INFINITY
limit(bessel_k(0,x),x,0) ---> INF

2. 
Handle the special case that order is a negative integer for the Bessel
functions bessel_j, bessel_y and bessel_i.
The numerical result for this case are now more accurate and are equal to the
results with positive order or differ only by sign.

I have added a diff with the changes to the CVS file bessel.lisp (1.54). The
testsuite runs without error.

There is one open question for me. For negative arg we use the analytic
continuation formulars. The exception is bessel_i. For this case we use for
negative arg the definition and calculate the values with the help of the
bessel_j function. So the algorithm is more simple in this case, but it may be
better to implement the continuation formula too.

D. Kaiser

-----Urspr?ngliche Nachricht-----
Von: maxima-bounces at math.utexas.edu [mailto:maxima-bounces at math.utexas.edu] Im
Auftrag von Dieter Kaiser
Gesendet: Samstag, 19. April 2008 00:53
An: maxima at math.utexas.edu
Betreff: [Maxima] Further Improvements of bessel_j

I would like to suggest two further improvements of the bessel_j function. 

I have added a diff between the file bessel.lisp (1.54) and the changes in
bessel-changed.lisp I have done today. The testsuite runs without problems.

1. 

For negative integer order we don't need the Hankel functions. I haven't seen
this this special case the first time I worked on this routine. We get more
accurate results using the formula J[-n](z)=(-1)^n*J[n](z). 
I have added this special case in the numerical calculation. Now the numerical
results are identically for a even negative or positive integer and differ only
by sign for an odd negative or positive integer.

2.

Now we calculate the Bessel functions for negative argument and order and we
have to look more carefully to the different special cases for zero argument. As
a reference I used the specialized values from functions.wolfram.com. I added
the special case for a complex order too. Is this useful? Is it correct to
return the value '$infinity in the case of a complex infinity? Or should we
generate a domain-error?

Further sligtly improvements can be done for the other Bessel functions too. I'm
working on this task.

A next step will be the implementation of Bessel functions with complex order
and the improvement of the scaled Bessel functions.

D. Kaiser

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diff_bessel.txt
Url: http://www.math.utexas.edu/pipermail/maxima/attachments/20080420/e67922e3/attachment.txt