Learn R Programming

pracma (version 1.7.0)

quad: Adaptive Simpson Quadrature

Description

Adaptive quadrature of functions of one variable over a finite interval.

Usage

quad(f, xa, xb, tol = .Machine$double.eps^0.5, trace = FALSE, ...)

Arguments

f
a one-dimensional function; needs to be vectorized.
xa
lower limit of integration; must be finite
xb
upper limit of integration; must be finite
tol
accuracy requested.
trace
logical; shall a trace be printed?
...
additional arguments to be passed to f.

Value

  • A single numeric value, the computed integral.

Details

Realizes adaptive Simpson quadrature in R through recursive calls.

The function f needs to be vectorized though this could be changed easily. quad is not suitable for functions with singularities in the interval or at end points.

References

Gander, W. and W. Gautschi (2000). ``Adaptive Quadrature --- Revisited''. BIT, Vol. 40, 2000, pp. 84-101. http://www.inf.ethz.ch/personal/gander

See Also

integrate, quadl

Examples

Run this code
# options(digits=15)
f <- function(x) x * cos(0.1*exp(x)) * sin(0.1*pi*exp(x))
quad(f, 0, 4)              # 1.2821290747821
quad(f, 0, 4, tol=10^-15)  # 1.2821290743501
integrate(f, 0, 4)
# 1.28212907435010 with absolute error < 4.1e-06

xx <- seq(0, 4, length.out = 200)
yy <- f(xx)
plot(xx, yy, type = 'l')
grid()

Run the code above in your browser using DataLab