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.

  1. Python and scientific computingSimulate ODEs with SciPy and handle trajectories as arrays.Learn it in Python
  2. Linear algebra and differential equationsEigenvalues, the SVD and stability analysis are the language of DMD, Koopman methods and system identification.Learn it in Maths
  3. 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
  4. 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
  5. 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

ToolWhat you use it for
PySINDyRecover sparse governing equations from measured trajectories.
PyDMDFit dynamic mode decomposition models that give linear, interpretable baselines.
SciPyIntegrate ODEs to simulate reference trajectories and roll out learned models.
torchdiffeqTrain neural ordinary differential equations with PyTorch.
DiffraxSolve 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

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.