Chapter 6: Bessel Functions

BSKES

Evaluates a sequence of exponentially scaled modified Bessel functions of the second kind of fractional order.

Required Arguments

XNU — Fractional order of the function.   (Input)
XNU must be less than 1.0 in absolute value.

X — Argument for which the sequence of Bessel functions is to be evaluated.   (Input)

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

BKE — Vector of length NIN containing the values of the function through the series.   (Output)

FORTRAN 90 Interface

Generic:                              CALL BSKES (XNU, X, NIN, BKE)

Specific:                             The specific interface names are S_BSKES and D_BSKES.

FORTRAN 77 Interface

Single:                                CALL BSKES (XNU, X, NIN, BKE)

Double:                              The double precision name is DBSKES.

Description

Function BSKES evaluates exKv+k1(x), for k = 1, …, n. For the definition of Kv(x), see BSKS.

Currently, ν is restricted to be less than 1 in absolute value. A total of |n| values is stored in the array BKE. For n positive, BKE(1) contains exKν (x), BKE(2) contains exKν + 1(x), …, and BKE(N) contains exKν + n 1(x). For n negative, BKE(1) contains exKν(x), BKE(2) contains
, …, and BKE(|n|) contains . This routine is particularly useful for calculating sequences for large x provided nx. (Overflow becomes a problem if n << x.) n must not be zero, and x must not be greater than zero. Moreover, |ν| must be less than 1.
Also, when |n| is large compared with x, |ν+ n| must not be so large that  overflows.

BSKES is based on the work of Cody (1983).

Comments

1.         If NIN is positive, BKE(1) contains EXP(X) times the value of the function of order XNU, BKE(2) contains EXP(X) times the value of the function of order XNU + 1, …, and BKE(NIN) contains EXP(X) times the value of the function of order XNU + NIN − 1.

2.         If NIN is negative, BKE(1) contains EXP(X) times the value of the function of order XNU, BKE(2) contains EXP(X) times the value of the function of order XNU − 1, …, and BKE(ABS(NIN)) contains EXP(X) times the value of the function of order
XNU + NIN + 1.

Example

In this example, Kν12(2.0), ν= 1, …, 6 is computed and printed.

 

      USE BSKES_INT

      USE UMACH_INT

 

      IMPLICIT   NONE

!                                 Declare variables

      INTEGER    NIN

      PARAMETER  (NIN=6)

!    

      INTEGER    K, NOUT

      REAL       BKE(NIN), X, XNU

!                                 Compute

      XNU = 0.5

      X   = 2.0

      CALL BSKES (XNU, X, NIN, BKE)

!                                 Print the results

      CALL UMACH (2, NOUT)

      DO 10  K=1, NIN

         WRITE (NOUT,99999) X, XNU+K-1, X, BKE(K)

   10 CONTINUE

99999 FORMAT (' exp(', F6.3, ') * K sub ', F6.3, &

           ' (', F6.3, ') = ', F8.3)

      END

Output

 

 exp( 2.000) * K sub  0.500 ( 2.000) =    0.886

 exp( 2.000) * K sub  1.500 ( 2.000) =    1.329

 exp( 2.000) * K sub  2.500 ( 2.000) =    2.880

 exp( 2.000) * K sub  3.500 ( 2.000) =    8.530

 exp( 2.000) * K sub  4.500 ( 2.000) =   32.735

 exp( 2.000) * K sub  5.500 ( 2.000) =  155.837



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