Explicit and implicit methods

From Wikipedia, the free encyclopedia

In applied mathematics, explicit and implicit methods are approaches used in computer simulations of physical processes, or in other words, they are numerical methods for solving time-variable ordinary and partial differential equations.

Explicit methods calculate the state of a system at a later time from the state of the system at the current time, while an implicit method finds it by solving an equation involving both the current state of the system and the later one. Mathematically, if Y(t) is the current system state and Y(t + Δt) is the state at the later time (Δt is a small time step), then, for an explicit method

Y(t+\Delta t) = F(Y(t))\,

while for an implicit method one solves an equation

G(Y(t), Y(t+\Delta t))=0  \quad\quad (1)\,

to find Y(t + Δt).

It is clear that implicit methods require an extra computation (solving the above equation), and they can be much harder to implement. Implicit methods are used because many problems arising in real life are stiff, for which the use of an explicit method requires impractically small time steps Δt to keep the error in the result bounded (see numerical stability). For such problems, to achieve given accuracy, it takes much less computational time to use an implicit method with larger time steps, even taking into account that one needs to solve an equation of the form (1) at each time step. That said, whether one should use an explicit or implicit method depends upon the problem to be solved.

[edit] Illustration using the forward and backward Euler methods

Consider the ordinary differential equation

\frac{dy}{dt} = -y^2, \ y\in [0, a]\quad \quad (2)

with the initial condition y(0) = 1. Consider a grid tk = ka / n for 0≤kn, that is, the time step is Δt = a / n, and denote yk = y(tk) for each k. Discretize this equation using the simplest explicit and implicit methods, which are the forward Euler and backward Euler methods (see numerical ordinary differential equations) and compare the obtained schemes.

The forward Euler method

\frac{y_{k+1}-y_k}{\Delta t} = - y_k^2

yields

y_{k+1}=y_k-\Delta t y_k^2 \quad \quad \quad(3)\,

for each k=0, 1, \dots, n. This is an explicit formula for yk + 1.

With the backward Euler method

\frac{y_{k+1}-y_k}{\Delta t} = - y_{k+1}^2

one finds the implicit equation

y_{k+1}+\Delta t y_{k+1}^2=y_k

for yk + 1 (compare this with formula (3) where yk + 1 was given explicitly rather than as an unknown in an equation).

This is a quadratic equation, having one negative and one positive root. The positive root is picked because in the original equation the initial condition is positive, and then y at the next time step is given by

y_{k+1}=\frac{-1+\sqrt{1+4\Delta t y_k}}{2 \Delta t}. \quad \quad (4)

In the vast majority of cases, the equation to be solved when using an implicit scheme is much more complicated than a quadratic equation, and no exact solution exists. Then one uses root-finding algorithms, such as Newton's method.

[edit] See also

Languages