besselJx¶
Evaluates a sequence of Bessel functions of the first kind with real order and complex arguments.
Synopsis¶
besselJx (xnu, z, n)
Required Arguments¶
- float
xnu
(Input) - The lowest order desired. The 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 Jv(z) is defined to be
jv(z)=1π∫π0cos(zsinθ−vθ)dθ−sin(vπ)π∫∞0ezsinht−vtdtfor |argz|<π2
This function is based on the code BESSCC of Barnett (1981) and Thompson and Barnett (1987). This code computes Jv(z) from the modified Bessel function Iv(z), using the following relation, with ρ=eip/2:
Yv(z)={ρIv(z/ρ)for −π/2<argz≤πρ3Iv(ρ3z)for −π<argz≤π/2
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.besselJx import besselJx
n = 4
xnu = 0.3
z = 1.2 + 0.5j
sequence = besselJx(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)) = (0.774,-0.107)
I sub 1.30 ((1.20,0.50)) = (0.400,0.159)
I sub 2.30 ((1.20,0.50)) = (0.087,0.092)
I sub 3.30 ((1.20,0.50)) = (0.008,0.024)
Fatal Errors¶
IMSL_BESSEL_CONT_FRAC |
Continued fractions have failed to converge. The double precision version of this function provides the most accurate solution. |