Bessel and Airy Functions

Bessel functions are named after Friedrich Wilhelm Bessel, a German mathematician, who published the first in-depth study of their properties in 1816. They appear in many shapes and sizes in physics, including the vibration patterns of cylindrical drums, the 3-body problem in celestial mechanics, hydrodynamics, and even warp field equations.

The Special class contains static methods for evaluating Bessel function and variants of Bessel functions as well as selected zeroes.

Regular Bessel functions

Bessel functions arise as the solutions of the Bessel differential equation:

$$x^2y'' + xy' + (x^2-n^2)y = 0$$

where n is usually an integer. This equation appears when solving certain partial differential equations over a cylindrical domain.

For each value of n, the order, there are two independent solutions. These are called Bessel functions of the first kind and Bessel functions of the second kind, also known as Neumann functions.

The Special class contains static methods for evaluating these functions for arbitrary integer or real order for real and complex arguments, as listed in the table below.

Bessel functions.

Method

Description

BesselJ0

Bessel function of the first kind of order zero.

BesselJ1

Bessel function of the first kind of order one.

BesselJ

Bessel function of the first kind of integer order n.

BesselJ

Bessel function of the first kind of real order ν.

BesselY0

Bessel function of the second kind of order zero.

BesselY1

Bessel function of the second kind of order one.

BesselY

Bessel function of the second kind of integer order n.

BesselY

Bessel function of the second kind of real order ν.

In addition, several methods return delegates that evaluate a Bessel function for fixed order:

Bessel functions.

Method

Description

BesselJ

Returns a delegate that evaluates the Bessel function of the first kind of the specified fixed integer order n.

BesselJ

Returns a delegate that evaluates the Bessel function of the first kind for the specified fixed real order ν.

BesselY

Returns a delegate that evaluates the Bessel function of the second kind of the specified fixed integer order n.

BesselY

Returns a delegate that evaluates the Bessel function of the second kind for the specified fixed real order ν.

Hankel functions

The Hankel function of the first kind is a complex function whose real part is the Bessel function of the first kind, and the imaginary part is the Bessel function of the second kind. The Hankel function of the second kind is the complex conjugate of the first Hankel function:

$$\begin{align}H^{(1)}_\nu(z)=J_\nu(z)+\mathrm{i} Y_\nu(z),H^{(1)}_\nu(z)=J_\nu(z)-\mathrm{i} Y_\nu(z)\\\end{align}$$

These definitions in terms of the real Bessel functions are extended to complex arguments.

Zeroes of Bessel functions

In many applications, the zeroes of Bessel functions are needed. The BesselJZero(Double, Int32) and BesselYZero(Double, Int32) return real zeros of the Bessel function of the first and second kind, respectively. The first argument is the order of the Bessel function. The second argument is the zero-based index of the zero. The count starts from the first strictly positive zero.

Modified Bessel Functions

Modified Bessel functions arise as the solutions of the following differential equation:

$$x^2y''+xy'-(x^2-n^2)y = 0$$

where n is again usually an integer. The two independent solutions of this equation are called the modified Bessel functions of the first and second kind.

The modified Bessel functions of the first kind increase exponentially with increasing real part of the argument. For this reason, they are often scaled by a factor \(\exp(-|\Re(z)|)\). Likewise, the modified Bessel functions of the second kind decrease exponentially with increasing modulus of the argument and are often scaled by a factor \(\exp(|z|)\).

The Special class also provides static methods for evaluating standard and scaled versions of the modified Bessel function of the first and second kind of arbitrary integer order for real arguments, as listed in the table below

Modified Bessel functions.

Method

Description

BesselI0

Modified Bessel function of the first kind of order zero.

BesselI0Scaled

Scaled modified Bessel function of the first kind of order zero.

BesselI1

Modified Bessel function of the first kind of order one.

BesselI1Scaled

Scaled modified Bessel function of the first kind of order one.

BesselI

Modified Bessel function of the first kind of real order.

BesselIScaled

Scaled modified Bessel function of the first kind of real order.

BesselK0

Modified Bessel function of the second kind of order zero.

BesselK0Scaled

Scaled modified Bessel function of the second kind of order zero.

BesselK1

Modified Bessel function of the second kind of order one.

Spherical Bessel Functions

Spherical Bessel functions are closely related to ordinary Bessel functions of half-integer order. The Special class also provides static methods for evaluating standard and scaled versions of the modified Bessel function of the first and second kind of arbitrary integer order for real arguments, as listed in the table below.

Table 3. Spherical Bessel functions.

Method

Description

SphericalBesselJ

Spherical Bessel function of the first kind.

SphericalBesselY

Spherical Bessel function of the second kind.

Airy Functions

Closely related to the Bessel functions are the two Airy functions, Ai and Bi. These arise in a number of applications in physics and engineering as two linearly independent solutions of the differential equation

$$y'' - xy = 0$$

Other solutions to this equation are a linear combination of the two standard Airy functions.

The Special class provides static methods for evaluating the Airy functions and their first derivative. The methods are listed in table 4 below.

Table 4. Airy functions.

Method

Description

AiryAi

Airy function Ai(x).

AiryAi

Airy function Ai(z) of a complex argument.

AiryBi

Airy function Bi(x).

AiryBi

Airy function Bi(z) of a complex argument.

AiryAiPrime

First derivative of the Airy function Ai(x).

AiryAiPrime

First derivative of the Airy function Ai(z) of a complex argument.

AiryBiPrime

First derivative of the Airy function Bi(x).

AiryBiPrime

First derivative of the Airy function Bi(z) of a complex argument.

Kelvin Functions

The Kelvin functions are defined as the real and imaginary parts of Bessel functions of the first kind (Kelvin functions of the first kind) or modified Bessel functions of the first kind (Kelvin functions of the second kind) along a bisector of the real and imaginary axis in the complex plane.

The Special class provides static methods for evaluating the Kelvin functions and their first derivative. The methods are listed in table 5 below. Each method has two overloads. With two arguments, the first argument is the order of the Kelvin function and the second argument is the value at which to evaluate the function. When there is only one argument, the order of the Kelvin function is taken to be zero.

Table 5. Kelvin functions.

Method

Description

KelvinBe

Kelvin function of the first kind be(x).

KelvinBer

Real part ber(x) of the Kelvin function of the first kind.

KelvinBei

Imaginary part bei(x) of the Kelvin function of the first kind.

KelvinBePrime

First derivative be'(x) of the Kelvin function of the first kind.

KelvinBerPrime

Real part ber'(x) of the first derivative of the Kelvin function of the first kind.

KelvinBeiPrime

Imaginary part bei'(x) of the first derivative of the Kelvin function of the first kind.

KelvinKe

Kelvin function of the second kind, ke(x).

KelvinKer

Real part ker(x) of the Kelvin function of the second kind.

KelvinKei

Imaginary part kei(x) of the Kelvin function of the second kind.

KelvinKePrime

First derivative ke'(x) of the Kelvin function of the second kind.

KelvinKerPrime

Real part ker'(x) of the first derivative of the Kelvin function of the second kind.

KelvinKeiPrime

Imaginary part Kei'(x) of the first derivative of the Kelvin function of the second kind.

Zeros of Bessel and Airy Functions

The Special class provides static methods for evaluating the zeros of Bessel functions of the first and second kind, and of both Airy functions. For Bessel functions, the order must be supplied as the first argument. The second argument is the index of the zero. For Airy functions, the index of the zero is the only argument. The methods are listed below.

Table 6. Zeroes of Bessel and Airy functions.

Method

Description

BesselJZero

Zero of the Bessel function Jν(x).

BesselYZero

Zero of the Bessel function Yν(x).

AiryAiZero

Zero of Airy function Ai(x).

AiryBiZero

Zero of function Bi(x).