Bessel Class |
Namespace: Accord.Math
The Bessel type exposes the following members.
Name | Description | |
---|---|---|
I(Double) |
Bessel function of the first kind, of order 1.
| |
I(Int32, Double) |
Bessel function of the first kind, of order n.
| |
I0 |
Bessel function of the first kind, of order 0.
| |
J(Double) |
Bessel function of order 1.
| |
J(Int32, Double) |
Bessel function of order n.
| |
J0 |
Bessel function of order 0.
| |
Y(Double) |
Bessel function of the second kind, of order 1.
| |
Y(Int32, Double) |
Bessel function of the second kind, of order n.
| |
Y0 |
Bessel function of the second kind, of order 0.
|
Bessel functions, first defined by the mathematician Daniel Bernoulli and generalized by Friedrich Bessel, are the canonical solutions y(x) of Bessel's differential equation.
Bessel's equation arises when finding separable solutions to Laplace's equation and the Helmholtz equation in cylindrical or spherical coordinates. Bessel functions are therefore especially important for many problems of wave propagation and static potentials. In solving problems in cylindrical coordinate systems, one obtains Bessel functions of integer order (α = n); in spherical problems, one obtains half-integer orders (α = n+1/2). For example:
Bessel functions also appear in other problems, such as signal processing (e.g., see FM synthesis, Kaiser window, or Bessel filter).
This class offers implementations of Bessel's first and second kind functions, with special cases for zero and for arbitrary n.
References:
// Bessel function of order 0 actual = Bessel.J0(1); // 0.765197686557967 actual = Bessel.J0(5); // -0.177596771314338 // Bessel function of order n double j2 = Bessel.J(2, 17.3); // 0.117351128521774 double j01 = Bessel.J(0, 1); // 0.765197686557967 double j05 = Bessel.J(0, 5); // -0.177596771314338 // Bessel function of the second kind, of order 0. double y0 = Bessel.Y0(64); // 0.037067103232088 // Bessel function of the second kind, of order n. double y2 = Bessel.Y(2, 4); // 0.215903594603615 double y0 = Bessel.Y(0, 64); // 0.037067103232088