trapezoid <- function ( f, a, b, m = 100 ) #*****************************************************************************80 # ## trapezoid() estimates an integral using the trapezoid rule. # # Licensing: # # Copyright 2016 James P. Howard, II # # The computer code and data files on this web page are distributed under # https://opensource.org/licenses/BSD-2-Clause, the BSD-2-Clause license. # # Modified: # # 26 April 2021 # # Author: # # Original R code by James Howard; # Modifications by John Burkardt. # # Reference: # # James Howard, # Computational Methods for Numerical Analysis with R, # CRC Press, 2017 # ISBN13: 978-1-4987-2363-3. # { x <- seq ( a, b, length.out = m + 1 ) y <- f ( x ) area = sum ( ( y[2:(m+1)] + y[1:m] ) ) area <- area * abs ( b - a ) / 2.0 / m return ( area ) }