https://github.com/cran/pracma
Raw File
Tip revision: 138099729fa36cb6c4eaacac3037ea9105d6700a authored by Hans W. Borchers on 28 November 2013, 00:00:00 UTC
version 1.5.8
Tip revision: 1380997
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 }
back to top