Operator splitting (source code)

= Operator splitting

<Operator splitting> approximates evolution generated by a sum of operators through separate evolutions of its parts. For bounded <matrices> $A,B$, one step of the Lie product approximation to $u'=(A+B)u$ is
$$
u_{n+1}=e^{hA}e^{hB}u_n.
$$
Expanding both <matrix exponentials> gives $e^{hA}e^{hB}-e^{h(A+B)}=\tfrac12h^2(AB-BA)+O(h^3)$. Thus noncommutativity creates the leading local error; if $A$ and $B$ commute, the step is exact.

The symmetric composition $e^{hA/2}e^{hB}e^{hA/2}$ cancels the quadratic local error and has local error $O(h^3)$ for bounded <matrices>. With suitable stability over a fixed time interval this gives second-order global accuracy. In a <reaction-diffusion equation>, separate reaction and diffusion substeps can each use a method suited to that process. For unbounded <differential operators>, boundary conditions and regularity require additional analysis rather than a formal transfer of the matrix calculation.<Splitting methods with complex coefficients by Sergio Blanes and others>[Introduction, Lie-Trotter and Strang compositions]{ref}