https://github.com/cran/pracma
Tip revision: c79a04b5074656b36e591191eb8137b70a349932 authored by Hans W. Borchers on 30 June 2014, 00:00:00 UTC
version 1.7.0
version 1.7.0
Tip revision: c79a04b
trapz.Rd
\name{trapz}
\alias{trapz}
\alias{cumtrapz}
\title{Trapezoidal Integration}
\description{
Compute the area of a function with values \code{y} at the points
\code{x}.
}
\usage{
trapz(x, y)
cumtrapz(x, y)
}
\arguments{
\item{x}{x-coordinates of points on the x-axis}
\item{y}{y-coordinates of function values}
}
\details{
The points \code{(x, 0)} and \code{(x, y)} are taken as vertices of a
polygon and the area is computed using \code{polyarea}. This approach
matches exactly the approximation for integrating the function using the
trapezoidal rule with basepoints \code{x}.
\code{cumtrapz} computes the cumulative integral of \code{y} with respect
to \code{x} using trapezoidal integration. \code{x} and \code{y} must be
vectors of the same length, or \code{x} must be a vector and \code{y} a
matrix whose first dimension is \code{length(x)}.
Inputs \code{x} and \code{y} can be complex.
}
\value{
Approximated integral of the function from \code{min(x)} to \code{max(x)}.
Or a matrix of the same size as \code{y}.
}
\seealso{
\code{\link{polyarea}}
}
\examples{
# Calculate the area under the sine curve from 0 to pi:
n <- 101
x <- seq(0, pi, len = n)
y <- sin(x)
trapz(x, y) #=> 1.999835504
# Use a correction term at the boundary: -h^2/12*(f'(b)-f'(a))
h <- x[2] - x[1]
ca <- (y[2]-y[1]) / h
cb <- (y[n]-y[n-1]) / h
trapz(x, y) - h^2/12 * (cb - ca) #=> 1.999999969
# Use two complex inputs
z <- exp(1i*pi*(0:100)/100)
ct <- cumtrapz(z, 1/z)
ct[101] #=> 0+3.14107591i
}
\keyword{ math }