Evaluates a sequence of exponentially scaled modified Bessel functions of the second kind of fractional order.
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)
Generic: CALL BSKES (XNU, X, NIN, BKE)
Specific: The specific interface names are S_BSKES and D_BSKES.
Single: CALL BSKES (XNU, X, NIN, BKE)
Double: The double precision name is DBSKES.
Function BSKES evaluates exKv+k−1(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
exKν−1(x), ¼, and BKE(|n|)
contains exKν+ n + 1(x). This
routine is particularly useful for calculating sequences for large x
provided n ≤ x. (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
exKν+n (x) » exG(|ν+ n|)/[2(x/2)|ν + n|] overflows.
BSKES is based on the work of Cody (1983).
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.
In this example, Kν−1∕2(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
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
|
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |