Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeah_v1_0.tar.gz(12 Kbytes)
Manuscript Title: Integrating products of Bessel functions with an additional exponential or rational factor
Authors: Joris Van Deun, Ronald Cools
Catalogue identifier: AEAH_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 178(2008)578
Programming language: Matlab (version ≥ 6.5), Octave (version ≥ 2.1.69).
Computer: All supporting Matlab or Octave.
Operating system: All supporting Matlab or Octave.
RAM: For k Bessel functions our program needs approximately (500+140k) double precision variables.
Keywords: Quadrature, Bessel functions.
PACS: 02.30.Gp, 02.60.Jh.
Classification: 4.11.

Nature of problem:
The problem consists in integrating an arbitrary product of Bessel functions with an additional rational or exponential factor over a semi-infinite interval. Difficulties arise from the irregular oscillatory behaviour and the possible slow decay of the integrand, which prevents truncation at a finite point.

Solution method:
The interval of integration is split into a finite and infinite part. The integral over the finite part is computed using Gauss-Legendre quadrature. The integrand on the infinite part is approximated using asymptotic expansions and this approximation is integrated exactly with the aid of the upper incomplete gamma function. In the case where a rational factor is present, this factor is first expanded in a Taylor series around infinity.

Some (and eventually all) numerical accuracy is lost when one or more of the parameters r, c, ai or vi grow very large, or when r becomes small.

Running time:
Less than 0.02s for a simple problem (two Bessel functions, small parameters), a few seconds for a more complex problem (more than six Bessel functions, large parameters), in Matlab 7.4 (R2007a) on a 2.4 GHz AMD Opteron Processor 250.

[1] J. Van Deun and R. Cools. Algorithm 858: Computing infinite range integrals of an arbitrary product of Bessel functions. ACM Trans. Math. Software, 32(4):580-596, 2006.