Adaptive Lobatto Quadrature
Adaptive quadrature of functions of one variable over a finite interval.
quadl(f, xa, xb, tol = .Machine$double.eps^0.5, trace = FALSE, ...)
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 |
Realizes adaptive Lobatto quadrature in R through recursive calls.
The function f
needs to be vectorized though this could be changed
easily.
A single numeric value, the computed integral.
Compared to Gaussian quadrature, Lobatto integration include the end points of the integration interval. It is accurate for polynomials up to degree 2n-3, where n is the number of integration points.
Copyright (c) 1998 Walter Gautschi for the Matlab version published as part of the referenced article. R implementation by Hans W Borchers 2011.
Gander, W. and W. Gautschi (2000). “Adaptive Quadrature — Revisited”. BIT, Vol. 40, 2000, pp. 84-101.
# options(digits=15) f <- function(x) x * cos(0.1*exp(x)) * sin(0.1*pi*exp(x)) quadl(f, 0, 4) # 1.2821290743501 integrate(f, 0, 4) # 1.28212907435010 with absolute error < 4.1e-06 ## Not run: xx <- seq(0, 4, length.out = 200) yy <- f(xx) plot(xx, yy, type = 'l') grid() ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.