Learn R Programming

Bessel (version 0.6-1)

besselI.nuAsym: Asymptotic Expansion of Bessel I(x,nu) and K(x,nu) for Large nu (and x)

Description

Compute Bessel functions \(I_{\nu}(x)\) and \(K_{\nu}(x)\) for large \(\nu\) and possibly large \(x\), using asymptotic expansions in Debye polynomials.

Usage

besselI.nuAsym(x, nu, k.max, expon.scaled = FALSE, log = FALSE)
besselK.nuAsym(x, nu, k.max, expon.scaled = FALSE, log = FALSE)

Value

a numeric vector of the same length as the long of x and

nu. (usual argument recycling is applied implicitly.)

Arguments

x

numeric or complex, with real part \(\ge 0\).

nu

numeric; The order (maybe fractional!) of the corresponding Bessel function.

k.max

integer number of terms in the expansion. Must be in 0:5, currently.

expon.scaled

logical; if TRUE, the results are exponentially scaled, the same as in the corresponding BesselI() and BesselK() functions in order to avoid overflow (\(I_{\nu}\)) or underflow (\(K_{\nu}\)), respectively.

log

logical; if TRUE, \(\log(f(.))\) is returned instead of \(f\).

Author

Martin Maechler

Details

Abramowitz & Stegun , page 378, has formula 9.7.7 and 9.7.8 for the asymptotic expansions of \(I_{\nu}(x)\) and \(K_{\nu}(x)\), respectively, also saying When \(\nu \to +\infty\), these expansions (of \(I_{\nu}(\nu z)\) and \(K_{\nu}(\nu z)\)) hold uniformly with respect to \(z\) in the sector \(|arg z| \le \frac{1}{2} \pi - \epsilon\), where \(\epsilon\) iw qn arbitrary positive number. and for this reason, we require \(\Re(x) \ge 0\).

The Debye polynomials \(u_k(x)\) are defined in 9.3.9 and 9.3.10 (page 366).

References

Abramowitz, M., and Stegun, I. A. (1964, etc). Handbook of mathematical functions, pp. 366, 378.

See Also

From this package Bessel: BesselI(); further, besselIasym() for the case when \(x\) is large and \(\nu\) is small or moderate.

Further, from base: besselI, etc.

Examples

Run this code
x <- c(1:10, 20, 50, 100, 100000)
nu <- c(1, 10, 20, 50, 10^(2:10))


sapply(0:4, function(k.)
            sapply(nu, function(n.)
                   besselI.nuAsym(x, nu=n., k.max = k., log = TRUE)))

sapply(0:4, function(k.)
            sapply(nu, function(n.)
                   besselK.nuAsym(x, nu=n., k.max = k., log = TRUE)))

Run the code above in your browser using DataLab