首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

PySINDy – 非线性动力系统稀疏识别包

2026-07-24 1 阅读 约4分钟阅读 sebzuddas
分享:
字号:
PySINDy PySINDy 是一个系统辨识包,主要围绕 Brunton 等人提出的非线性动力系统稀疏辨识(SINDy)方法。 (2016a)。它还包括相关文献中的其他方法。系统辨识是指使用测量数据来推断控制动态的过程。一旦被发现,这些方程可以对未来状态进行预测,可以为控制输入提供信息,或者可以使用分析技术进行理论研究。由此产生的模型本质上是可解释和可推广的。第一步安装首选的安装方式是使用 pip 或 conda,例如pip 安装 pysindy 。您可能必须添加 --user 选项。 Pysindy 还提供了一些额外功能,例如pip install pysindy[miosr] :cvxpy 凸优化器 SR3 和子类 miosr 用于 L0 约束的分支定界优化器,MIOSR sbr 贝叶斯回归优化器产生后验, SBR 。示例 假设我们在不同时间点测量了遵循以下动力系统的粒子位置 x' &= -2 x \\ y' &= y 请注意,该微分方程组解耦为两个微分方程,其解为 x(t) &= x_0 * exp(-2 * t) \\ y(t) &= y_0 * exp(t) 此示例使用初始条件 x_0 = 3 和 y_0 = 0.5 。然后,它拟合并打印发现的模型 import numpy as np import pysindy as ps t = np 。 linspace ( 0 , 1 , 100 ) x = 3 * np 。 exp (- 2 * t ) y = 0.5 * np 。 exp ( t ) X = np 。 stack (( x , y ), axis = - 1 ) # 第一列是 x,第二列是 y model = ps . SINDy()模型。拟合 ( X , t = t , feature_names = [ "x" , "y" ]) 模型。 print () 正确地得出 x' = -2.000 x y' = 1.000 y PySINDy 提供了此处未显示的许多其他功能。我们有各种教程和示例,从生成数据和拟合模型开始。获取帮助 如果您有疑问或发现错误,请在 github 上提出问题。 PySINDy 的文档站点可以在此处找到。 PySINDy 的视频概述可以在 Youtube 上找到。我们还创建了一个包含实用 PySINDy 技巧的视频播放列表。要了解有关 pysindy 中对象类型的更多信息,请参阅对象模型。如果您想解决问题、添加功能或分享示例,请查看 **贡献者** 指南 。如果您在学术工作中使用 pysindy,请参阅学术使用以获取建议,包​​括引用。相关包 Deeptime - 一个 Python 库,用于使用降维、聚类和马尔可夫模型估计方法来分析时间序列数据。 PyDMD - 使用动态模式分解 (DMD) 进行基于时空相干结构的数据驱动模型简化的 Python 包。 DMD 是 SINDy 的绝佳替代品。 PySINDyGUI - PySINDy 的漂亮 GUI. SEED - 用于从数据中提取方程的软件:PySINDy 提供的许多方法的 GUI。 SymINDy - 将 SINDy 与基于遗传编程的符号回归相结合的 Python 包,用于函数库优化。导数 - 用于区分(以及可选地平滑)数据的 Python 包,由 pysindy 使用
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱