PySINDy: A comprehensive Python package for robust sparse system
  identification
  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.
