besselIx¶
Evaluates a sequence of modified Bessel functions of the first kind with real order and complex arguments.
Synopsis¶
besselIx (xnu, z, n)
Required Arguments¶
- float
xnu
(Input) - The lowest order desired. Argument
xnu
must be greater than −1/2. - complex
z
(Input) - Argument for which the sequence of Bessel functions is to be evaluated.
- int
n
(Input) - Number of elements in the sequence.
Return Value¶
The n
values of the function through the series. Element i contains the
value of the Bessel function of order xnu
+ i for i=0,…,n−1.
Description¶
The Bessel function Iv(z): is defined to be
Iv(z)=e−vπi/2Jv(zeπi/2) for −π<argz≤π2
For large arguments, z
, Temme’s (1975) algorithm is used to find
Iv(z). The Iv(z) values are recurred upward (if
this is stable). This involves evaluating a continued fraction. If this
evaluation fails to converge, the answer may not be accurate.
For moderate and small arguments, Miller’s method is used.
Example¶
In this example, J0.3+n−1(1.2+0.5i), ν=1,…,4 is computed and printed.
from __future__ import print_function
from numpy import *
from pyimsl.math.besselIx import besselIx
n = 4
xnu = 0.3
z = 1.2 + 0.5j
sequence = besselIx(xnu, z, n)
for i in range(0, n):
print("I sub %4.2f ((%4.2f,%4.2f)) = (%5.3f,%5.3f)"
% (xnu + i, z.real, z.imag, sequence[i].real, sequence[i].imag))
Output¶
I sub 0.30 ((1.20,0.50)) = (1.163,0.396)
I sub 1.30 ((1.20,0.50)) = (0.447,0.332)
I sub 2.30 ((1.20,0.50)) = (0.082,0.127)
I sub 3.30 ((1.20,0.50)) = (0.006,0.029)