The Backward Euler Method
Backward Euler evaluates the slope at the unknown next point, giving unconditional stability that makes it a workhorse for stiff systems.
An implicit step
Backward (implicit) Euler uses the slope at the destination rather than the origin: y_{n+1} = y_n + h f(t_{n+1}, y_{n+1}). Because the unknown appears on both sides, each step requires solving an equation, typically by Newton iteration for nonlinear f. This extra work buys a decisive stability advantage.
import numpy as np
def backward_euler_step(f, jac, t1, y0, h, tol=1e-10):
y = y0.copy()
for _ in range(50):
g = y - y0 - h*f(t1, y)
J = np.eye(len(y)) - h*jac(t1, y)
dy = np.linalg.solve(J, -g)
y += dy
if np.linalg.norm(dy) < tol:
break
return y
Unconditional stability
On the test equation y' = lambda y with negative real part, backward Euler's amplification factor is 1/(1 - h lambda), whose magnitude is below 1 for any positive step. This A-stability means the method never blows up on decaying problems no matter how large the step, exactly what stiff systems require.
Accuracy and damping
Backward Euler is only first-order accurate, like its explicit counterpart, so small steps are still needed for precision. It is also strongly damping: it suppresses fast components aggressively, which is stabilizing but can smear sharp transients. The implicit trapezoidal method and higher-order BDF schemes offer better accuracy while retaining good stability.
Where it is used
Backward Euler is a reliable default for stiff ordinary and semi-discretized partial differential equations, especially as a robust first step or when strong damping is desirable. Its stability makes it a common building block inside more sophisticated implicit integrators.
Implicit stepping of this kind is essential for the stiff reaction and transport terms in breeder Hyperion plasma models, where explicit steps would be prohibitively small.