besselIasym {Bessel} R Documentation

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

### Description

Compute Bessel function I_{\nu}(x) and K_{\nu}(x) for large x and small or moderate \nu, using the asymptotic expansions (9.7.1) and (9.7.2), p.377-8 of Abramowitz & Stegun, for x \to\infty, even valid for complex x,

I_a(x) = exp(x) / \sqrt{2\pi x} \cdot f(x, a), 

where

f(x,a) = 1 - \frac{\mu-1}{8x} + \frac{(\mu-1)(\mu-9)}{2! (8x)^2} - \ldots,

and \mu = 4 a^2 and |arg(x)| < \pi/2.

Whereas besselIasym(x,a) computes a possibly exponentially scaled and/or logged version of I_a(x), besselI.ftrms returns the corresponding terms in the series expansion of f(x,a) above.

### Usage

besselIasym  (x, nu, k.max = 10, expon.scaled = FALSE, log = FALSE)
besselKasym  (x, nu, k.max = 10, expon.scaled = FALSE, log = FALSE)
besselI.ftrms(x, nu, K = 20)


### Arguments

 x numeric or complex (with real part) \ge 0. nu numeric; the order (maybe fractional!) of the corresponding Bessel function. k.max, K integer number of terms in the expansion. expon.scaled logical; if TRUE, the results are exponentially scaled in order to avoid overflow. log logical; if TRUE, \log(f(.)) is returned instead of f.

### Details

Even though the reference (A. & S.) requires |\arg z| < \pi/2 for I() and |\arg z| < 3\pi/2 for K(), where \arg(z) := Arg(z), the zero-th order term seems correct also for negative (real) numbers.

### Value

a numeric (or complex) vector of the same length as x.

Martin Maechler

### References

Abramowitz, M., and Stegun, I. A. (1955, etc). Handbook of mathematical functions (NBS AMS series 55, U.S. Dept. of Commerce).

From this package Bessel() BesselI(); further, besselI.nuAsym() which is useful when \nu is large (as well); further base besselI, etc

### Examples

x <- c(1:10, 20, 50, 100^(2:10))
nu <- c(1, 10, 20, 50, 100)
r <- lapply(c(0:4,10,20), function(k.)
sapply(nu, function(n.)
besselIasym(x, nu=n., k.max = k., log = TRUE)))
warnings()

try( # needs improvement in R  [or a local workaround]
besselIasym(10000*(1+1i), nu=200, k.max=20, log=TRUE)
) # Error in log1p(-d) : unimplemented complex function



[Package Bessel version 0.6-0 Index]