Overview

Via this page you obtain a normal form of any supplied stochastic differential equation (SDE), or deterministic, autonomous or non-autonomous, ODE, when the SDE has fast and slow modes. The normal form decouples the slow modes from the fast and so supplies you with a faithful large time model of the stochastic dynamics. Being a coordinate transform you are assured that the dynamics are attractive over some finite domain and apply for all time.

For example, this web page could help you analyse the stochastic bifurcation in the Stratonovich stochastic system \[\begin{array}{l} \frac{dx}{dt}=\epsilon x-xy, \\ \frac{dy}{dt}=-y+x^2-2y^2+w(t) \end{array}\] where near the origin \(x(t)\) evolves slowly, \(y(t)\) decays quickly to some quasi-equilibrium, but the white noise\(~w(t)\) `kicks' the system around. As parameter epsilon crosses zero, a stochastic bifurcation occurs. A stochastic, near identity, coordinate transform, \(x=X(t)+\cdots\) and \(y=Y(t)+\cdots\), decouples the fast/slow dynamics in the new variables\(~X(t)\) and\(~Y(t)\) so you are empowered to deduce the true slow/fast dynamics in the bifurcation. Just click on the Submit button to see.

Submit your SDE/ODE for analysis

Fill in the fields below for your SDE system:
  • your m slow variables must be denoted x(1),...,x(m);
  • your ny fast stable variables must be denoted y(1),...,y(ny);
  • your nz fast unstable variables must be denoted z(1),...,z(nz);
  • the fast variables must be linearly decoupled, that is, the linear dynamics have been diagonalised; each of the linear decay/growth rates of the fast variables must be a positive number;
  • any number of Stratonovich white noises (derivatives of Wiener processes) must be denoted w(any) where `any' denotes almost any label of your choice---numeric labels are usual;
  • the noises w() must occur linearly in the RHSs of the SDEs, but may be multiplied by fast or slow variables;
  • simply omit all w()s to analyse a deterministic ODE;
  • for the moment, the SDEs must be multinomial in form;
  • Use the syntax of Reduce for the algebraic expressions (general examples)
More interesting examples are listed at the end of this web page.

Enter the magic word "a w h i l e" into

Description Specify your SDE/ODE
Slow modes: the RHS of each of the m S/ODEs dx(1)/dt,...,dx(m)/dt separated by commas. Use w(any) to denote noise terms.
Fast stable modes the RHS of the ny S/ODEs dy(1)/dt,...,dy(ny)/dt each separated by commas. Use w(any) to denote noise terms.
Fast unstable modes the RHS of the nz S/ODEs dz(1)/dt,...,dz(nz)/dt each separated by commas. Use w(any) to denote noise terms.
Order of error of the analysis in the `nonlinear' terms on the RHS.
Print expressions with the following variables factored---this does not affect the analysis, but must not be empty. I auto-label all noise terms with variable sig.

Wait a minute or two

The analysis may take minutes after submitting. Be patient. Read the following. Please inform me of any problems.

In the results

  • Each xx(i) denotes the new true slow variable \(X_i\) where the original \(x_i=X_i+(\text{nonlinear modifications})\), each yy(i) denotes the new fast stable variable \(Y_i\) where the original \(y_i=Y_i+(\text{nonlinear modifications})\), and each zz(i) denotes the new fast unstable variable \(Z_i\) where the original \(z_i=Z_i+(\text{nonlinear modifications})\),
  • ou(w,tt,r) denotes Ornstein--Uhlenbeck convolution over the autonomous forcing/Stratonovich process \(w(t)\) (not Ito): ou(w,tt,r)\({}=\exp(rt)\star w(t)\) where the star * denotes convolution which is done over the past history of the process \(w(t)\) when \(r<0\), and done over the future (!) of the process \(w(t)\) when \(r>0\).
  • For explanations and relevant theory, see my articles Normal form transforms separate slow and fast modes in stochastic dynamical systems [doi:10. 1016/j.physa.2007.08.023] and Computer algebra derives normal forms of stochastic differential equations.

Levy area contraction

Another example system (adapted from Greg Pavliotis) is \[\begin{array}{l} \frac{dx_1}{dt}=\epsilon y_1,\\ \frac{dx_2}{dt}=\epsilon y_2,\\ \frac{dx_3}{dt}=\epsilon (x_1y_2-x_2y_1),\\ \frac{dy_1}{dt}=-2y_1-ay_2+w_1(t),\\ \frac{dy_2}{dt}=-3y_2+ay_1+w_2(t). \end{array}\] Copy and paste the following into the above form.
Description Specify your SDE/ODE
Slow modes: small*y(1), small*y(2), small*(x(1)*y(2)-x(2)*y(1))
Fast stable modes -2*y(1)-a*y(2)+w(1), -3*y(2)+a*y(1)+w(2)
Fast unstable modes
Order of error 4
Print sig,small
To cope with the off-diagonal terms, the algorithm modifies the system to \( \dot x_{1}=\varepsilon ^{2} y_{1}\,,\quad\) \( \dot x_{2}=\varepsilon ^{2} y_{2}\,,\quad\) \( \dot x_{3}=\varepsilon ^{2} \big(-x_{2} y_{1}+x_{1} y_{2}\big)\,,\quad\) \( \dot y_{1}=\sigma w_{1}-\varepsilon y_{2} a-2 y_{1}\,,\quad\) \( \dot y_{2}=\sigma w_{2}+\varepsilon y_{1} a-3 y_{2}\,,\) and computes the following results in which the new slow and fast variables have been nonlinearly separated by the time dependent coordinate transform.

Near identity, time dependent coordinate transform

\( y_{1}\approx \sigma \varepsilon \big(-{e^{-2t}\star}w_{2}\, a+{e^{-3t}\star}w_{2}\, a\big)+\sigma {e^{-2t}\star}w_{1}\,+\varepsilon Y_{2} a+Y_{1}\,,\quad\) \( y_{2}\approx \sigma \varepsilon \big({e^{-2t}\star}w_{1}\, a-{e^{-3t}\star}w_{1}\, a\big)+\sigma {e^{-3t}\star}w_{2}\,+\varepsilon Y_{1} a+Y_{2}\,,\quad\) \( x_{1}\approx -1/2 \sigma \varepsilon ^{2} {e^{-2t}\star}w_{1}\,-1/2 \varepsilon ^{2} Y_{1}+X_{1}\,,\quad\) \( x_{2}\approx -1/3 \sigma \varepsilon ^{2} {e^{-3t}\star}w_{2}\,-1/3 \varepsilon ^{2} Y_{2}+X_{2}\,,\quad\) \( x_{3}\approx \sigma \varepsilon ^{2} \big(-1/3 {e^{-3t}\star}w_{2}\, X_{1}+1/2 {e^{-2t}\star}w_{1}\, X_{2}\big)+\varepsilon ^{2} \big(1/2 X_{2} Y_{1}-1/3 X_{1} Y_{2}\big)+X_{3}\,.\)

Resultant normal form S/ODEs

\( \dot Y_{1}\approx -\varepsilon ^{2} Y_{1} a^{2}-2 Y_{1}\,,\quad\) \( \dot Y_{2}\approx \varepsilon ^{2} Y_{2} a^{2}-3 Y_{2}\,,\quad\) \( \dot X_{1}\approx -1/6 \sigma \varepsilon ^{3} w_{2} a+1/2 \sigma \varepsilon ^{2} w_{1}\,,\quad\) \( \dot X_{2}\approx 1/6 \sigma \varepsilon ^{3} w_{1} a+1/3 \sigma \varepsilon ^{2} w_{2}\,,\quad\) \( \dot X_{3}\approx \sigma \varepsilon ^{3} \big(1/6 w_{2} X_{2} a+1/6 w_{1} X_{1} a\big)+\sigma \varepsilon ^{2} \big(1/3 w_{2} X_{1}-1/2 w_{1} X_{2}\big).\)

Travelling waves in fluctuating kdV example

Potzsche and Rasmussen (2006) [Example 5.4] sought travelling wave solutions, \(u(x-c^2t)\) with wave speed\(~c^2\), of a modified KdV equation. This leads to the system \(\dot u_1=u_2\), \(\dot u_2=u_3\), \(\dot u_3=c^2u_2-a(t)u_1^2u_2\). For simplicity I set \(c^2=1\). A transform to diagonalise the linear part into slow variable\(~x\), stable\(~y\) and unstable\(~z\) is then that \(u_1 = x+y+z\), \(u_2 = z - y\) and \(u_3 = z + y\).

Using w(a) to denote the variable coefficient\(~a(t)\) (represented in the output by\(~\sigma w_a\)), copy and paste the following into the above form.

Description Specify your SDE/ODE
Slow modes: w(a)*(x(1)+y(1)+z(1))^2*(z(1)-y(1))
Fast stable modes -y(1)-w(a)*(x(1)+y(1)+z(1))^2*(z(1)-y(1))/2
Fast unstable modes +z(1)-w(a)*(x(1)+y(1)+z(1))^2*(z(1)-y(1))/2
Order of error 3
Print sig,small
Putting \(Z_1 = 0\) into the resulting coordinate transform gives the centre-stable manifold; conversely, putting \(Y_1 = 0\) gives the centre-unstable manifold. The expressions have the same convolutions as those of Potzsche and Rasmussen (2006).

If you like this web page, please link to it so others can find it more easily.