Source-linked AI summary
PySINDy: A comprehensive Python package for robust sparse system identification
Alan A. Kaptanoglu, Brian M. de Silva, Urban Fasel, Kadierdan Kaheman, Andy J. Goldschmidt, Jared L. Callaham, Charles B. Delahunt, Zachary G. Nicolaou, Kathleen Champion, Jean-Christophe Loiseau, J. Nathan Kutz, Steven L. Brunton
TL;DR
Scientific model discovery needs tools that can infer governing equations from increasingly abundant measurement data, including for broader and more challenging dynamical systems. PySINDy provides an extensible SINDy-based Python package with expanded libraries, robust formulations, and optimization methods. The update supports identification of controlled, PDE, implicit, constrained, and more robust models, with a Kuramoto–Sivashinsky example correctly recovering the PDE from partial data.
Problem
Automated model discovery seeks to infer governing equations directly from measurement data as sensor availability increases and dynamical-system settings become more varied.
Method
PySINDy implements sparse SINDy regression with extensible candidate libraries, derivative-processing methods, robust formulations, ensembling, and multiple sparse optimizers.
Results
The update supports controlled, PDE, implicit, constrained, stable, weak-form, and ensemble-based model discovery, and correctly identifies the Kuramoto–Sivashinsky PDE from the first 60% of its data.
Takeaways & Limitations
PySINDy makes a broad range of SINDy-based scientific model-discovery workflows available in a documented, open-source, professionally maintained Python package.
Abstract
from arXiv · showhide
Automated data-driven modeling, the process of directly discovering the governing equations of a system from data, is increasingly being used across the scientific community. PySINDy is a Python package that provides tools for applying the sparse identification of nonlinear dynamics (SINDy) approach to data-driven model discovery. In this major update to PySINDy, we implement several advanced features that enable the discovery of more general differential equations from noisy and limited data. The library of candidate terms is extended for the identification of actuated systems, partial differential equations (PDEs), and implicit differential equations. Robust formulations, including the integral form of SINDy and ensembling techniques, are also implemented to improve performance for real-world data. Finally, we provide a range of new optimization algorithms, including several sparse regression techniques and algorithms to enforce and promote inequality constraints and stability. Together, these updates enable entirely new SINDy model discovery capabilities that have not been reported in the literature, such as constrained PDE identification and ensembling with different sparse regression optimizers.
Statement of need
PySINDy builds on SINDy’s data-driven sparse regression framework while extending the package beyond its original system class. The update incorporates broader dynamical-system variants and robustness-oriented functionality in an open-source, documented implementation.
- Motivation: Data-driven modeling uses measurement data to support automated discovery of governing equations.The approach complements first-principles derivations as sensor availability increases.
- SINDy framework: SINDy represents the dynamics as a sparse combination of candidate basis functions selected using scientific knowledge.Sparse coefficients define which library terms enter the discovered model.
- Regression setup: The method arranges sampled state measurements into a data matrix Q and computes a corresponding time-derivative matrix Qt.PySINDy supports finite-difference, filtered, spectral, spline, and total-variational derivative methods.
- Regression setup: SINDy solves Qt ≈ Θ(Q)Ξ by selecting sparse coefficients that accurately fit the measured derivatives.Sparsity can be promoted with regularizers such as the l0 or l1 norm and algorithms such as SR3.
- Package scope: The expanded package addresses controlled, constrained, implicit, partial-differential, weak-form, and more robust system-identification settings.PySINDy is also documented, open-source, professionally maintained, and minimally dependent on non-standard Python packages.
New Features
PySINDy extends SINDy to algebraic PDE systems with optional controls and spatial derivatives, while adding stability, multi-trajectory, ensembling, library-composition, and sparse-regression capabilities. A Kuramoto–Sivashinsky example identifies the PDE correctly and predicts held-out derivative data strongly.
- PDE identification: PySINDy approximates algebraic systems of PDEs and corresponding weak forms in arbitrary spatial dimensions from spatiotemporal data.Optional control inputs are supported.
- PDE identification: Control terms and partial derivatives enter the SINDy library as additional columns in Θ(Q, Qt, Qx, ..., u).This formulation covers ODEs, implicit ODEs, PDEs, and other dynamical systems as subsets of a general algebraic equation.
- Robustness and optimization: The package adds stable ODE modeling, multiple-trajectory training, sub-sampling, ensembling, cross-validation, and probabilistic system identification.It also provides SSR and FROLS sparse regression and a GeneralizedLibrary for combining candidate libraries.
- Example: The Kuramoto–Sivashinsky PDE was identified correctly after training on the first 60% of data, with strong held-out prediction performance for q̇.The dataset contains 1024 spatial grid points and 251 time steps.
Conclusion
PySINDy aims to make scientific model discovery accessible to anyone with measurement data. It combines an accessible interface with broad SINDy functionality for both inexperienced and advanced users.
- Conclusion: PySINDy is designed to let anyone with measurement data engage in scientific model discovery.The package follows scikit-learn standards and includes many SINDy variations and advanced features.