Science and engineering
Machine learning for dynamical systems
Machine learning for dynamical systems discovers governing equations from data, forecasts how a system will evolve, and builds fast models for control. Methods range from sparse regression and dynamic mode decomposition to neural ordinary differential equations.
How machine learning is used for dynamical systems
Discovering governing equations from data
Sparse regression picks a few terms from a library of candidate functions so that the resulting equation explains measured time derivatives. The output is a readable differential equation that can be simulated and analysed, not a black box.
Real exampleSINDy (Brunton, Proctor and Kutz, 2016)Introduced sparse identification of nonlinear dynamics, which combines sparsity-promoting regression with machine learning to discover governing equations from noisy measurement data.
Finding linear coordinates for nonlinear systems
Koopman methods and dynamic mode decomposition look for coordinates in which a nonlinear system evolves linearly, which makes prediction, analysis and control far simpler. Autoencoders can learn these coordinates from trajectory data.
Real exampleDeep Koopman embeddings (Lusch, Kutz and Brunton, Nature Communications, 2018)Used deep learning to discover representations of Koopman eigenfunctions from trajectory data, giving compact and interpretable linear models of nonlinear dynamics.
Forecasting chaotic systems
Recurrent models such as reservoir computers and LSTMs learn to step a system forward from past measurements. For chaotic systems the useful questions are how long forecasts stay accurate and whether long runs reproduce the right statistics.
Real exampleReservoir computing for chaotic attractors (Pathak et al., 2017)Used reservoir computing to replicate chaotic attractors from a limited time series and to estimate Lyapunov exponents without a model of the system.
Continuous-time neural models
Neural ordinary differential equations use a network as the right-hand side of an ODE and integrate it with a standard solver. They handle irregularly sampled data and connect naturally to physics and control.
Real exampleNeural Ordinary Differential Equations (Chen et al., 2018)Introduced models that parameterise the derivative of a hidden state with a neural network and compute outputs with a black-box differential equation solver.
Can you learn machine learning for dynamical systems?
Yes, especially if you already know differential equations. Learn Python and NumPy, linear algebra and ODEs, then regression with regularisation, and finally recurrent networks and neural ODEs. SINDy and dynamic mode decomposition are good interpretable starting points.
- Python and scientific computingSimulate ODEs with SciPy and handle trajectories as arrays.Learn it in Python
- Linear algebra and differential equationsEigenvalues, the SVD and stability analysis are the language of DMD, Koopman methods and system identification.Learn it in Maths
- Regression with regularisationSparse and ridge regression are the core of SINDy-style equation discovery; choose the regularisation strength with validation data.Learn it in Machine Learning
- Sequence models and neural ODEsTrain recurrent networks and neural ODEs, and judge them on error over long rollouts, not only one step ahead.Learn it in Deep Learning
- Using models for controlPlug learned models into model predictive control and test their robustness to noise and unmodelled effects.
Moving into machine learning for dynamical systems
If you already work in the field
Engineers and physicists who model systems already understand stability, phase space and validation by simulation. Add Python machine learning tools, try SINDy (the PySINDy library) and DMD on data you know, then compare them with neural approaches. Control, aerospace and energy teams increasingly use these methods for digital twins.
If you come from data science or ML
Data scientists should study ODEs, stability and chaos at the level of an introductory dynamical systems text, because forecast error behaves very differently once dynamics are chaotic. Learn to evaluate on long rollouts and invariant statistics, not only on one-step error.
Roles that do this workScientific machine learning engineerControl systems engineerData-driven modelling scientistResearch scientist, dynamical systems
Tools you will use
| Tool | What you use it for |
|---|---|
| PySINDy | Recover sparse governing equations from measured trajectories. |
| PyDMD | Fit dynamic mode decomposition models that give linear, interpretable baselines. |
| SciPy | Integrate ODEs to simulate reference trajectories and roll out learned models. |
| torchdiffeq | Train neural ordinary differential equations with PyTorch. |
| Diffrax | Solve and differentiate through ODEs and SDEs in JAX. |
Public data to practise on
- dysts chaotic systems: A large collection of chaotic systems with consistent parameters for generating trajectories and benchmarking forecasts.
- The Well: Simulated spatiotemporal physical systems for testing models of evolving fields over long rollouts.
Your first project
Generate Lorenz trajectories with dysts, fit a sparse SINDy model, and compare it with a linear DMD model using one-step error and the time until a rollout diverges from held-out initial conditions.
Common questions
What is SINDy?
SINDy, sparse identification of nonlinear dynamics, fits time derivatives with a sparse combination of candidate terms such as polynomials and trigonometric functions. The result is a compact equation you can read, simulate and analyse.
What is the difference between DMD and Koopman analysis?
Dynamic mode decomposition fits the best linear operator to snapshot data in the measured coordinates. Koopman analysis is the theory behind it: it seeks functions of the state in which nonlinear dynamics act linearly, and DMD is one practical approximation.
Can machine learning predict chaotic systems?
Only for a limited horizon, usually measured in Lyapunov times, because small errors grow exponentially. Good models can still reproduce the long-term statistics of a chaotic system, which is often what matters.
Do I need deep learning for system identification?
Often not. Linear models, DMD and sparse regression work well with modest data and give interpretable results. Neural models are worth trying when dynamics are strongly nonlinear and data is plentiful.
Courses for these skills
- Deep Learning with PyTorchBuild neural policy and optimisation foundations.Syllabus available · lessons open as produced
- Maths for Machine LearningConnect objectives, state variables and optimisation.26 published lessons · all planned lessons open
- Statistics and Probability for Machine LearningUnderstand noise and conditional uncertainty.41 published lessons · all planned lessons open
New to programming or maths? Start with Python, or follow the machine learning path in order. Published lessons are free to read; compare Free and Pro.