besselI.nuAsym {Bessel}R Documentation

Asymptotic Expansion of Bessel I(x,nu) and K(x,nu) for Large nu (and x)

Description

Compute Bessel functions Iν(x)I_{\nu}(x) and Kν(x)K_{\nu}(x) for large ν\nu and possibly large xx, 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)

Arguments

x

numeric or complex, with real part 0\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νI_{\nu}) or underflow (KνK_{\nu}), respectively.

log

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

Details

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

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

Value

a numeric vector of the same length as the long of x and nu. (usual argument recycling is applied implicitly.)

Author(s)

Martin Maechler

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 xx is large and ν\nu is small or moderate.

Further, from base: besselI, etc.

Examples

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)))

[Package Bessel version 0.6-1 Index]