Stochastic partial differential equations
Stochastic pattern formation
We consider a stochastic version of the Gray–Scott model given by
\[\begin{aligned}\pd{u}{t}&=\nabla^2 u+u^2v - (a+b)u+\sigma\diff{W_t}{t}u,\\ \pd{v}{t}&=D\nabla^2v-u^2v + a(1 - v),\end{aligned}\]where $W_t$ is an approximation of a Brownian sheet, representing noise in both space and time, so its derivative is understood in the sense of stochastic calculus.
-
Load the interactive stochastic reaction–diffusion model
-
The model is initially deterministic ($\sigma=0$), so the initial condition simply spreads out to make a homogeneous state across the domain. Clicking indicates that this homogeneous equilibrium is stable, even to large perturbations.
-
Increasing the value of $\sigma$ in the range $(0.1,0.2)$, we can observe that noise destabilises this equilibrium, forming stripe and spot-like patterns. This is an example of stochastic resonance in reaction-diffusion systems. Smaller values of $\sigma$ will select for stripes, and larger for spots.
-
Further increasing $\sigma$ to the value of $0.3$ or so will destroy these patterns, as the noise eventually destabilises everything. This is sometimes known as stochastic extinction or random attractor collapse.
Wave propagation through a random medium
Next we consider a version of the inhomogeneous wave equation where the diffusion coefficient is a random function of space,
\[\pdd{u}{t} = \vnabla \cdot \left[\eta(\v{x},\sigma) \vnabla u \right],\]where $\eta(\v{x},\sigma)$ is a smoothed spatial random variable approximated as a Gaussian with mean $1$ and variance which scales with $\sigma$.
-
Load the interactive random wave equation
-
Click to initiate a wave at some point in the domain.
-
The default noise level is $\sigma=0.5$. If you change this value and restart the simulation by pressing
, you can observe deterministic wave propagation for small values of $\sigma$, and noisier wave behaviour for larger values.
Stochastic vegetation waves
Consider a stochastic version of the Klausmeier model in 1D of the form:
\[\begin{aligned} \pd{n}{t} &= \pdd{n}{x} + w {n}^{2}-m n+\sigma \diff{W_t}{t} \left[\frac{n}{1+n}\right],\\ \pd{w}{t} &= \pdd{w}{x} + a-w-w {n}^{2}+V \pd{w}{x}. \end{aligned}\]-
Load the interactive stochastic Klausmeier model
-
The parameter $\sigma$ represents the strength of the noise, so increasing or decreasing it will lead to more stochastic or more deterministic behaviour, respectively.
-
The noise function should scale correctly independently of the geometry and dimension. You can see how it behaves in 2D by pressing and change Dimension from 1 to 2. Playing with $\sigma$ as well as other parameters, and clicking to perturb the waves, shows that irregularity of the waves can occur in different ways with stochastic forcing. → Domain
Numerical health warning
Randomness and stochastic forcing can lead to less regularity and stability of numerical schemes.
Warning: the method only works for the forward Euler timestepping scheme! All other timestepping schemes will not scale properly with the timestep.
In implementing our random noise terms, we have taken
\[\diff{W_t}{t} \propto \frac{1}{\sqrt{\dt \, \dx^N}}\xi(t,\v{x}),\]with $\dt$ and $\dx$ the space and time steps respectively, and $N$ is the number of dimensions. The variable $\xi$ represents (for each spatial point and every time step) an independently distributed normal random variable with mean $0$ and variance $1$. The scaling in time is to preserve the Brownian increment scaling of $W_t \propto \sqrt{\dt}$ after the multiplication by $\dt$ from the forward Euler stepping. Similarly, we take $\eta$ to scale the same way in space, but it will not scale with time. We also mollify $\eta$ by running a diffusion smoothing on it for a short time.