Package de.tu_bs.isbs.util.math
Class BesselIntegral
java.lang.Object
de.tu_bs.isbs.util.math.BesselIntegral
public class BesselIntegral
extends java.lang.Object
Computes Infinite Integrals Involving the Product of Two Bessel Functions.
Methods for infinite integrals of the form
I(alpha, beta, lambda; a, b, s) :=
Integral( J_alpha(a*x) * J_beta(b*x) * x**lambda * exp(-s*x) * dx)
from 0 to infinity
for some special cases of integers alpha, beta, lambda, and non-negative real
values a, b and s.
Most formulas have been taken from [KB, Tables 1-3] and [ENS]. The
computation of complete elliptic integrals is done using B. C. Carlson's
functions DRF, DRD, DRJ (from the SLATEC library).
[KB] Eduardo Kausel and Mirza M. Irfan Baig. "Laplace transform of
products of Bessel functions: A visitation of earlier formulas."
Quart. Appl. Math. 70 (2012): 77--97.
[ENS] G. Eason, B. Noble and I. N. Sneddon. "On Certain Integrals of
Lipschitz-Hankel Type Involving Products of Bessel Functions".
Phil. Trans. R. Soc. Lond. A 1955 247, 529-551
TODO: weitere Spezialfälle implementieren.
TODO: Anmerkungen zur Berechnung/Genauigkeit ergänzen.
U := (a+b)^2+s^2
V := (a-b)^2+s^2
k' := 1-k^2 = V/U
k = sqrt(a*b)/(a+b)
Für (b->0 und s->0) [...]
s -> 0 ==> one_minus_k2 -> (a-b)^2/(a+b)^2
a == b ==> one_minus_k2 -> s/s == 1.
1-k^2 ändert sich zwangsläufig sprunghaft für s << b, wenn b->a
(beim Übergang von b+-eps=a zu b=a).
...
- Author:
- Stefan Reiser (s.reiser@tu-bs.de)
-
Method Summary
Modifier and Type Method Description static doubleI_1_0_0(double a, double b, double s)I(1,0,0; a,b,s)static doubleI_1_0_1(double a, double b, double s)I(1,0,1; a,b,s)static doubleI_1_0_m1(double a, double b, double s)I(1,0,-1; a,b,s)static doubleI_1_1_0(double a, double b, double s)I(1,1,0; a,b,s)static doubleI_1_1_1(double a, double b, double s)I(1,1,1; a,b,s)static doubleI_1_1_m1(double a, double b, double s)I(1,1,-1; a,b,s)static voidmain(java.lang.String[] args)
-
Method Details
-
I_1_0_0
public static double I_1_0_0(double a, double b, double s)I(1,0,0; a,b,s)- Parameters:
a-b-s-- Returns:
-
I_1_0_1
public static double I_1_0_1(double a, double b, double s)I(1,0,1; a,b,s)- Parameters:
a-b-s-- Returns:
-
I_1_0_m1
public static double I_1_0_m1(double a, double b, double s)I(1,0,-1; a,b,s)- Parameters:
a-b-s-- Returns:
-
I_1_1_0
public static double I_1_1_0(double a, double b, double s)I(1,1,0; a,b,s)- Parameters:
a-b-s-- Returns:
-
I_1_1_1
public static double I_1_1_1(double a, double b, double s)I(1,1,1; a,b,s)- Parameters:
a-b-s-- Returns:
-
I_1_1_m1
public static double I_1_1_m1(double a, double b, double s)I(1,1,-1; a,b,s)- Parameters:
a-b-s-- Returns:
-
main
public static void main(java.lang.String[] args) throws Xermsg.SlatecException, java.io.FileNotFoundException- Throws:
Xermsg.SlatecExceptionjava.io.FileNotFoundException
-