BSIES

Evaluates a sequence of exponentially scaled modified Bessel functions of the first kind with nonnegative real order and real positive arguments.

Required Arguments

XNU — Real argument which is the lowest order desired. (Input)
It must be at least zero and less than one.

X — Real positive argument for which the sequence of Bessel functions is to be evaluated. (Input)
It must be nonnegative.

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

BSI — Vector of length N containing the values of the function through the series. (Output)
BSI(I) contains the value of the Bessel function of order I  1 + XNU at x for I = 1 to N multiplied by exp(–X).

FORTRAN 90 Interface

Generic: CALL BSIES (XNU, X, N, BSI)

Specific: The specific interface names are S_BSIES and D_BSIES.

FORTRAN 77 Interface

Single: CALL BSIES (XNU, X, N, BSI)

Double: The double precision name is DBSIES.

Description

Function BSIES evaluates , for k = 1, n. For the definition of Iv(x), see BSIS. The algorithm is based on a code due to Cody (1983), which uses backward recursion.

Example

In this example, Iv1(10.0), v = 1, , 10 is computed and printed.

 

USE BSIES_INT

USE UMACH_INT

 

IMPLICIT NONE

! Declare variables

INTEGER N

PARAMETER (N=10)

!

INTEGER K, NOUT

REAL BSI(N), X, XNU

! Compute

XNU = 0.0

X = 10.0

CALL BSIES (XNU, X, N, BSI)

! Print the results

CALL UMACH (2, NOUT)

DO 10 K=1, N

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

10 CONTINUE

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

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

END

Output

 

exp(-10.000) * I sub 0.000 (10.000) = 0.128

exp(-10.000) * I sub 1.000 (10.000) = 0.121

exp(-10.000) * I sub 2.000 (10.000) = 0.104

exp(-10.000) * I sub 3.000 (10.000) = 0.080

exp(-10.000) * I sub 4.000 (10.000) = 0.056

exp(-10.000) * I sub 5.000 (10.000) = 0.035

exp(-10.000) * I sub 6.000 (10.000) = 0.020

exp(-10.000) * I sub 7.000 (10.000) = 0.011

exp(-10.000) * I sub 8.000 (10.000) = 0.005

exp(-10.000) * I sub 9.000 (10.000) = 0.002