Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Big Idea

Backward Euler evaluates ff at the next time step instead of the current one, making it implicit: un+1u_{n+1} appears on both sides, requiring a solve at each step. This extra cost buys unconditional stability: the method is stable for any step size when Re(λ)<0\operatorname{Re}(\lambda) < 0. For stiff problems, where explicit methods waste enormous effort satisfying stability constraints, this is essential.


Derivation

Integrate u=f(t,u)u' = f(t,u) over one time step:

u(tn+1)=u(tn)+tntn+1f(s,u(s))dsu(t_{n+1}) = u(t_n) + \int_{t_n}^{t_{n+1}} f(s, u(s))\,ds

Forward Euler (Definition 1) approximates this integral by freezing the integrand at the left endpoint tnt_n (a left rectangle rule). Backward Euler freezes it at the right endpoint tn+1t_{n+1} instead:

tntn+1f(s,u(s))dshf(tn+1,u(tn+1))\int_{t_n}^{t_{n+1}} f(s, u(s))\,ds \approx h\,f(t_{n+1}, u(t_{n+1}))

This gives the backward Euler (or implicit Euler) method:

Definition 1 (Backward Euler Method)

un+1=un+hf(tn+1,un+1)u_{n+1} = u_n + h f(t_{n+1}, u_{n+1})

The value un+1u_{n+1}, the next approximation of the solution, appears on both sides: it is defined implicitly as the solution to

un+1unhf(tn+1,un+1)=0u_{n+1} - u_n - h f(t_{n+1}, u_{n+1}) = 0

The Cost of Implicitness

Each step of backward Euler requires solving an equation for un+1u_{n+1}.

Linear problems. For f(t,u)=λu+g(t)f(t, u) = \lambda u + g(t), we can solve algebraically:

un+1=un+h(λun+1+g(tn+1))    un+1=un+hg(tn+1)1hλu_{n+1} = u_n + h(\lambda u_{n+1} + g(t_{n+1})) \quad\implies\quad u_{n+1} = \frac{u_n + hg(t_{n+1})}{1 - h\lambda}

No iteration needed.

Nonlinear problems. For general ff, we must solve the nonlinear equation

G(un+1)=un+1unhf(tn+1,un+1)=0G(u_{n+1}) = u_{n+1} - u_n - hf(t_{n+1}, u_{n+1}) = 0

at every time step, using any of the root-finding methods from the nonlinear equations chapter (e.g., Newton’s method or a fixed-point iteration). The previous time step unu_n provides a natural initial guess, and for small hh convergence is typically rapid (1--2 iterations).

See the Euler’s method notebook for an interactive implementation.


Error Analysis and Convergence

Following the same analysis as for forward Euler, we obtain the same accuracy order.

Theorem 1 (Local Truncation Error of Backward Euler)

For backward Euler applied to u=f(t,u)u' = f(t,u) with uC2u \in C^2, the local truncation error is

τn=h2u(tn+1)+O(h2)=O(h)\tau_n = -\frac{h}{2}u''(t_{n+1}) + O(h^2) = O(h)

Backward Euler has consistency order p=1p = 1.

Proof 1

Taylor expand the exact solution about tn+1t_{n+1} (not tnt_n, since backward Euler evaluates ff at the next time step):

u(tn)=u(tn+1)hu(tn+1)+h22u(tn+1)+O(h3)u(t_n) = u(t_{n+1}) - hu'(t_{n+1}) + \frac{h^2}{2}u''(t_{n+1}) + O(h^3)

Since u(tn+1)=f(tn+1,u(tn+1))u'(t_{n+1}) = f(t_{n+1}, u(t_{n+1})), substituting into the scheme gives

τn=u(tn+1)u(tn)hf(tn+1,u(tn+1))=h2u(tn+1)+O(h2)\tau_n = \frac{u(t_{n+1}) - u(t_n)}{h} - f(t_{n+1}, u(t_{n+1})) = -\frac{h}{2}u''(t_{n+1}) + O(h^2)

The sign of the leading term is opposite to forward Euler’s (+h2u+\frac{h}{2}u''). This affects stability but not the accuracy order.

Theorem 2 (Convergence of Backward Euler)

Under the same Lipschitz conditions as Theorem 1, the global error of backward Euler satisfies

EnCL(eL(tnt0)1)h|E_n| \leq \frac{C}{L}\left(e^{L(t_n - t_0)} - 1\right) h

Backward Euler converges with order 1.

Proof 2

The argument is identical to the forward Euler convergence proof (Theorem 1). Backward Euler is a one-step method with consistency order p=1p = 1, so the same error recurrence, Lipschitz bound, and discrete Grönwall argument apply.


Stability Analysis

Apply backward Euler to the test equation u=λuu' = \lambda u:

un+1=un+hλun+1    un+1=11hλunu_{n+1} = u_n + h\lambda\,u_{n+1} \quad\implies\quad u_{n+1} = \frac{1}{1 - h\lambda}\,u_n

The stability function is R(z)=11zR(z) = \frac{1}{1-z} where z=hλz = h\lambda. Compare forward Euler’s R(z)=1+zR(z) = 1 + z (Definition 6).

Definition 2 (Stability Region of Backward Euler)

The stability region of backward Euler is

S={zC:11z1}={zC:1z1}\mathcal{S} = \left\{z \in \mathbb{C} : \left|\frac{1}{1-z}\right| \leq 1\right\} = \{z \in \mathbb{C} : |1-z| \geq 1\}

This is everything outside the disk of radius 1 centered at (1,0)(1, 0). In particular, it contains the entire left half-plane {Re(z)0}\{\operatorname{Re}(z) \leq 0\}.

Stability region of backward Euler: everything outside the disk |1 - z| \geq 1. The entire left half-plane is included, so backward Euler is stable for all h > 0 whenever \operatorname{Re}(\lambda) < 0.

Stability region of backward Euler: everything outside the disk 1z1|1 - z| \geq 1. The entire left half-plane is included, so backward Euler is stable for all h>0h > 0 whenever Re(λ)<0\operatorname{Re}(\lambda) < 0.

For Re(λ)<0\operatorname{Re}(\lambda) < 0, backward Euler is stable for all h>0h > 0: unconditionally stable.

Compare forward Euler: 1+z1|1+z| \leq 1 restricts hh to a small disk around (1,0)(-1,0). Backward Euler: 1z1|1-z| \geq 1 includes the entire left half-plane. No matter how large λ|\lambda| is, we can choose hh based on accuracy alone.


Stiffness

Stiff problems (Definition 7) arise whenever the ODE has widely separated time scales. The fast components demand small steps for explicit stability, even after those components have decayed to negligible levels. This is where backward Euler’s unconditional stability pays off.

Example 1 (The Prothero--Robinson Equation)

Consider u(t)=λ(ucost)sintu'(t) = \lambda(u - \cos t) - \sin t with u(0)=1u(0) = 1.

The exact solution is u(t)=costu(t) = \cos t, independent of λ\lambda.

With λ=1000\lambda = -1000, forward Euler requires h<0.002h < 0.002 for stability, but the solution varies on a scale of O(1)O(1). The method is forced to take thousands of tiny steps tracking a transient that has already decayed.

Backward Euler with h=0.1h = 0.1 gives R(z)=1/(1hλ)=1/1011|R(z)| = |1/(1 - h\lambda)| = 1/101 \ll 1: stable and accurate with 100x fewer steps.

Example 2 (Heat Equation Semi-Discretization)

Discretize ut=uxxu_t = u_{xx} on [0,1][0,1] with spacing Δx\Delta x:

dujdt=uj+12uj+uj1(Δx)2\frac{du_j}{dt} = \frac{u_{j+1} - 2u_j + u_{j-1}}{(\Delta x)^2}

This is a system u=Au\mathbf{u}' = A\mathbf{u} where AA is tridiagonal with eigenvalues

λk=4(Δx)2sin2 ⁣(kπ2(N+1))\lambda_k = -\frac{4}{(\Delta x)^2}\sin^2\!\left(\frac{k\pi}{2(N+1)}\right)

The smallest eigenvalue is λ1π2\lambda_1 \approx -\pi^2 (slow modes) and the largest is λN4/(Δx)2\lambda_N \approx -4/(\Delta x)^2 (fast modes). The ratio λN/λ1|\lambda_N|/|\lambda_1| \to \infty as Δx0\Delta x \to 0.

Forward Euler requires h(Δx)2/2h \leq (\Delta x)^2/2. With Δx=0.01\Delta x = 0.01: h5×105h \leq 5 \times 10^{-5}, requiring 20,000 time steps to reach T=1T = 1.

Backward Euler has no stability restriction. Choose hh based on accuracy alone; perhaps 100 steps suffice.