https://github.com/cran/pracma
Raw File
Tip revision: 71455748623ef69836470c75c5f9384f6e872d45 authored by HwB on 28 June 2011, 00:00:00 UTC
version 0.6-3
Tip revision: 7145574
quad.Rd
\name{quad}
\alias{quad}
\title{
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{
  \item{f}{a one-dimensional function; needs to be vectorized.}
  \item{xa}{lower limit of integration; must be finite}
  \item{xb}{upper limit of integration; must be finite}
  \item{tol}{accuracy requested.}
  \item{trace}{logical; shall a trace be printed?}
  \item{\dots}{additional arguments to be passed to \code{f}.}
}
\details{
  Realizes adaptive Simpson quadrature in R through recursive calls.

  The function \code{f} needs to be vectorized though this could be changed
  easily. \code{quad} is not suitable for functions with singularities in the
  interval or at end points.
}
\value{
  A single numeric value, the computed integral.
}
\references{
  Gander, W. and W. Gautschi (2000). ``Adaptive Quadrature --- Revisited''.
  BIT, Vol. 40, 2000, pp. 84-101. \url{http://www.inf.ethz.ch/personal/gander}
}
\author{
  Copyright (c) 1998 Walter Gautschi for the Matlab version published as
  part of the referenced article. R implementation by Hans W Borchers 2011.
}
\note{
  More modern adaptive methods based on Gauss-Kronrod or Clenshaw-Curtis
  quadrature are now generally preferred.
}
\seealso{
\code{\link{integrate}}, \code{\link{quadl}}
}
\examples{
# 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

\dontrun{
xx <- seq(0, 4, length.out = 200)
yy <- f(xx)
plot(xx, yy, type = 'l')
grid()}
}
\keyword{ math }
back to top