Approaches to Numerical Methods for ODEs

#Numerical Analysis

Updated: July 16, 2026

This note introduces numerical methods for the initial value problem (IVP) of ordinary differential equations (ODEs), organized by the approach each one comes from. The list is not exhaustive, and different approaches sometimes lead to the same method, but grouping them this way makes the underlying ideas easier to follow.

Numerical Approaches to the Initial Value Problem

Let yy be a function of time with y(t)∈RNy(t)\in\mathbb{R}^N. Given the differential equation dydt=f(t,y)\frac{dy}{dt} = f(t, y) together with an initial value y(t0)=y0\quad y(t_0) = y_0, the problem of finding y(t)y(t) is called the initial value problem (IVP). The approaches to solving it numerically are listed below. Time is discretized as tn=t0+nht_n = t_0 + nh, and yn+1y_{n+1} is computed from yn(=y(tn))y_n(=y(t_n)). Here hh is the step size, often taken to be a small value such as 10−310^{-3}.
Throughout, yy denotes the exact solution and uu denotes the numerical solution.

1. Approximating by Taylor Expansion

This approach approximates y(t)y(t) using the Taylor expansion

y(tn+1)=yn+f(tn,yn)(tn+1−tn)⏟=h+12f′(tn,yn)(tn+1−tn)2⏟=h2+⋯ .y(t_{n+1}) = y_n + f(t_n, y_n)\underbrace{(t_{n+1} - t_n)}_{=h} + \frac{1}{2}f'(t_n, y_n)\underbrace{(t_{n+1} - t_n)^2}_{=h^2} + \cdots.

Dropping the higher-order terms gives an approximation of y(t)y(t) in terms of the right-hand side ff of the differential equation and its derivatives.

  • Truncating at first order gives un+1=un+hf(tn,un),u_{n+1} = u_n + h f(t_n, u_n), which is the method known as the Euler method. Since it approximates un+1u_{n+1} linearly using only f(tn,un)f(t_n, u_n), the algorithm and its implementation are simple, but both accuracy and stability are low, as discussed later.

  • Truncating at second order gives un+1=un+hf(tn,un)+h22f′(tn,un),u_{n+1} = u_n + h f(t_n, u_n) + \frac{h^2}{2}f'(t_n, u_n), which requires computing

    f′(tn,un)=∂f∂t(tn,un)+∂f∂u(tn,un)dudt⏟=f(tn,un)(chain rule).f'(t_n, u_n) = \frac{\partial f}{\partial t}(t_n, u_n) + \frac{\partial f}{\partial u}(t_n, u_n)\underbrace{\frac{du}{dt}}_{=f(t_n, u_n)} \quad \text{(chain rule)}.

    Here Df(t0,u0)Df(t_0, u_0) is the Jacobian matrix of ff with respect to uu. Putting this together,

    un+1≈un+hf(tn,un)+h22(∂f∂t(tn,un)+Df(tn,un)f(tn,un)),u_{n+1} \approx u_n + h f(t_n, u_n) + \frac{h^2}{2}\left(\frac{\partial f}{\partial t}(t_n, u_n) + Df(t_n, u_n)f(t_n, u_n)\right),

    but computing the Jacobian is often expensive, so this is not a popular method.

2. Approximating the Integral Equation by Quadrature

Rewriting the differential equation as an integral equation gives

yn+1=yn+∫tntn+1f(t,y(t))dt.y_{n+1} = y_n + \int_{t_n}^{t_{n+1}} f(t, y(t)) dt.

This approach approximates the integral by a quadrature rule.

  • Forward Euler method Using ∫abg(t)dt≈(b−a)g(a)\int^b_a g(t) dt \approx (b-a)g(a) gives un+1=un+hf(tn,un),u_{n+1} = u_n + h f(t_n, u_n), the same formula as the Euler method obtained above from the first-order Taylor expansion.
  • Backward Euler method Using ∫abg(t)dt≈(b−a)g(b)\int^b_a g(t) dt \approx (b-a)g(b) gives un+1=un+hf(tn+1,un+1).u_{n+1} = u_n + h f(t_{n+1}, u_{n+1}). This is also a first-order approximation, and since un+1u_{n+1} appears on both sides, a nonlinear equation has to be solved.
    A method in which the unknown un+1u_{n+1} appears on the right-hand side like this is called an implicit method. A method in which the unknown does not appear on the right-hand side, such as Forward Euler, is called an explicit method. Implicit methods have better stability, but solving the nonlinear equation often makes them computationally expensive. For example, one solves F(un+1)=un+1−un−hf(tn+1,un+1)=0F(u_{n+1}) = u_{n+1} - u_n - h f(t_{n+1}, u_{n+1}) = 0 by Newton’s method. Stability is high, but so is the cost.
  • Trapezoidal rule Using the trapezoidal rule ∫abg(t)dt≈b−a2(g(a)+g(b))\int^b_a g(t) dt \approx \frac{b-a}{2}(g(a) + g(b)) gives un+1=un+h2(f(tn,un)+f(tn+1,un+1)).u_{n+1} = u_n + \frac{h}{2}(f(t_n, u_n) + f(t_{n+1}, u_{n+1})). This is a second-order approximation. Since un+1u_{n+1} appears on both sides, a nonlinear equation must be solved with Newton’s method or similar, but stability is high (though lower than Backward Euler).
  • Midpoint method Using ∫abg(t)dt≈(b−a)g(a+b2)\int^b_a g(t) dt \approx (b-a)g\left(\frac{a+b}{2}\right) gives un+1=un+hf(tn+h2,u(tn+h2)⏟?).u_{n+1} = u_n + h f\left(t_n + \frac{h}{2}, \underbrace{u(t_n + \frac{h}{2})}_{?}\right). Since u(tn+h2)u(t_n + \frac{h}{2}) is unknown, it is replaced by something like un+un+12\frac{u_n + u_{n+1}}{2}. This yields un+1=un+hf(tn+h2,un+un+12),u_{n+1} = u_n + h f\left(t_n + \frac{h}{2}, \frac{u_n + u_{n+1}}{2}\right), which again requires solving a nonlinear equation, but has high stability (though lower than Backward Euler).

3. Predictor-Corrector Methods

The methods above require solving a nonlinear equation because un+1u_{n+1} also appears on the right-hand side. Predictor-corrector methods remove that need by replacing the un+1u_{n+1} on the right-hand side with an approximation, such as an Euler step, built from known values like unu_n. Some examples follow.

Midpoint Method with an Euler Predictor

Approximating the midpoint with the Euler method,

un+12=un+h2f(tn,un)u_{n+\frac{1}{2}} = u_n + \frac{h}{2}f(t_n, u_n)

makes the update formula

un+1=un+hf(tn+h2,un+12)u_{n+1} = u_n + h f\left(t_n + \frac{h}{2}, u_{n+\frac{1}{2}}\right)

explicit.

Trapezoidal Rule with an Euler Predictor

Approximating the un+1u_{n+1} on the right-hand side with the Euler method,

un+1∗=un+hf(tn,un)u^*_{n+1} = u_n + h f(t_n, u_n)

makes the update formula

un+1=un+h2(f(tn,un)+f(tn+1,un+1∗))u_{n+1} = u_n + \frac{h}{2}(f(t_n, u_n) + f(t_{n+1}, u^*_{n+1}))

explicit.

Four-Stage Fourth-Order Runge-Kutta Method

Starting from Simpson’s rule

∫abg(t)dt≈b−a6(g(a)+4g(a+b2)+g(b)),\int^b_a g(t) dt \approx \frac{b-a}{6}(g(a) + 4g\left(\frac{a+b}{2}\right) + g(b)),

both step n+1/2n+1/2 and step n+1n+1 are approximated by predictors to make the method explicit. The update formula is

k1=f(tn,un)k2=f(tn+h2,un+h2k1)(≈f(u(tn+h2)))k3=f(tn+h2,un+h2k2)(≈f(u(tn+h2)))k4=f(tn+h,un+hk3)(≈f(u(tn+h)))un+1=un+h6(k1+2k2+2k3+k4).\begin{aligned} k_1 &= f(t_n, u_n) \\ k_2 &= f\left(t_n + \frac{h}{2}, u_n + \frac{h}{2}k_1\right) \quad \left(\approx f\left(u\left(t_n + \frac{h}{2}\right)\right)\right)\\ k_3 &= f\left(t_n + \frac{h}{2}, u_n + \frac{h}{2}k_2\right) \quad \left(\approx f\left(u\left(t_n + \frac{h}{2}\right)\right)\right)\\ k_4 &= f(t_n + h, u_n + hk_3) \quad \left(\approx f\left(u\left(t_n + h\right)\right)\right)\\ u_{n+1} &= u_n + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4). \end{aligned}

This is a fourth-order approximation with good stability, but it costs more than the lower-order methods above.

4. Approximating by Polynomial Interpolation at Mesh Points

So far, every method computed un+1u_{n+1} from unu_n alone (raising the order by interpolating intermediate points). There are also multistep methods that use earlier points such as un−1,un−2,⋯u_{n-1}, u_{n-2},\cdots. This section covers the Adams methods and BDF, the representative linear multistep methods derived from polynomial interpolation.

Adams Methods

Adams methods build a polynomial p(t)p(t) interpolating the values fn,fn−1,⋯f_n, f_{n-1}, \cdots of the right-hand side ff at tn,tn−1,⋯t_n, t_{n-1}, \cdots, and integrates it as

yn+1=yn+∫tntn+1p(t)dt.y_{n+1} = y_n + \int_{t_n}^{t_{n+1}} p(t) dt.

The explicit version is the Adams-Bashforth method, and the implicit version, which also uses fn+1f_{n+1}, is the Adams-Moulton method.

  • The Adams-Bashforth method uses the Newton interpolation polynomial. First, the divided differences are defined as f[tn,tn−1]=fn−fn−1tn−tn−1f[tn,tn−1,tn−2]=f[tn,tn−1]−f[tn−1,tn−2]tn−tn−2.\begin{aligned} f[t_n, t_{n-1}] &= \frac{f_n - f_{n-1}}{t_n - t_{n-1}} \\ f[t_n, t_{n-1}, t_{n-2}] &= \frac{f[t_n, t_{n-1}] - f[t_{n-1}, t_{n-2}]}{t_n - t_{n-2}}. \end{aligned} That is, the divided difference f[tn,tn−1]f[t_n, t_{n-1}] is (change in ff) / (change in tt), and f[tn,tn−1,tn−2]f[t_n, t_{n-1}, t_{n-2}] is the divided difference of f[tn,tn−1]f[t_n, t_{n-1}] and f[tn−1,tn−2]f[t_{n-1}, t_{n-2}]. (Geometrically, these correspond to slope and curvature.) Using these, the Newton interpolation polynomial of ff is1 pk(t)=fn+f[tn,tn−1](t−tn)+f[tn,tn−1,tn−2](t−tn)(t−tn−1)+⋯+f[tn,tn−1,⋯ ,tn−k+1](t−tn)(t−tn−1)⋯(t−tn−k+1).\begin{aligned} p_k(t) = f_n + f[t_n, t_{n-1}](t - t_n) + f[t_n, t_{n-1}, t_{n-2}](t - t_n)(t - t_{n-1}) + \cdots\\ + f[t_n, t_{n-1}, \cdots, t_{n-k+1}](t - t_n)(t - t_{n-1})\cdots(t - t_{n-k+1}). \end{aligned} Integrating this, using the fact that the step size is a constant hh, gives the formula for un+1u_{n+1}. For example:
    • Two-step (k=2k=2) un+1=un+h2(3fn−fn−1).u_{n+1} = u_n + \frac{h}{2}(3f_n - f_{n-1}).
    • Three-step (k=3k=3) un+1=un+h12(23fn−16fn−1+5fn−2).u_{n+1} = u_n + \frac{h}{12}(23f_n - 16f_{n-1} + 5f_{n-2}).
  • The Adams-Moulton method is the implicit method that uses fn+1f_{n+1}. Its polynomial is pk(t)=fn+1+f[tn+1,tn](t−tn+1)+f[tn+1,tn,tn−1](t−tn+1)(t−tn)+⋯+f[tn+1,tn,⋯ ,tn−k+1](t−tn+1)(t−tn)⋯(t−tn−k+2).\begin{aligned} p_k(t) = f_{n+1} + f[t_{n+1}, t_n](t - t_{n+1}) + f[t_{n+1}, t_n, t_{n-1}](t - t_{n+1})(t - t_n) + \cdots\\ + f[t_{n+1}, t_n, \cdots, t_{n-k+1}](t - t_{n+1})(t - t_n)\cdots(t - t_{n-k+2}). \end{aligned} Integrating this with step size hh gives the formula for un+1u_{n+1}. For example:
    • Two-step (k=2k=2) un+1=un+h12(5fn+1+8fn−fn−1).u_{n+1} = u_n + \frac{h}{12}(5f_{n+1} + 8f_n - f_{n-1}).
    • Three-step (k=3k=3) un+1=un+h24(9fn+1+19fn−5fn−1+fn−2).u_{n+1} = u_n + \frac{h}{24}(9f_{n+1} + 19f_n - 5f_{n-1} + f_{n-2}).

Backward Differentiation Formula (BDF)

This is also polynomial interpolation, but it interpolates the numerical solution u(t)u(t) rather than the right-hand side ff of the differential equation (and includes un+1u_{n+1} among the nodes). The interpolating polynomial p(t)p(t) is differentiated and evaluated at tn+1t_{n+1}, giving the equation

p′(tn+1)=f(tn+1,un+1),p'(t_{n+1}) = f(t_{n+1}, u_{n+1}),

which is solved for un+1u_{n+1}. For the two-step method BDF2 (k=2k=2), for instance, one builds the polynomial p(t)p(t) through un+1,un,un−1u_{n+1}, u_n, u_{n-1} and differentiates it to get

p′(tn+1)=3un+1−4un+un−12h.p'(t_{n+1}) = \frac{3u_{n+1} - 4u_n + u_{n-1}}{2h}.

Therefore un+1u_{n+1} is obtained by solving

3un+1−4un+un−12h=f(tn+1,un+1).\frac{3u_{n+1} - 4u_n + u_{n-1}}{2h} = f(t_{n+1}, u_{n+1}).

BDF methods have high stability, but require solving a nonlinear equation.

5. Method of Undetermined Coefficients

Linear multistep methods (LMMs), including the Adams family and BDF, are written in the general form

un+1+α0un+⋯+αk−1un−k+1=h(β−1fn+1+β0fn+⋯+βk−1fn−k+1),u_{n+1} + \alpha_0 u_n + \cdots + \alpha_{k-1} u_{n-k+1} = h (\beta_{-1} f_{n+1} + \beta_0 f_n + \cdots + \beta_{k-1} f_{n-k+1}),

where αi,βi\alpha_i, \beta_i are coefficients specific to each method. Approach 4 obtained the coefficients by integrating or differentiating an interpolating polynomial. The method of undetermined coefficients instead assumes this form from the start and determines αi,βi\alpha_i, \beta_i by expanding u(t)u(t) in a Taylor series about tnt_n.

Classifying the Methods

The approaches above can be grouped from several points of view.

  1. Explicit and implicit:
    • Explicit: methods where un+1u_{n+1} does not appear on the right-hand side of un+1=…u_{n+1}= \ldots are cheap to compute but less stable.
    • Implicit: methods that require solving an equation with Newton’s method or similar at every step are expensive but more stable.
  2. One-step and multistep:
    • One-step: un+1u_{n+1} is computed from unu_n alone. Stability is high.
    • Multistep: un+1u_{n+1} is computed using earlier points such as un−1,un−2,⋯u_{n-1}, u_{n-2}, \cdots as well. Efficient, but less stable. As an aside, multistep methods need a one-step method to produce the starting values for the first few steps.
  3. Linear and nonlinear:
    • Linear: un+1u_{n+1} is expressed as a linear combination of past values of uu. This includes linear multistep methods such as the Adams methods and BDF.
    • Nonlinear: methods that use predictors, such as Runge-Kutta, feed values of ff back into the arguments of ff, and are therefore nonlinear in general.

References

Footnotes

  1. The Lagrange interpolation polynomial is equivalent, but as the number of points kk grows, the Lagrange form requires updating every coefficient, whereas the Newton form only needs a new higher-order term appended to the existing polynomial. ↩

Comments