A large chunk of applied mathematics aims to understand dynamical systems and to characterize their behavior.
But what happens if you have a physical system for which you don’t know the governing equations?
You suspect that underneath it all there is probably a set of differential equations pulling the strings, but you are unable or unwilling to derive them analytically.
If you are able to get your hands on measurements of the system, then you may be able to use a data-driven approach.
One recently developed method is the Sparse Identification of Nonlinear Dynamical systems (SINDy)
How it works
The main idea is that the right-hand sides of many dynamical systems of interest do not include many terms, implying that they are sparse with respect to an appropriately chosen basis.
- Measurement data is passed in (one can optionally feed in derivatives of the measurements as well)
- A library of possible interaction functions is specified. If this set of functions is rich enough then a subset of them will make up all the terms on the right-hand side of the dynamical system to be uncovered.
- Sparse regression is used to identify which terms best reproduce the derivatives of the measurement data, providing an approximation to the underlying dynamical system.
- The original paper introducing SINDy: Discovering governing equations from data by sparse identification of nonlinear dynamical systems
- A recent paper of mine applying SINDy to a noisy real-world data set: Discovery of physics from data: universal laws and discrepancy models
- PySINDy: a Python package for SINDy