# bessel

## Purpose

Bessel functions of the first kind.

## Synopsis

````B = bessel(alpha,x)`
```

## Description

The differential equation

is called Bessel's equation, and its solutions are known as Bessel functions.

`B = bessel(alpha x)` computes Bessel functions of the first kind, or modified Bessel functions of the first kind, for real, nonnegative `alpha` and nonnegative `x`:

• For real elements of `x` (no imaginary component), `bessel` uses the `besselj` function to compute the Bessel function of the first kind.
• For imaginary elements of `x` (no real component), `bessel` uses the `besseli` function to compute the modified Bessel function of the first kind.
• For complex elements of `x` (both real and imaginary component), `bessel` uses the `bessela` function to compute the Bessel function of the first kind.
If `alpha` is a scalar and `x` is a vector, `B` is a vector the same length as `x`. If `x` is a vector of length `m` and `alpha` is a vector of length `n`, then `B` is an `m`-by-`n` matrix and `B(i,k)` is `bessel(alpha(k), x(i))`. The elements of `x` can be any nonnegative values, in any order. For `alpha`, the increment between elements must be 1, and all elements must be between 0 and 1000, inclusive.

## Examples

Plot Bessel functions of order 0 and 1:

````x = 0:.25:10;`
`plot(x,[bessel(0,x);bessel(1,x)])`
```

## Algorithm

For real `x`, `bessel` calls the function `besselj`. `besselj` evaluates the Bessel function using three-term recurrence for small-valued `x`, or an asymptotic series for large `x`. For purely complex `x`, `bessel` calls `besseli`, which uses three-term backward recurrence for most `x`, and an asymptotic expansion for large `x`. For complex `x`, `bessel` calls `bessela`, which uses either a power series or an asymptotic expansion depending on roundoff error considerations. See reference [1].

For some values of arguments, `bessela`'s results may be severely contaminated by roundoff error. `[J,digits] = bessela(alpha,x)` returns an estimate of the number of correct significant digits in the computed result. `digits` is the `log10` of the estimated relative error, so a value of 14 or 15 corresponds to nearly full accuracy in IEEE or VAX arithmetic, while 1 or 2 indicates nearly useless results. Any negative value of digits is replaced by zero, the corresponding `J` set to `NaN` and a division by zero warning message is generated. If either `alpha` or `x` is less than 50, digits are at least 8. In the `(alpha,x)` plane, the region of least accuracy is near the line `alpha = x`, so small values of `alpha` and large values of `x`, or vice versa, give the most accurate results. For example:

```----------------
x   alpha  digits
----------------
`25`  `25`     11.8
`25`  `75`     14.4
`75`  `25`     14.5
`75`  `75`     1.9
----------------
```

## See Also

````besseli`, `besselj`, `besselk`, `bessely`
```

## References

[1] M. Abramowitz and I.A. Stegun, Handbook of Mathematical Functions, National Bureau of Standards, Applied Math. Series #55, Dover Publications, 1965, sections 9.1.1, 9.1.89 and 9.12, formulas 9.1.10 and 9.2.5.

(c) Copyright 1994 by The MathWorks, Inc.