besselI

Modified Bessel functions of the first kind

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

Syntax

```besselI(`v`, `z`)
```

Description

`besselI(v, z)` represents the modified Bessel functions of the first kind:

.

The Bessel functions are defined for complex arguments v and z.

A floating-point value is returned if either of the arguments is a floating-point 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 floating-point 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, floating-point evaluation of the resulting symbolic expression can be numerically unstable. See Example 4.

Environment Interactions

When called with floating-point arguments, these functions are sensitive to the environment variable `DIGITS` which determines the numerical working precision.

Examples

Example 1

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 floating-point arguments:

`besselI(2, 5.0), besselK(3.2 + I, 10000.0)`

Example 2

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)`

Example 3

The negative real axis is a branch cut of the Bessel functions for non-integer 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)```

Example 4

The symbolic expressions returned by Bessel functions with half integer indices may be unsuitable for floating-point evaluation:

`y := besselJ(51/2, PI)`

Floating point evaluation of this exact result is subject to numerical cancellation. The following result is dominated by round-off:

`float(y)`

The numerical working precision has to be increased to obtain a more accurate result:

`DIGITS:= 39: float(y)`

Direct floating-point evaluation via the Bessel function yields a correct result within working precision:

`DIGITS := 5: besselJ(51/2, float(PI))`

`delete y, DIGITS:`

Example 5

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)`

Parameters

 `v`, `z` arithmetical expressions

Return Values

Arithmetical expression.

`z`

Algorithms

The modified Bessel functions Iv(z) and Kv(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:

.