Skip to article frontmatterSkip to article content

Trapezoidal Rule

from pylab import *

1Single interval

Consider a function f:[a,b]Rf : [a,b] \to \re and let us approximate this by a polynomial of degree one, say p1(x)p_1(x). This can be obtained by interpolation

p1(a)=f(a),p1(b)=f(b)p_1(a) = f(a), \qquad p_1(b) = f(b)

Then the approximate integral is

I1(f)=abp1(x)dx=ba2[f(a)+f(b)]I_1(f) = \int_a^b p_1(x) \ud x = \frac{b-a}{2}[f(a) + f(b)]

Note that this is the area under the straight line curve p1(x)p_1(x) which has the shape of a trapezoid. To study the error in this approximation, we start with the error in interpolation

f(x)p1(x)=(xa)(xb)f[a,b,x]f(x) - p_1(x) = (x-a)(x-b) f[a,b,x]

Then

E1(f)=ab[f(x)p1(x)]dx=ab(xa)(xb)f[a,b,x]dx\begin{aligned} E_1(f) &= \int_a^b [f(x) - p_1(x)] \ud x \\ &= \int_a^b (x-a) (x-b) f[a,b,x] \ud x \end{aligned}

Using integral mean value theorem[1]

E1(f)=f[a,b,ξ]ab(xa)(xb)dx,for some ξ[a,b]E_1(f) = f[a,b,\xi] \int_a^b (x-a)(x-b) \ud x, \qquad \textrm{for some $\xi \in [a,b]$}

Finally, using the properties of divided differences

E1(f)=[12f(η)][16(ba)3],for some η[a,b]=112(ba)3f(η)\begin{aligned} E_1(f) &= \left[ \half f''(\eta) \right] \left[ -\frac{1}{6} (b-a)^3 \right], \qquad \textrm{for some $\eta \in [a,b]$} \\ &= -\frac{1}{12} (b-a)^3 f''(\eta) \end{aligned}

The error will be small only if bab-a is small.

2Composite trapezoidal rule

Divide [a,b][a,b] into nn equal intervals by the partition

a=x0<x1<<xn=bwith spacingh=bana = x_0 < x_1 < \ldots < x_n = b \qquad \textrm{with spacing} \qquad h = \frac{b-a}{n}

and

xj=a+jh,j=0,1,2,,nx_j = a + j h, \qquad j=0,1,2,\ldots, n

Let us use the Trapezoidal rule in each interval [xj1,xj][x_{j-1},x_j]

I(f)=abf(x)dx=j=1nxj1xjf(x)dxI(f) = \int_a^b f(x) \ud x = \sum_{j=1}^n \int_{x_{j-1}}^{x_j} f(x) \ud x

From the previous section, we know that

xj1xjf(x)dx=h2[f(xj1)+f(xj)]h312f(ηj),ηj[xj1,xj]\int_{x_{j-1}}^{x_j} f(x) \ud x = \frac{h}{2}[f(x_{j-1}) + f(x_j)] - \frac{h^3}{12}f''(\eta_j), \qquad \eta_j \in [x_{j-1}, x_j]

Hence

I(f)=j=1nh2[f(xj1)+f(xj)]j=1nh312f(ηj)=In(f)j=1nh312f(ηj)\begin{aligned} I(f) &= \sum_{j=1}^n \frac{h}{2}[f(x_{j-1}) + f(x_j)] - \sum_{j=1}^n \frac{h^3}{12}f''(\eta_j) \\ &= I_n(f) - \sum_{j=1}^n \frac{h^3}{12}f''(\eta_j) \end{aligned}

where

In(f)=h[12f0+f1+f2++fn1+12fn]I_n(f) = h [ \shalf f_0 + f_1 + f_2 + \ldots + f_{n-1} + \shalf f_n]

is the composite Trapezoidal rule. The error is

En(f)=I(f)In(f)=h312j=1nf(ηj)=nh3121nj=1nf(ηj)MnE_n(f) = I(f) - I_n(f) = - \frac{h^3}{12} \sum_{j=1}^n f''(\eta_j) = - \frac{n h^3}{12} \underbrace{\frac{1}{n} \sum_{j=1}^n f''(\eta_j)}_{M_n}

where

minx[a,b]f(x)min1jnf(ηj)Mnmax1jnf(ηj)maxx[a,b]f(x)\min_{x \in [a,b]} f''(x) \le \min_{1 \le j \le n} f''(\eta_j) \le M_n \le \max_{1 \le j \le n} f''(\eta_j) \le \max_{x \in [a,b]} f''(x)

If f(x)f''(x) is continuous, then it attains all values between the minimum and maximum.

    η[a,b]such thatMn=f(η)\implies \exists \eta \in [a,b] \qquad \textrm{such that} \qquad M_n = f''(\eta)

Hence, after using nh=banh=b-a, the error is given by

En(f)=112(ba)h2f(η),for some η[a,b]E_n(f) = - \frac{1}{12}(b-a) h^2 f''(\eta), \qquad \textrm{for some $\eta \in [a,b]$}

The error goes to zero as nn \to \infty since h0h \to 0.

3Asymptotic error estimate

We can estimate the error as

En(f)112(ba)h2maxx[a,b]f(x)|E_n(f)| \le \frac{1}{12}(b-a) h^2 \max_{x \in [a,b]}|f''(x)|

provided we can estimate the second derivative. A more useful error estimate can be derived as follows.

Using the error of the composite rule, we can compute the limit

limnEn(f)h2=112limnhj=1nf(ηj),ηj[xj1,xj]=112abf(x)dx=112[f(b)f(a)]\begin{aligned} \lim_{n \to \infty} \frac{E_n(f)}{h^2} &= - \frac{1}{12} \lim_{n \to \infty} h \sum_{j=1}^n f''(\eta_j), \qquad \eta_j \in [x_{j-1}, x_j] \\ &= -\frac{1}{12} \int_a^b f''(x) \ud x \\ &= -\frac{1}{12}[f'(b) - f'(a)] \end{aligned}

Hence for large nn

En(f)E~n(f):=h212[f(b)f(a)]E_n(f) \approx \tilde E_n(f) := -\frac{h^2}{12}[f'(b) - f'(a)]
Footnotes
  1. If gg does not change sign and ff is continuous, then abf(x)g(x)dx=f(c)abg(x)dx\int_a^b f(x) g(x)\ud x = f(c) \int_a^b g(x) \ud x for some c[a,b]c \in [a,b].