Modified Bessel function of first kind
I = besseli(nu,Z)
I = besseli(nu,Z,1)
I = besseli(nu,Z) computes
the modified Bessel function of the first kind, Iν(z),
for each element of the array
Z. The order
not be an integer, but must be real. The argument
be complex. The result is real where
Z is positive.
Z are arrays
of the same size, the result is also that size. If either input is
a scalar, it is expanded to the other input's size.
I = besseli(nu,Z,1) computes
Create a column vector of domain values.
z = (0:0.2:1)';
Calculate the function values using
nu = 1.
format long besseli(1,z)
ans = 6×1 0 0.100500834028125 0.204026755733571 0.313704025604922 0.432864802620640 0.565159103992485
Define the domain.
X = 0:0.01:5;
Calculate the first five modified Bessel functions of the first kind.
I = zeros(5,501); for i = 0:4 I(i+1,:) = besseli(i,X); end
Plot the results.
plot(X,I,'LineWidth',1.5) axis([0 5 0 8]) grid on legend('I_0','I_1','I_2','I_3','I_4','Location','Best') title('Modified Bessel Functions of the First Kind for v = 0,1,2,3,4') xlabel('X') ylabel('I_v(X)')
The differential equation
where ν is a real constant, is called the modified Bessel's equation, and its solutions are known as modified Bessel functions.
Iν(z) and I–ν(z) form a fundamental set of solutions of the modified Bessel's equation. Iν(z) is defined by
where Γ(a) is the gamma function.
a second solution, independent of Iν(z).
It can be computed using
This function fully supports tall arrays. For more information, see Tall Arrays.
Usage notes and limitations:
If the order
nu is less than
then it must be an integer.
Always returns a complex result.
Strict single-precision calculations are not supported. In the generated code, single-precision inputs produce single-precision outputs. However, variables inside the function might be double-precision.
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).