nag_bessel_y0 (s17acc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_bessel_y0 (s17acc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_bessel_y0 (s17acc) returns the value of the Bessel function Y 0 x .

2  Specification

#include <nag.h>
#include <nags.h>
double  nag_bessel_y0 (double x, NagError *fail)

3  Description

nag_bessel_y0 (s17acc) evaluates the Bessel function of the second kind, Y 0 , x>0 .
The approximation is based on Chebyshev expansions.
For x  near zero, Y 0 x 2/π lnx/2 + γ , where γ  denotes Euler's constant. 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 Y 0 x ; only the amplitude, 2/x , can be determined and this is returned. The range for which this occurs is roughly related to the machine precision: the function will fail if x 1 /  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.
Constraint: x>0.0 .
2:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

6  Error Indicators and Warnings

On entry, x=value.
Constraint: xvalue.
x is too large, the function returns the amplitude of the Y 0  oscillation, 2 / π x .
On entry, x must not be less than or equal to 0.0: x=value .
Y 0  is undefined, the function returns zero.

7  Accuracy

Let δ  be the relative error in the argument and E  be the absolute error in the result. (Since Y 0 x  oscillates about zero, absolute error and not relative error is significant, except for very small x .)
If δ  is somewhat larger than the machine representation error (e.g., if δ  is due to data errors etc.), then E  and δ  are approximately related by E xY 1 x > δ  (provided E  is also within machine bounds).
However, if δ  is of the same order as the machine representation errors, then rounding errors could make E  slightly larger than the above relation predicts.
For very small x , the errors are essentially independent of δ  and the function should provide relative accuracy bounded by the machine precision.
For very large x , the above relation ceases to apply. In this region, Y 0 x 2 / π x sin x - π / 4 . The amplitude 2 / π x  can be calculated with reasonable accuracy for all x , but sin x - π / 4  cannot. If x - π / 4  is written as 2 N π + θ  where N  is an integer and 0 θ < 2 π , then sin x - π / 4  is determined by θ  only. If x δ -1 , θ  cannot be determined with any accuracy at all. Thus if x  is greater than, or of the order of the inverse of machine precision, it is impossible to calculate the phase of Y 0 x  and the function must fail.

8  Further Comments


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 (s17acce.c)

9.2  Program Data

Program Data (s17acce.d)

9.3  Program Results

Program Results (s17acce.r)

nag_bessel_y0 (s17acc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012