nag_bessel_j1 (s17afc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual

NAG Library Function Documentnag_bessel_j1 (s17afc)

1  Purpose

nag_bessel_j1 (s17afc) returns the value of the Bessel function ${J}_{1}\left(x\right)$.

2  Specification

 #include #include
 double nag_bessel_j1 (double x, NagError *fail)

3  Description

nag_bessel_j1 (s17afc) evaluates an approximation to the Bessel function of the first kind ${J}_{1}\left(x\right)$.
The function is based on Chebyshev expansions.
For $x$ near zero, ${J}_{1}\left(x\right)\simeq x/2$. This approximation is used when $x$ is sufficiently small for the result to be correct to machine precision.
For very large $x$, it becomes impossible to provide results with any reasonable accuracy (see Section 8), hence the function fails. Such arguments contain insufficient information to determine the phase of oscillation of ${J}_{1}\left(x\right)$; only the amplitude, $\sqrt{2/\pi \left|x\right|}$, can be determined. The range for which this occurs is roughly related to the machine precision.

4  References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Clenshaw C W (1962) Chebyshev Series for Mathematical Functions Mathematical tables HMSO

5  Arguments

1:     xdoubleInput
On entry: the argument $x$ of the function.
2:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

NE_REAL_ARG_GT
On entry, ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{x}}\le 〈\mathit{\text{value}}〉$. x is too large. The function returns the amplitude of the ${j}_{1}$ oscillation, $\sqrt{2/\pi \left|x\right|}$.

7  Accuracy

Let $\delta$ be the relative error in the argument and $E$ be the absolute error in the result. (Since ${J}_{1}\left(x\right)$ oscillates about zero, absolute error and not relative error is significant.)
If $\delta$ is somewhat larger than machine precision (e.g., if $\delta$ is due to data errors etc.), then $E$ and $\delta$ are approximately related by $E\simeq \left|{xJ}_{0}\left(x\right)-{J}_{1}\left(x\right)\right|\delta$ (provided $E$ is also within machine bounds).
However, if $\delta$ is of the same order as machine precision, then rounding errors could make $E$ slightly larger than the above relation predicts.
For very large $x$, the above relation ceases to apply. In this region, ${J}_{1}\left(x\right)\simeq \sqrt{2/\pi \left|x\right|}\mathrm{cos}\left(x-3\pi /4\right)$. The amplitude $\sqrt{2/\pi \left|x\right|}$ can be calculated with reasonable accuracy for all $x$, but $\mathrm{cos}\left(x-3\pi /4\right)$ cannot. If $x-3\pi /4$ is written as $2N\pi +\theta$ where $N$ is an integer and $0\le \theta <2\pi$, then $\mathrm{cos}\left(x-3\pi /4\right)$ is determined by $\theta$ only. If $x\gtrsim {\delta }^{-1}$, $\theta$ cannot be determined with any accuracy at all. Thus if $x$ is greater than, or of the order of, machine precision, it is impossible to calculate the phase of ${J}_{1}\left(x\right)$ and the function must fail.

None.

9  Example

The following program reads values of the argument $x$ from a file, evaluates the function at each value of $x$ and prints the results.

9.1  Program Text

Program Text (s17afce.c)

9.2  Program Data

Program Data (s17afce.d)

9.3  Program Results

Program Results (s17afce.r)

nag_bessel_j1 (s17afc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual