Strang splitting

From HandWiki
Short description: Numerical method for solving differential equations

In applied mathematics Strang splitting is a numerical method for solving differential equations that are decomposable into a sum of differential operators. It is named after Gilbert Strang. It is used to speed up calculation for problems involving operators on very different time scales, for example, chemical reactions in fluid dynamics, and to solve multidimensional partial differential equations by reducing them to a sum of one-dimensional problems.

Fractional step methods

As a precursor to Strang splitting, consider a differential equation of the form

[math]\displaystyle{ \frac{d{y}}{dt} = L_1 ({y}) + L_2 ({y}) }[/math]

where [math]\displaystyle{ L_1 }[/math], [math]\displaystyle{ L_2 }[/math] are differential operators. If [math]\displaystyle{ L_1 }[/math] and [math]\displaystyle{ L_2 }[/math] were constant coefficient matrices, then the exact solution to the associated initial value problem would be

[math]\displaystyle{ y(t) = e^{(L_1 + L_2) t} y_0 }[/math].

If [math]\displaystyle{ L_1 }[/math] and [math]\displaystyle{ L_2 }[/math] commute, then by the exponential laws this is equivalent to

[math]\displaystyle{ y(t) = e^{L_1 t} e^{L_2 t} y_0 }[/math].

If they do not, then by the Baker–Campbell–Hausdorff formula it is still possible to replace the exponential of the sum by a product of exponentials at the cost of a second order error:

[math]\displaystyle{ e^{(L_1 + L_2) t} y_0 = e^{L_1 t} e^{L_2 t} y_0 + \mathcal{O}(t^2) }[/math].

This gives rise to a numerical scheme where one, instead of solving the original initial problem, solves both subproblems alternating:

[math]\displaystyle{ \tilde y_1 = e^{L_1 \Delta t} y_0 }[/math]
[math]\displaystyle{ y_1 = e^{L_2 \Delta t} \tilde y_1 }[/math]
[math]\displaystyle{ \tilde y_2 = e^{L_1 \Delta t} y_1 }[/math]
[math]\displaystyle{ y_2 = e^{L_2 \Delta t} \tilde y_2 }[/math]
etc.

In this context, [math]\displaystyle{ e^{L_1 \Delta t} }[/math] is a numerical scheme solving the subproblem

[math]\displaystyle{ \frac{d{y}}{dt} = L_1 ({y}) }[/math]

to first order. The approach is not restricted to linear problems, that is, [math]\displaystyle{ L_1 }[/math] can be any differential operator.

Strang splitting

Strang splitting extends this approach to second order by choosing another order of operations. Instead of taking full time steps with each operator, instead, one performs time steps as follows:

[math]\displaystyle{ \tilde y_1 = e^{L_1 \frac{\Delta t}{2}} y_0 }[/math]
[math]\displaystyle{ \bar y_1 = e^{L_2 \Delta t} \tilde y_1 }[/math]
[math]\displaystyle{ y_1 = e^{L_1 \frac{\Delta t}{2}} \bar y_1 }[/math]
[math]\displaystyle{ \tilde y_2 = e^{L_1 \frac{\Delta t}{2}} y_1 }[/math]
[math]\displaystyle{ \bar y_2 = e^{L_2 \Delta t} \tilde y_2 }[/math]
[math]\displaystyle{ y_2 = e^{L_1 \frac{\Delta t}{2}} \bar y_2 }[/math]
etc.

One can prove that Strang splitting is second order by using either the Baker-Campbell-Hausdorff formula, Rooted tree analysis or a direct comparison of the error terms using Taylor expansion. For the scheme to be second order accurate, [math]\displaystyle{ e^{\cdots} }[/math] must be a second order approximation to the solution operator as well.

See also

References