Computes the integral of Y with respect to X using trapezoid rule integration.

trapz(x, y)

Arguments

x

Sorted vector of x-axis values.

y

Vector of y-axis values.

Details

The function has only two lines:


    idx = 2:length(x)
    return (as.double( (x[idx] - x[idx-1]) %*% (y[idx] + y[idx-1])) / 2)
  

Value

Integral of Y with respect to X or area under the Y curve.

Note

Trapezoid rule is not the most accurate way of calculating integrals (it is exact for linear functions), for example Simpson's rule (exact for linear and quadratic functions) is more accurate.

Author

Jarek Tuszynski (SAIC) jaroslaw.w.tuszynski@saic.com

References

D. Kincaid & W. Chaney (1991), Numerical Analysis, p.445

Examples

  # integral of sine function in [0, pi] range suppose to be exactly 2.
  # lets calculate it using 10 samples:
  x = (1:10)*pi/10
  trapz(x, sin(x))
#> [1] 1.934983
  # now lets calculate it using 1000 samples:
  x = (1:1000)*pi/1000
  trapz(x, sin(x))
#> [1] 1.999993