Overview
I provide both a web service or underlying code, download StoNormForm.zip, to
construct a normal form system for a specified system of
slow/fast/hyperbolic non-autonomous ordinary differential
equations or stochastic differential equations. Thus either
the web service or the code may be used to construct and
prove stochastic invariant manifolds, and their foliation,
and thus analyse bifurcations or complex behaviour in the
stochastic/non-autonomous system.
To use the web service
Click this link to expand this page.
Then via the web form below 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, the web form could help you analyse the
stochastic bifurcation in the Stratonovich stochastic system
\[\begin{array}{l}
\frac{dx}{dt}=a 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\(~a\)
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.
To use the underlying code The code uses
computer algebra, the package Reduce,
to construct approximations to the invariant manifolds.
- So download and install Reduce, and then download StoNormForm.zip.
- Start-up Reduce in the unzipped StoNormForm folder.
- Execute in_tex "StoNormForm.tex"$ to load the procedure.
- Test by executing examplenormalform(); and confirm the output is as in stoNormForm.pdf
- See examples in manyExamples.pdf and then try for systems of your interest.
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) 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
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{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.