Updated March 21, 2023

## Introduction to Bessel Function

Bessel functions, also known as cylindrical functions as defined by the mathematician Daniel Bernoulli and then generalized by Friedrich Bessel are the solutions of second-order Bessel differential equation known as Bessel equation. The solutions of these equations can be the first and second kind.

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

When the method of separation of variables is applied to Laplace equations or solving the equations of heat and wave propagation, they lead to Bessel differential equations. MATLAB provides this complex and advanced function “bessel” and the letter followed by keyword decides the first, second and third kind of Bessel function.

### Types of Bessel Function in MATLAB

The general solution of Bessel’s differential equation has two linearly dependent solutions:

`Y= A Jν(x)+B Yν(x)`

#### 1. Bessel Function of First Kind

Bessel Function of the first kind, Jν(x) is finite at x=0 for all real values of v. In MATLAB it is represented by keyword besselj and follows the below syntax:

**Y =****besselj(nu,z)****:**This returns the Bessel function of the first kind for each element in array Z.**Y = besselj(nu, Z, scale)**: This specifies whether to scale the Bessel function exponentially. Scale value can be 0 or 1, if it is 0 then no scaling is required and if the value is 1 then we have to scale the output.- The input arguments are nu and z, where nu is equation order specified as a vector, matrix, etc. and it is a real number. Z can be vector, scalar or multi-dimensional array. Nu and z must be of the same size or one of them is scalar.

#### 2. Bessel Function of Second Kind(Yν(x))

It is also known as Weber or Neumann function which is singular at x=0. In MATLAB, it is represented by keyword bessely and follows the below syntax:

**Y =****bessely(nu, Z):**This computes the Bessel function of the second kind Yν(x) for each element in array Z.**Y = bessely(nu, Z, scale)**: This specifies whether to scale the Bessel function exponentially. Scale value can be 0 or 1, if it is 0 then no scaling is required and if the value is 1 then we have to scale the output.- The input arguments are nu and z, where nu is equation order specified as a vector, matrix, etc. and it is a real number. Z can be vector, scalar or multi-dimensional array. Nu and z must be of the same size or one of them is scalar.

#### 3. Bessel Function of Third Kind

It is represented by keyword besselh and follows the below syntax:

**H = besselh(nu, Z)**: This computes the Hankel function for each element in array Z**H****= besselh(nu, K, Z**): This computes the Hankel function of the first or second kind for each element in array Z where K can be 1 or 2. If K is 1 then it computes Bessel function of the first kind and if K is 2 it computes the Bessel function of the second kind.**H = besselh(nu,K,Z,scale**): This specifies whether to scale the Bessel function exponentially. Scale value can be 0 or 1, if it is 0 then no scaling is required and if the value is 1 then we have to scale the output depending on the value of K.

### Modified Bessel Functions

Following are the modified Bessel functions.

#### 1. Modified Bessel Function of the First Kind

It is represented by keyword besseli and follows the below syntax:

**I = besseli(nu, Z):**This computes the modified Bessel function of first kind I_{ν}*(*z*)*for each element in array Z.**I = besseli(nu, Z, scale):**This specifies whether to scale the Bessel function exponentially. If the scale is 0 then there is no scaling required and if the scale is 1 then the output needs to be scaled.- The input arguments are nu and z, where nu is equation order specified as a vector, matrix, etc. and it is a real number. Z can be vector, scalar or multi-dimensional array. Nu and z must be of the same size or one of them is scalar.

#### 2. Modified Bessel Function of the Second Kind

It is represented by keyword besselk and follows the below syntax:

**K = besselk(nu, Z):**This computes the modified Bessel function of second kind K_{ν}(z) for each element in array Z.**K = besselk(nu, Z, scale)****:**This specifies whether to scale the Bessel function exponentially. If the scale is 0 then there is no scaling required and scale is 1 then the output needs to be scaled.

### Applications of Bessel Function

Below are the different applications of Bessel function:

**Electronics and Signal Processing**: Bessel Filter is used which follows Bessel function to preserve a wave-shaped signal within the passband. This is mainly used in audio crossover systems. It is also used in FM (Frequency Modulation) synthesis to explain the harmonic distribution of one sine wave signal modulated by another sine wave signal. Kaiser Window which follows Bessel function can be used in digital signal processing.**Acoustics**: It is used to explain the different modes of vibration in different acoustic membranes such as a drum.- It explains the solution of the Schrödinger equation in spherical and cylindrical coordinates for a free particle.
- It explains the dynamics of floating bodies.
**Heat Conduction:**Heat flow and heat conduction equations in a hollow infinite cylinder can be generated from Bessel’s differential equation.

### Conclusion

There are many other applications that use Bessel functions like microphone design, smartphone design, etc. So, picking the proper coordinate system is necessary and if we are dealing with any problems involving cylindrical or spherical coordinates, Bessel function naturally pops up.

### Recommended Articles

This is a guide to the Bessel Functions in MATLAB. Here we discuss the introduction and the Types of Bessel Functions in MATLAB, Modified functions along with Applications of Bessel Functions. You can also go through our other suggested articles to learn more –