# NAG Library Function Documentnag_bessel_y1 (s17adc)

## 1  Purpose

nag_bessel_y1 (s17adc) returns the value of the Bessel function ${Y}_{1}\left(x\right)$.

## 2  Specification

#include <nag.h>
#include <nags.h>

double  nag_bessel_y1 (double x,  NagError *fail)

## 3  Description

nag_bessel_y1 (s17adc) evaluates the Bessel function of the second kind, ${Y}_{1}$, $x>0$.
The approximation is based on Chebyshev expansions.
For $x$ near zero, ${Y}_{1}\left(x\right)\simeq -2/\pi x$. This approximation is used when $x$ is sufficiently small for the result to be correct to machine precision. For extremely small $x$, there is a danger of overflow in calculating $-2/\pi x$ and for such arguments the function will fail.
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}_{1}\left(x\right)$, only the amplitude, $\sqrt{2/\pi x}$, can be determined and this is returned. The range for which this occurs is roughly related to machine precision; the function will fail if $x\gtrsim 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:     x – doubleInput
On entry: the argument $x$ of the function.
Constraint: ${\mathbf{x}}>0.0$.
2:     fail – NagError *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 ${Y}_{1}$ oscillation, $\sqrt{2/\pi x}$.
NE_REAL_ARG_LE
On entry, x must not be less than or equal to 0.0: ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
${Y}_{1}$ is undefined, the function returns zero.
NE_REAL_ARG_TOO_SMALL
On entry, x must be greater than $〈\mathit{\text{value}}〉$: ${\mathbf{x}}=〈\mathit{\text{value}}〉$.
x is too close to zero, there is a danger of overflow, the function returns the value of ${Y}_{1}\left(x\right)$ at the smallest valid argument.

## 7  Accuracy

Let $\delta $ be the relative error in the argument and $E$ be the absolute error in the result. (Since ${Y}_{1}\left(x\right)$ oscillates about zero, absolute error and not relative error is significant, except for very small $x$.)
If $\delta $ is somewhat larger than the machine precision (e.g., if $\delta $ is due to data errors etc.), then $E$ and $\delta $ are approximately related by: $E\simeq \left|{xY}_{0}\left(x\right)-{Y}_{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 small $x$, absolute error becomes large, but the relative error in the result is of the same order as $\delta $.
For very large $x$, the above relation ceases to apply. In this region, ${Y}_{1}\left(x\right)\simeq 2\mathrm{sin}\left(x-3\pi /4\right)/\pi x$. The amplitude $2/\pi x$ can be calculated with reasonable accuracy for all $x$, but $\mathrm{sin}\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{sin}\left(x-3\pi /4\right)$ is determined by $\theta $ only. If $x>{\delta }^{-1}$, $\theta $ cannot be determined with any accuracy at all. Thus if $x$ is greater than, or of the order of, the inverse of the machine precision, it is impossible to calculate the phase of ${Y}_{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 (s17adce.c)

### 9.2  Program Data

Program Data (s17adce.d)

### 9.3  Program Results

Program Results (s17adce.r)
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 54, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.6822423934936523, "perplexity_flag": "middle"}