Modified Bessel functions of the first kind
This functionality does not run in MATLAB.
besselI(v
, z
)
besselI(v, z)
represents the modified Bessel
functions of the first kind:
.
The Bessel functions are defined for complex arguments v and z.
A floatingpoint value is returned if either of the arguments is a floatingpoint number and the other argument is numerical. For most exact arguments the Bessel functions return an unevaluated function call. Special values at index v = 0 and/or argument z = 0 are implemented. Explicit symbolic expressions are returned, when the index v is a half integer. See Example 2.
For nonnegative integer indices v some of the Bessel functions have a branch cut along the negative real axis. A jump occurs when crossing this cut. See Example 3.
If floatingpoint approximations are desired for arguments that
are exact numerical expressions, then we recommend to use besselI(v,
float(x))
rather than float(besselI(v, x))
.
In particular, for half integer indices the symbolic result besselI(v,x)
is
costly to compute. Further, floatingpoint evaluation of the resulting
symbolic expression can be numerically unstable. See Example 4.
When called with floatingpoint arguments, these functions are
sensitive to the environment variable DIGITS
which determines
the numerical working precision.
Unevaluated calls are returned for exact or symbolic arguments:
besselJ(2, 1 + I), besselK(0, x), besselY(v, x)
Floating point values are returned for floatingpoint arguments:
besselI(2, 5.0), besselK(3.2 + I, 10000.0)
Bessel functions can be expressed in terms of elementary functions if the index is an odd integer multiple of :
besselJ(1/2, x), besselY(3/2, x)
besselI(7/2, x), besselK(7/2, x)
The negative real axis is a branch cut of the Bessel functions for noninteger indices v. A jump occurs when crossing this cut:
besselI(3/4, 1.2), besselI(3/4, 1.2 + I/10^10), besselI(3/4, 1.2  I/10^10)
The symbolic expressions returned by Bessel functions with half integer indices may be unsuitable for floatingpoint evaluation:
y := besselJ(51/2, PI)
Floating point evaluation of this exact result is subject to numerical cancellation. The following result is dominated by roundoff:
float(y)
The numerical working precision has to be increased to obtain a more accurate result:
DIGITS:= 39: float(y)
Direct floatingpoint evaluation via the Bessel function yields a correct result within working precision:
DIGITS := 5: besselJ(51/2, float(PI))
delete y, DIGITS:
The functions diff
, float
, limit
, and series
handle expressions
involving the Bessel functions:
diff(besselJ(0, x), x, x), float(ln(3 + besselI(17, sqrt(PI))))
limit(besselJ(2, x^2 + 1)*sqrt(x), x = infinity)
series(besselY(3, x)/x, x = infinity, 3)

Arithmetical expression.
z
The modified Bessel functions I_{v}(z) and K_{v}(z) satisfy the modified Bessel equation:
.
When the index v is an integer, the modified Bessel functions of the first kind are governed by reflection formulas:
.