nag_kelvin_ker (s19acc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual

NAG Library Function Document

nag_kelvin_ker (s19acc)

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

nag_kelvin_ker (s19acc) returns a value for the Kelvin function kerx .

2  Specification

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

3  Description

nag_kelvin_ker (s19acc) evaluates an approximation to the Kelvin function kerx .
The function is based on several Chebyshev expansions.
For large x , kerx  is so small that it cannot be computed without underflow and the function evaluation fails.

4  References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

5  Arguments

1:     xdoubleInput
On entry: the argument x  of the function.
Constraint: x>0 .
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, x=value.
Constraint: xvalue.
x is too large, the result underflows and the function returns zero.
NE_REAL_ARG_LE
On entry, x must not be less than or equal to 0.0: x=value .
The function is undefined and returns zero.

7  Accuracy

Let E  be the absolute error in the result, ε  be the relative error in the result and δ  be the relative error in the argument. If δ  is somewhat larger than the machine precision, then we have E x ker 1 x + kei 1 x / 2 δ , ε x ker 1 x + kei 1 x / 2 kerx δ .
For very small x , the relative error amplification factor is approximately given by 1 / logx , which implies a strong attenuation of relative error. However, ε  in general cannot be less than the machine precision.
For small x , errors are damped by the function and hence are limited by the machine precision.
For medium and large x , the error behaviour, like the function itself, is oscillatory, and hence only the absolute accuracy for the function can be maintained. For this range of x , the amplitude of the absolute error decays like π x / 2 e - x / 2  which implies a strong attenuation of error. Eventually, kerx , which asymptotically behaves like π / 2 x e - x / 2 , becomes so small that it cannot be calculated without causing underflow, and the function returns zero. Note that for large x  the errors are dominated by those of the math library function exp.

8  Further Comments

Underflow may occur for a few values of x  close to the zeros of kerx , which causes a failure NE_REAL_ARG_GT.

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

9.2  Program Data

Program Data (s19acce.d)

9.3  Program Results

Program Results (s19acce.r)


nag_kelvin_ker (s19acc) (PDF version)
s Chapter Contents
s Chapter Introduction
NAG C Library Manual

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