Chapter 6: Bessel Functions

CBIS

Evaluates a sequence of modified Bessel functions of the first kind with real order and complex arguments.

Required Arguments

XNU — Real argument which is the lowest order desired.   (Input)
XNU must be greater than −1/2.

Z — Complex argument for which the sequence of Bessel functions is to be evaluated.   (Input)

N — Number of elements in the sequence.   (Input)

CBS — Vector of length N containing the values of the function through the series.   (Output)
CBS(I) contains the value of the Bessel function of order XNU + I − 1 at Z for I = 1
to N.

FORTRAN 90 Interface

Generic:                              CALL CBIS (XNU, Z, N, CBS)

Specific:                             The specific interface names are S_CBIS and D_CBIS.

FORTRAN 77 Interface

Single:                                CALL CBIS (XNU, Z, N, CBS)

Double:                              The double precision name is DCBIS.

Description

The modified Bessel function Iν(z) is defined to be

where the Bessel function Jν(z) is defined in BSJS.

This code is based on the code BESSCC of Barnett (1981) and Thompson and Barnett (1987).

For large arguments, z, Temme's (1975) algorithm is used to find Iν(z). The Iν(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.

Comments

Informational error

Type Code

3         1                  One of the continued fractions failed.

4         2                  Only the first several entries in CBS are valid.

Example

In this example, I0.3 + ν 1(1.2 + 0.5i), ν= 1, …, 4 is computed and printed.

 

      USE CBIS_INT

      USE UMACH_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    N

      PARAMETER  (N=4)

!    

      INTEGER    K, NOUT

      REAL       XNU

      COMPLEX    CBS(N), Z

!                                 Compute

      XNU = 0.3

      Z   = (1.2, 0.5)

      CALL CBIS (XNU, Z, N, CBS)

!                                 Print the results

      CALL UMACH (2, NOUT)

      DO 10  K=1, N

         WRITE (NOUT,99999) XNU+K-1, Z, CBS(K)

   10 CONTINUE

99999 FORMAT (' I sub ', F6.3, ' ((', F6.3, ',', F6.3, &

              ')) = (', F9.3, ',', F9.3, ')')

      END

Output

 

 I sub  0.300 (( 1.200, 0.500)) = (    1.163,    0.396)

 I sub  1.300 (( 1.200, 0.500)) = (    0.447,    0.332)

 I sub  2.300 (( 1.200, 0.500)) = (    0.082,    0.127)

 I sub  3.300 (( 1.200, 0.500)) = (    0.006,    0.029)



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260