hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_quad_1d_fin_smooth (d01bd)

Purpose

nag_quad_1d_fin_smooth (d01bd) calculates an approximation to the integral of a function over a finite interval [a,b][a,b]:
b
I = f(x)dx.
a
I= ab f(x) dx .
It is non-adaptive and as such is recommended for the integration of ‘smooth’ functions. These exclude integrands with singularities, derivative singularities or high peaks on [a,b][a,b], or which oscillate too strongly on [a,b][a,b].

Syntax

[result, abserr] = d01bd(f, a, b, epsabs, epsrel)
[result, abserr] = nag_quad_1d_fin_smooth(f, a, b, epsabs, epsrel)

Description

nag_quad_1d_fin_smooth (d01bd) is based on the QUADPACK routine QNG (see Piessens et al. (1983)). It is a non-adaptive function which uses as its basic rules, the Gauss 1010-point and 2121-point formulae. If the accuracy criterion is not met, formulae using 4343 and 8787 points are used successively, stopping whenever the accuracy criterion is satisfied.
This function is designed for smooth integrands only.

References

Patterson T N L (1968) The Optimum addition of points to quadrature formulae Math. Comput. 22 847–856
Piessens R, de Doncker–Kapenga E, Überhuber C and Kahaner D (1983) QUADPACK, A Subroutine Package for Automatic Integration Springer–Verlag

Parameters

Compulsory Input Parameters

1:     f – function handle or string containing name of m-file
f must return the value of the integrand ff at a given point.
[result] = f(x)

Input Parameters

1:     x – double scalar
The point at which the integrand ff must be evaluated.

Output Parameters

1:     result – double scalar
The result of the function.
2:     a – double scalar
aa, the lower limit of integration.
3:     b – double scalar
bb, the upper limit of integration. It is not necessary that a < ba<b.
4:     epsabs – double scalar
The absolute accuracy required. If epsabs is negative, the absolute value is used. See Section [Accuracy].
5:     epsrel – double scalar
The relative accuracy required. If epsrel is negative, the absolute value is used. See Section [Accuracy].

Optional Input Parameters

None.

Input Parameters Omitted from the MATLAB Interface

None.

Output Parameters

1:     result – double scalar
The approximation to the integral II.
2:     abserr – double scalar
An estimate of the modulus of the absolute error, which should be an upper bound for |Iresult||I-result|.

Error Indicators and Warnings

There are no specific errors detected by nag_quad_1d_fin_smooth (d01bd). However, if abserr is greater than
max {epsabs,epsrel × |result|}
max{epsabs,epsrel×|result|}
this indicates that the function has probably failed to achieve the requested accuracy within 8787 function evaluations.

Accuracy

nag_quad_1d_fin_smooth (d01bd) attempts to compute an approximation, result, such that:
|Iresult| tol ,
|I-result| tol ,
where
tol = max {|epsabs|,|epsrel| × |I|} ,
tol = max{ |epsabs| , |epsrel| × |I| } ,
and epsabs and epsrel are user-specified absolute and relative error tolerances. There can be no guarantee that this is achieved, and you are advised to subdivide the interval if you have any doubts about the accuracy obtained. Note that abserr contains an estimated bound on |Iresult||I-result|.

Further Comments

The time taken by nag_quad_1d_fin_smooth (d01bd) depends on the integrand and the accuracy required.

Example

function nag_quad_1d_fin_smooth_example
f = @(x) x^2*sin(10*pi*x);
a = 0;
b = 1;
epsabs = 0;
epsrel = 0.0001;
[result, abserr] = nag_quad_1d_fin_smooth(f, a, b, epsabs, epsrel)
 

result =

   -0.0318


abserr =

   1.3443e-11


function d01bd_example
f = @(x) x^2*sin(10*pi*x);
a = 0;
b = 1;
epsabs = 0;
epsrel = 0.0001;
[result, abserr] = d01bd(f, a, b, epsabs, epsrel)
 

result =

   -0.0318


abserr =

   1.3443e-11



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013