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 log
ged 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) |
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 |
log |
logical; if TRUE, |
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
.
Author(s)
Martin Maechler
References
Abramowitz, M., and Stegun, I. A. (1964, etc). Handbook of mathematical functions (NBS AMS series 55, U.S. Dept. of Commerce).
See Also
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