DataDrivenDiffEq.jl is a package for finding the governing equations of motion automatically from a dataset.
The methods in this package take in data and return the differential equation model which generated the data. A known model is not required as input. These methods can estimate equation-free and equation-based models for discrete and continuous differential equations.
There are two main types of estimation, depending on if you need the result to be human-understandable:
- Structural identification - returns a human readable result in symbolic form.
- Structural estimation - returns a function that predicts the derivative and generates a correct time series, but is not necessarily human readable.
DataDrivenDiffEq.jl currently implements the following algorithms for structural estimation and identification. Please note that all the algorithms have been unified under a single mathematical framework, so the interface might be a little different than what you expect.
- Dynamic Mode Decomposition (DMD)
- Extended Dynamic Mode Decomposition
- Sparse Identification of Nonlinear Dynamics (SINDy)
- Implicit Sparse Identification of Nonlinear Dynamics
To use DataDrivenDiffEq.jl, install via:
]add DataDrivenDiffEq using DataDrivenDiffEq