Class Bessel


  • public class Bessel
    extends Object
    Bessel and Airy functions.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static double[] A_i0
      Chebyshev coefficients for exp(-x) I0(x) in the interval [0,8].
      protected static double[] A_i1
      Chebyshev coefficients for exp(-x) I1(x) / x in the interval [0,8].
      protected static double[] A_k0
      COEFFICIENTS FOR METHODS k0, k0e *
      protected static double[] A_k1
      COEFFICIENTS FOR METHODS k1, k1e *
      protected static double[] B_i0
      Chebyshev coefficients for exp(-x) sqrt(x) I0(x) in the inverted interval [8,infinity].
      protected static double[] B_i1  
      protected static double[] B_k0  
      protected static double[] B_k1  
      protected static double big  
      protected static double biginv  
      protected static double LOGPI  
      protected static double MACHEP  
      protected static double MAXGAM  
      protected static double MAXLOG  
      protected static double MINLOG  
      protected static double SQRTH  
      protected static double SQTPI  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Bessel()
      Makes this class non instantiable, but still let's others inherit from it.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static double i0​(double x)
      Returns the modified Bessel function of order 0 of the argument.
      static double i0e​(double x)
      Returns the exponentially scaled modified Bessel function of order 0 of the argument.
      static double i1​(double x)
      Returns the modified Bessel function of order 1 of the argument.
      static double i1e​(double x)
      Returns the exponentially scaled modified Bessel function of order 1 of the argument.
      static double j0​(double x)
      Returns the Bessel function of the first kind of order 0 of the argument.
      static double j1​(double x)
      Returns the Bessel function of the first kind of order 1 of the argument.
      static double jn​(int n, double x)
      Returns the Bessel function of the first kind of order n of the argument.
      static double k0​(double x)
      Returns the modified Bessel function of the third kind of order 0 of the argument.
      static double k0e​(double x)
      Returns the exponentially scaled modified Bessel function of the third kind of order 0 of the argument.
      static double k1​(double x)
      Returns the modified Bessel function of the third kind of order 1 of the argument.
      static double k1e​(double x)
      Returns the exponentially scaled modified Bessel function of the third kind of order 1 of the argument.
      static double kn​(int nn, double x)
      Returns the modified Bessel function of the third kind of order nn of the argument.
      static double y0​(double x)
      Returns the Bessel function of the second kind of order 0 of the argument.
      static double y1​(double x)
      Returns the Bessel function of the second kind of order 1 of the argument.
      static double yn​(int n, double x)
      Returns the Bessel function of the second kind of order n of the argument.
    • Field Detail

      • A_i0

        protected static final double[] A_i0
        Chebyshev coefficients for exp(-x) I0(x) in the interval [0,8]. lim(x->0){ exp(-x) I0(x) } = 1.
      • B_i0

        protected static final double[] B_i0
        Chebyshev coefficients for exp(-x) sqrt(x) I0(x) in the inverted interval [8,infinity]. lim(x->inf){ exp(-x) sqrt(x) I0(x) } = 1/sqrt(2pi).
      • A_i1

        protected static final double[] A_i1
        Chebyshev coefficients for exp(-x) I1(x) / x in the interval [0,8]. lim(x->0){ exp(-x) I1(x) / x } = 1/2.
      • B_i1

        protected static final double[] B_i1
      • A_k0

        protected static final double[] A_k0
        COEFFICIENTS FOR METHODS k0, k0e *
      • B_k0

        protected static final double[] B_k0
      • A_k1

        protected static final double[] A_k1
        COEFFICIENTS FOR METHODS k1, k1e *
      • B_k1

        protected static final double[] B_k1
    • Constructor Detail

      • Bessel

        protected Bessel()
        Makes this class non instantiable, but still let's others inherit from it.
    • Method Detail

      • i0

        public static double i0​(double x)
                         throws ArithmeticException
        Returns the modified Bessel function of order 0 of the argument.

        The function is defined as i0(x) = j0( ix ).

        The range is partitioned into the two intervals [0,8] and (8, infinity). Chebyshev polynomial expansions are employed in each interval.

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • i0e

        public static double i0e​(double x)
                          throws ArithmeticException
        Returns the exponentially scaled modified Bessel function of order 0 of the argument.

        The function is defined as i0e(x) = exp(-|x|) j0( ix ).

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • i1

        public static double i1​(double x)
                         throws ArithmeticException
        Returns the modified Bessel function of order 1 of the argument.

        The function is defined as i1(x) = -i j1( ix ).

        The range is partitioned into the two intervals [0,8] and (8, infinity). Chebyshev polynomial expansions are employed in each interval.

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • i1e

        public static double i1e​(double x)
                          throws ArithmeticException
        Returns the exponentially scaled modified Bessel function of order 1 of the argument.

        The function is defined as i1(x) = -i exp(-|x|) j1( ix ).

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • j0

        public static double j0​(double x)
                         throws ArithmeticException
        Returns the Bessel function of the first kind of order 0 of the argument.
        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • j1

        public static double j1​(double x)
                         throws ArithmeticException
        Returns the Bessel function of the first kind of order 1 of the argument.
        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • jn

        public static double jn​(int n,
                                double x)
                         throws ArithmeticException
        Returns the Bessel function of the first kind of order n of the argument.
        Parameters:
        n - the order of the Bessel function.
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • k0

        public static double k0​(double x)
                         throws ArithmeticException
        Returns the modified Bessel function of the third kind of order 0 of the argument.

        The range is partitioned into the two intervals [0,8] and (8, infinity). Chebyshev polynomial expansions are employed in each interval.

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • k0e

        public static double k0e​(double x)
                          throws ArithmeticException
        Returns the exponentially scaled modified Bessel function of the third kind of order 0 of the argument.
        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • k1

        public static double k1​(double x)
                         throws ArithmeticException
        Returns the modified Bessel function of the third kind of order 1 of the argument.

        The range is partitioned into the two intervals [0,2] and (2, infinity). Chebyshev polynomial expansions are employed in each interval.

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • k1e

        public static double k1e​(double x)
                          throws ArithmeticException
        Returns the exponentially scaled modified Bessel function of the third kind of order 1 of the argument.

        k1e(x) = exp(x) * k1(x).

        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • kn

        public static double kn​(int nn,
                                double x)
                         throws ArithmeticException
        Returns the modified Bessel function of the third kind of order nn of the argument.

        The range is partitioned into the two intervals [0,9.55] and (9.55, infinity). An ascending power series is used in the low range, and an asymptotic expansion in the high range.

        Parameters:
        nn - the order of the Bessel function.
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • y0

        public static double y0​(double x)
                         throws ArithmeticException
        Returns the Bessel function of the second kind of order 0 of the argument.
        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • y1

        public static double y1​(double x)
                         throws ArithmeticException
        Returns the Bessel function of the second kind of order 1 of the argument.
        Parameters:
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error
      • yn

        public static double yn​(int n,
                                double x)
                         throws ArithmeticException
        Returns the Bessel function of the second kind of order n of the argument.
        Parameters:
        n - the order of the Bessel function.
        x - the value to compute the bessel function of.
        Returns:
        result
        Throws:
        ArithmeticException - error