Discretization¶
We consider the initial value problem:
where may be a vector. We assume is Lipschitz continuous, guaranteeing a unique solution.
The solution is a continuous function, but computers work with discrete data. We discretize the time interval into a lattice:
with step sizes . For simplicity, we often use uniform spacing .
A discretization method associates to each lattice a lattice function:
We store only the values —a finite amount of data representing the continuous solution.
The simplest methods replace derivatives with finite differences:
This immediately gives forward Euler: .
The Error Framework for ODEs¶
The concepts from our error analysis carry over directly:
| Concept | General Setting | ODE Numerics |
|---|---|---|
| Backward error | Residual | Local truncation error |
| Forward error | Global error | |
| Condition number | Sensitivity to perturbations | Lipschitz constant of |
| Stability | Backward stable algorithm | Absolutely stable method |
Every numerical method introduces local truncation error at each step—this is the backward error. The central question: does this error accumulate controllably, or does it explode?
The amplification factor depends on both the method (its stability properties) and the problem (the Lipschitz constant). A method is useful when errors remain bounded—this is the stability requirement, the ODE analog of backward stability.
For stiff problems, where eigenvalues span many orders of magnitude, explicit methods require impractically small step sizes for stability even when accuracy would permit larger steps. Implicit methods—the “backward stable” algorithms of ODE numerics—handle such problems gracefully.
The stiffness ratio can be understood as a condition number for method choice: it measures how ill-conditioned the “use an explicit method” approach is. When is large, the ratio of work required for stability versus work required for accuracy becomes enormous—this is the computational signature of stiffness.
Learning Outcomes¶
After completing this chapter, you should be able to (THIS NEEDS UPDATES):
L5.1: Derive and implement forward and backward Euler methods
L5.2: Compute local truncation error and determine consistency order
L5.3: Prove convergence of one-step methods using Lipschitz bounds
L5.4: Determine stability regions and identify A-stable methods
L5.5: Recognize stiff problems and explain why they require implicit methods
L5.6: Derive RK2 methods by matching Taylor series coefficients
L5.7: Implement adaptive time-stepping using embedded pairs