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 double I_1_0_0​(double a, double b, double s)
    I(1,0,0; a,b,s)
    static double I_1_0_1​(double a, double b, double s)
    I(1,0,1; a,b,s)
    static double I_1_0_m1​(double a, double b, double s)
    I(1,0,-1; a,b,s)
    static double I_1_1_0​(double a, double b, double s)
    I(1,1,0; a,b,s)
    static double I_1_1_1​(double a, double b, double s)
    I(1,1,1; a,b,s)
    static double I_1_1_m1​(double a, double b, double s)
    I(1,1,-1; a,b,s)
    static void main​(java.lang.String[] args)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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.SlatecException
      java.io.FileNotFoundException