Fundamental Theorem Calculus
Recall that Calculus is about solving the differential equation du/dt = f(t) by time stepping in the form du = f(t)*dt or
- u(t+dt) = u(t) + f(t)*dt (1)
starting at initial time t = 0 with u(0) given, where f(t) is given function of the variable t and dt a time step, which produces the values u(dt), u(2*dt), u(3*dt),…, u(N*dt), up to any final time T = N*dt after N time steps. We say that (1) represents Euler Forward with f(t) evaluated at the beginning of the time step from t t0 t+dt. Repeating (1) we get, assuming u(0) = 0,
- u(dt) = f(0)*dt,
- u(2*dt) = f(0)*dt + f(dt)*dt,
- u(N*dt) = f(0)*dt + f(dt)*dt + f(2*dt)*dt +…+f((N-1)*dt)*dt,
that is with summation notation and T = N*dt,
The Fundamental Theorem of Calculus states that computing with time steps dt decreasing to zero (with the number of time steps N = T/dt increasing) produces a unique solution u(T) at any given final time T named the integral of f(t) and denoted by u(T) = ∫ du = ∫ f(t)*dt, or more precisely
where the integral sign ∫ represents the summation in (2) of the values f(n*dt) of the integrand f(t) multiplied by the time step dt and the integration variable t ranges from 0 to T.
We here assume that f(t) is Lipschitz continuous satisfying for all t and s, |f(t) – f(s)| < L*|t – s| with L a Lipschitz constant.
By construction (1) we have du = u(t+dt)-u(t) = f(t)*dt , which by formally dividing by dt we write as du/dt = f(t) with du/dt the derivative of u. Given a function f(t) we have thus constructed by time stepping a function u(t) as the integral of f(t) with derivative du/dt = f(t). We thus start from f(t) and find a function u(t) = ∫ f(t)*dt which by construction has the derivative du/dt = f(t).
To prove the Fundamental Theorem (compare alternate version), we now study the dependence of u(T) on the time step dt , by decreasing dt successively by a factor of 2. The key observation is to see that the absolute value of the difference between one step with time step dt and two steps with time step dt/2, equals (see hint below + illustrate in picture):
- |(f(t)-f(t+dt/2))*dt/2| < L*dt*dt/4
and so the difference in the corresponding value of u(T) after T/dt steps is bounded by
Conclude by repeated reduction of dt by a factor of 2, that the difference in the value of u(T) (the error in computed value) is bounded by (compare with Session 6)
- T*L*dt*(1 + 1/2 + 1/4 + 1/8…)/4 < T*L*dt/2 (4)
We conclude that Euler Forward is first order accurate since the power of dt is one.
Verify (4) by computation.
Show that Midpoint Euler:
- u(t+dt) = u(t) + f(t+dt/2)*dt
is second order accurate. Verify by computation.
Hint: Let U be computed with time step dt and u with time step dt. We have starting at time t:
- U(t+dt) = U(t) + f(t)*dt
- u(t+dt) = u(t) + f(t)*dt/2 + f(t+dt/2)*dt
- |u(t+dt) – U(t+dt)| ≤ |u(t) – U(t)|+ |(f(t)-f(t+dt/2))*dt/2|
showing that the contribution to U(T) – u(T) from time step t to t + dt, is bounded by L*dt*dt/4 .