Rev 13294 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{integrate}\alias{integrate}\alias{print.integrate}\title{Integration of One-Dimensional Functions}\description{Adaptive quadrature of functions of one variable over a finit orinfinite interval.}\usage{integrate(f, lower, upper, subdivisions=100,rel.tol = .Machine$double.eps^0.25, abs.tol = rel.tol,stop.on.error = TRUE, keep.xy = FALSE, aux = NULL, ...)}\arguments{\item{f}{An \R function taking a numeric first argument and returninga numeric vector the same length. Returning a non-finite willgenerate an error.}\item{lower, upper}{The limits of integration. Can be infinite.}\item{subdivisions}{the maximum number of subintervals.}\item{rel.tol}{relative accuracy requested.}\item{abs.tol}{absolute accuracy requested.}\item{stop.on.error}{logical. If true (the default) an error stops thefunction. If false some errors will give a result with a warning inthe \code{message} component.}\item{keep.xy}{unused. For compatibility with S.}\item{aux}{unused. For compatibility with S.}\item{\dots}{additional arguments to be passes to \code{f}.}}\details{If one or both limits are infinite, theinfinite range is mapped onto a finite interval.For a finite interval, globally adaptive interval subdivision is usedin connection with extrapolation by the Epsilon algorithm.\code{rel.tol} cannot be less than \code{max(50*.Machine$double.eps,0.5e-28)} if \code{abs.tol <= 0}.}\value{A list of class \code{"integrate"} with components\item{value}{the final estimate of the integral.}\item{abs.error}{estimate of the modulus of the absolute error.}\item{subdivisions}{the number of subintervals produced in thesubdivision process.}\item{message}{\code{"OK"} or a character string giving the error message.}\item{call}{the matched call.}}\references{Based on QUADPACK routines \code{dqags} and \code{dqagi} byR. Piessens and E. deDoncker-Kapenga, available from Netlib.See\\R. Piessens, E. deDoncker-Kapenga, C. Uberhuber, D. Kahaner\emph{Quadpack: a Subroutine Package for Automatic Integration.}Springer Verlag, 1983.}\examples{integrate(dnorm, -1.96, 1.96)integrate(dnorm, -Inf, Inf)## a slowly-convergent integralintegrand <- function(x) {1/((x+1)*sqrt(x))}integrate(integrand, lower = 0, upper = Inf)integrate(integrand, lower = 0, upper = 10)integrate(integrand, lower = 0, upper = 100000)integrate(integrand, lower = 0, upper = 1000000, stop.on.error = FALSE)try(integrate(function(x) 2, 0, 1)) ## no vectorizable functionintegrate(function(x) rep(2, length(x)), 0, 1) ## correct}\keyword{math}\keyword{utilities}