[SciPy-user] [SOLVED] high precision bessel’s functions

Fredrik Johansson fredrik.johansson at gmail.com
Mon Dec 8 16:05:55 EST 2008


Leonid Chaichenets wrote:

> Does anyone know an implementation of hankel2 with more precision? Can maybe
> the scaled bessel functions (scipy.special.hankel2e) be used for that
> (unfortunatly I couldnt find enough documentation on them)?

Robert Kern wrote:

> mpmath has Bessel functions. You should be able to construct the
> Hankel functions from those.

Hi, I'm the main author of mpmath and though this problem already has
been solved (thanks Robert), I thought I'd drop a comment.

Unfortunately mpmath only had the Bessel J function, and though you
can compute the other Bessel functions from it, it requires some
trickery when the order is an integer (though that shouldn't be a
problem in this case since the order was explicitly stated to be a
half-integer).

Since this isn't the first time someone asked for Bessel functions in
mpmath (or rather, asked for Bessel functions in a more general
setting and was pointed to mpmath) I've now implemented the Bessel I,
Y, K and Hankel H1/H2 functions, and in a way that hopefully avoids
the major numerical issues. You can get it by checking out the SVN
version. Documentation is here:
http://mpmath.googlecode.com/svn/trunk/doc/build/functions/hypergeometric.html

Leonid, I'd be interested to know if this implementation of the Hankel
function works for your problem. If it's not too complicated, I'd like
to add your calculation (or a simplified version thereof) to the test
suite or as a documentation example. It's always nice with real-world
tests.

Fredrik



More information about the SciPy-User mailing list