Overview
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.
FYI: the source code is now available for collaborative development via the folder StochasticNormalForm of a Github repository
Submit your SDE/ODE for analysis
- 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) or non-autonomous time dependent factors may be present, they 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 an autonomous system of ODEs;
- for the moment, the SDEs must be either multinomial in form or a rational multinomial---if the latter, then multiply through by a common denominator transfer to the RHS the nonlinear terms involving time derivatives, to end up with a multinomial RHS that includes nonlinear terms with a time derivative factor;
- Use the syntax of Reduce for the algebraic expressions
Wait a minute or two
In the results
- Each xx(i) denotes the new true slow variable \(X_i\) where the original \(x_i=X_i+(\text{modifications})\), each yy(i) denotes the new fast stable variable \(Y_i\) where the original \(y_i=Y_i+(\text{modifications})\), and each zz(i) denotes the new fast unstable variable \(Z_i\) where the original \(z_i=Z_i+(\text{modifications})\),
- ou(w,tt,r) denotes Ornstein--Uhlenbeck convolution over the non-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
- Although this service is phrased in terms of Stratonovich interpretation of noise processes, I conjecture that the results of this service also apply to \(w(t)\) representing Poisson processes, Levy flights, or jump processes. The reason is that the Marcus interpretation of the calculus of such systems "enjoys all the properties one would expect from the Stratonovich integration rule, namely, the conventional change of variables formula and the validity of the coloured noise approximations" ( Chechkin and Pavlyukevich, 2014). These rules of calculus are what we need for the constructed coordinate change.
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 |
sig,small |
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 |
sig,small |
If you like this web page, please link to it so others can find it more easily.