Split-step method

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In numerical analysis, the split-step (Fourier) method is a pseudo-spectral numerical method used to solve nonlinear partial differential equations like the nonlinear Schrödinger equation. The name arises for two reasons. First, the method relies on computing the solution in small steps, and treating the linear and the nonlinear steps separately (see below). Second, it is necessary to Fourier transform back and forth because the linear step is made in the frequency domain while the nonlinear step is made in the time domain.

An example of usage of this method is in the field of light pulse propagation in optical fibers, where the interaction of linear and nonlinear mechanisms makes it difficult to find general analytical solutions. However, the split-step method provides a numerical solution to the problem.

Description of the method[edit]

Consider, for example, the nonlinear Schrödinger equation[1]

{\part A \over \part z} = - {i\beta_2 \over 2} {\part^2 A \over \part t^2} + i \gamma | A |^2 A = [\hat D + \hat N]A,

where A(t,z) describes the pulse envelope in time t at the spatial position z. The equation can be split into a linear part,

{\part A_D \over \part z} = - {i\beta_2 \over 2} {\part^2 A \over \part t^2} = \hat D A,

and a nonlinear part,

{\part A_N \over \part z} = i \gamma | A |^2 A = \hat N A.

Both the linear and the nonlinear parts have analytical solutions, but the nonlinear Schrödinger equation containing both parts does not have a general analytical solution.

However, if only a 'small' step h is taken along z, then the two parts can be treated separately with only a 'small' numerical error. One can therefore first take a small nonlinear step,

A_N(t, z+h) = \exp\left[i \gamma |A|^2 h \right] A(t, z),

using the analytical solution.

The dispersion step has an analytical solution in the frequency domain, so it is first necessary to Fourier transform A_N using

\tilde A_N(\omega, z) = \int_{-\infty}^\infty A_N(t,z) \exp[i(\omega-\omega_0)t] dt ,

where \omega_0 is the center frequency of the pulse. It can be shown that using the above definition of the Fourier transform, the analytical solution to the linear step, commuted with the frequency domain solution for the nonlinear step, is

\tilde{A}(\omega, z+h) = \exp\left[{i \beta_2 \over 2} (\omega-\omega_0)^2 h \right] \tilde{A}_N(\omega, z+h).

By taking the inverse Fourier transform of \tilde{A}(\omega, z+h) one obtains A\left(t, z+h\right); the pulse has thus been propagated a small step h. By repeating the above N times, the pulse can be propagated over a length of N h.

The above shows how to use the method to propagate a solution forward in space; however, many physics applications, such as studying the evolution of a wave packet describing a particle, require one to propagate the solution forward in time rather than in space. The non-linear Schrödinger equation, when used to govern the time evolution of a wave function, takes the form

i \hbar {\part \psi \over \part t} = - {{\hbar}^2 \over {2m}} {\part^2 \psi \over \part x^2} +  \gamma | \psi|^2 \psi = [\hat D + \hat N]\psi,

where \psi(x, t) describes the wave function at position x and time t. Note that

\hat D=- {{\hbar}^2 \over {2m}} {\part^2 \over \part x^2} and  \hat N =\gamma | \psi|^2 , and that  m is the mass of the particle and  \hbar is Planck's constant over 2\pi.

The formal solution to this equation is a complex exponential, so we have that

 \psi(x, t)=e^{it(\hat D+\hat N)}\psi(x, 0).

Since \hat{D} and \hat{N} are operators, they do not in general commute. However, the Baker-Hausdorff formula can be applied to show that the error from treating them as if they do will be of order dt^2 if we are taking a small but finite time step dt. We therefore can write

 \psi(x, t+dt) \approx e^{idt\hat D}e^{idt\hat N}\psi(x, t).

The part of this equation involving  \hat N can be computed directly using the wave function at time  t , but to compute the exponential involving  \hat D we use the fact that in frequency space, the partial derivative operator can be converted into a number by substituting  ik for  \part \over \part x , where  k is the frequency (or more properly, wave number, as we are dealing with a spatial variable and thus transforming to a space of spatial frequencies—i.e. wave numbers) associated with the Fourier transform of whatever is being operated on. Thus, we take the Fourier transform of

e^{idt\hat N}\psi(x, t),

recover the associated wave number, compute the quantity


and use it to find the product of the complex exponentials involving  \hat N and  \hat D in frequency space as below:

 e^{-idtk^2}F[e^{idt\hat N}\psi(x, t)],

where  F denotes a Fourier transform. We then inverse Fourier transform this expression to find the final result in physical space, yielding the final expression

\psi(x, t+dt)=F^{-1}[e^{-idtk^2}F[e^{idt\hat N}\psi(x, t)]].

A variation on this method is the symmetrized split-step Fourier method, which takes half a time step using one operator, then takes a full-time step with only the other, and then takes a second half time step again with only the first. This method is an improvement upon the generic split-step Fourier method because its error is of order dt^3 for a time step dt. The Fourier transforms of this algorithm can be computed relatively fast using the fast Fourier transform (FFT). The split-step Fourier method can therefore be much faster than typical finite difference methods.[2]


  1. ^ Agrawal, Govind P. (2001). Nonlinear Fiber Optics (3rd ed.). San Diego, CA, USA: Academic Press. ISBN 0-12-045143-3. 
  2. ^ T. R. Taha and M. J. Ablowitz (1984). "Analytical and numerical aspects of certain nonlinear evolution equations. II. Numerical, nonlinear Schrödinger equation". J. Comput. Phys. 55 (2): 203–230. Bibcode:1984JCoPh..55..203T. doi:10.1016/0021-9991(84)90003-2. 

External references[edit]