Rough Differential Equations

the animation examples

The animations you see model the interaction between a signal, summarised as a rough path, and a non-linear system. The pictures show the evolving response to the signal for different choices of equation.

The evolution on the saddle is the response $y_{t}$ to $\gamma _{t}$ under the linear equationMATHwhereMATHand if $\gamma $ is a Brownian path, $y$ will be a Brownian motion on Hyperbolic space.

The fundamental approach of rough path theory is to summarise the driving signal over each short time period by a free Lie element such as MATHThis lie element captures the increment, area, etc. of $\gamma $ over the time interval; the full sequence is a full description of the path up to tree like elements ( Uniqueness of a Path). Such a description can easily be turned into an autonomous ordinary differential equationMATHand if one solves for $\tilde{y}$ with $\tilde{y}_{0}$ being the state of the responding system $y$ at the beginning of the interval then $\tilde{y}_{1}$ is a higher order approximation to $y$ at the end of the interval. The algebraic approach to describing the signal allows one to well approximate highly osciliatory signals effectively and deduce responses through the use of classical differential equation methods over normal length scales. Rough path theory provides uniform estimates on the errors that one incurs in using these top down descriptions and approximations.

The evolution on the sphere is governed by the non-linear equationMATHwith $a=b=1$ . This equation is a simple case of the Landau-Lifschitz-Gilbert Equation perturbed by a multiplicative space-dependent noise. It was described for us by Prof. Zdzislaw Brzezniak (of the University of York, U.K.): "This equation, fundamental for the theory of magnetic memories, describes evolution of spins in ferromagnetic materials under the influence of thermal noise. The necessity to include the thermal noise in the equation was observed by physicists in the early fifties but the rigorous mathematical theory was missing."

In both cases there is complete freedom to vary the signal forcing the motion; the examples currently show the system driven by a signal "path" that is a Brownian Rough Path (Brownian motion and Levy's Area) or alternatively a fractional Brownian Motion Path with Hurst coefficient 0.3 or 0.7. But the programme code is abstracted and simply relies on a (rough) path object to drive the equation.

Run the animations
(requires Internet Explorer)

You can use the mouse to turn the surface or use the following keys:

Y: Zoom in
T: Zoom out
E: Rotate clockwise
Q: Rotate anticlockwise

R: Redraw the paths
X: Redraw the paths slower
C: Redraw the paths faster

L: Switch to the linear SDE driven by Brownian motion
F: Switch to the linear SDE driven by fractional Brownian motion with Hurst coefficient 0.3
G: Switch to the linear SDE driven by fractional Brownian motion with Hurst coefficient 0.7
P: Switch to the (non-linear) Landau-Lifschitz-Gilbert Equation driven by Brownian motion

N: Reset and redraw the paths

I: Hide/display the menu

the software

This software is still a bit rough but it none the less can now be used as the examples and the above visualisations demonstrate. Libalgebra is a templated C++ tool for working with free tensors, free lie algrebras and polynomial vector fields. The intial code was written by Djalil Chafai and Terry Lyons with support of an EPSRC grant and has been available (if a specialist taste) for several years as part of the CoRoPa Project. It is intended to form a foundation for code such as the visualisations shown here. We have substantially updated the code rewriting the core tensor algorithms and it now runs at many orders of magnitude faster than before. We have also added the functionality of polynomial vector fields which allows the example code to compute solutions to non-linear equations. It could all be made better but everyone involved has many other commitments.

Download the source code
(includes the numerical examples, but not the graphical visualisation)

View the documentation

Learn more about the CoRoPa project

the people

Djalil Chafai wrote the code for the original libalgebra and the initial demonstrations. Greg Gyurkó played an important role in developing the linear ODE solver (which uses Padé Approximations), and Christian Litterer did the first open-gl visualisations of linear equations. Stephen Buckley and Arend Janssen developed the nonlinear code. ChangLiang Xu upgraded the visualisations to include the sphere and the menu. Terry Lyons filled in the gaps, taught the solving of rough differential equations and C++.