Skip to main content
QUICK REVIEW

[论文解读] PySINDy: A Python package for the Sparse Identification of Nonlinear Dynamics from Data

Brian M. de Silva, Kathleen Champion|arXiv (Cornell University)|Apr 17, 2020
Model Reduction and Neural Networks参考文献 74被引用 34
一句话总结

PySINDy 提供了 SINDy 框架的 Python 实现,用于从数据中发现支配的动力系统,具备模块化的微分、库和稀疏回归组件,并与 scikit-learn 兼容。

ABSTRACT

PySINDy is a Python package for the discovery of governing dynamical systems models from data. In particular, PySINDy provides tools for applying the sparse identification of nonlinear dynamics (SINDy) (Brunton et al. 2016) approach to model discovery. In this work we provide a brief description of the mathematical underpinnings of SINDy, an overview and demonstration of the features implemented in PySINDy (with code examples), practical advice for users, and a list of potential extensions to PySINDy. Software is available at https://github.com/dynamicslab/pysindy.

研究动机与目标

  • 推动基于数据的动力系统发现并提供可解释模型。
  • 交付一个实现 SINDy 的 Python 包,具有易用、scikit-learn 风格的设计。
  • 提供模块化组件(微分、库、优化器)以实现灵活性和扩展性。
  • 通过示例(如 Lorenz 系统)演示用法并为用户提供实际指导。

提出的方法

  • 将动力系统表述为 d x/dt = f(x),并用 Θ(x) 的稀疏线性组合来近似 f。
  • 将动力学表示为 Ẋ ≈ Θ(X)Ξ,并使用稀疏回归求解 Ξ。
  • 将 PySINDy 核心对象设计为具有三个模块化组件的 scikit-learn 风格估计器:differentiation_method、feature_library 和 optimizer。
  • 提供微分(FiniteDifference、SmoothedFiniteDifference)、库(PolynomialLibrary、FourierLibrary、CustomLibrary、IdentityLibrary)和优化器(STLSQ、SR3)的内置选项,并支持用户扩展。
  • 暴露一个实用工作流程,包括数据准备、模型拟合、导数计算、预测和仿真。
  • 包括演示洛伦兹系统建模和自定义特征使用的教程和代码示例。

实验结果

研究问题

  • RQ1如何将 Sparse Identification of Nonlinear Dynamics 实现为一个易于访问、可扩展的 Python 包?
  • RQ2在 scikit-learn 风格的 API 下,灵活地应用 SINDy 需要哪些模块化组件(微分、库构建、优化)?
  • RQ3不同的微分方法、库和优化器如何影响标准动力系统(如 Lorenz)上的 SINDy 模型恢复?
  • RQ4通过提供合理的默认设置和可定制选项,PySINDy 能否同时为初学者和高阶研究人员服务?
  • RQ5有哪些可行的指南和扩展可以提高对噪声的鲁棒性并拓展适用性(PDE、潜在坐标、约束)?

主要发现

  • PySINDy 提供一个中心化、可扩展的 SINDy 代码库,具有 scikit-learn 风格的接口。
  • 该包支持多种微分、库和优化器选项,使数据驱动的模型发现具有灵活性。
  • 一个实际工作流程演示了拟合、微分、预测和仿真学习到的动力学(如 Lorenz 系统)。
  • 内置选项包括 FiniteDifference、SmoothedFiniteDifference、PolynomialLibrary、FourierLibrary、CustomLibrary、IdentityLibrary、STLSQ 和 SR3,并支持用户定义的组件。
  • 文档和教程(GitHub)提供了大量示例和面向初学者与高级用户的指南。
  • 作者讨论了数值微分、库选择、正则化以及为提高鲁棒性和适用性的潜在扩展的实用建议。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。