pysindy

GitHub
1.8k 372 非常简单 1 次阅读 3天前NOASSERTION开发框架
AI 解读 由 AI 自动生成,仅供参考

PySINDy 是一个专注于从数据中识别非线性动力学系统的 Python 开源库。其核心功能基于稀疏识别非线性动力学系统(SINDy)方法,旨在通过测量数据自动推导出支配系统演化的控制方程。简单来说,如果你拥有一组随时间变化的观测数据,PySINDy 能帮你“逆向工程”出背后的数学公式,从而揭示数据生成的物理规律。

这一工具主要解决了传统黑盒模型难以解释、缺乏物理意义的问题。通过 PySINDy 发现的模型不仅具备高度的可解释性,还能准确预测未来状态、辅助控制输入设计或支持理论分析,实现了数据驱动与物理机理的有机结合。

PySINDy 特别适合科研人员、数据科学家以及从事复杂系统建模的开发者和工程师使用。无论是研究流体力学、化学反应动力学,还是分析其他随时间演变的物理过程,它都能提供有力的支持。普通用户若对底层数学原理不熟悉,可能需要一定的学习成本,但其清晰的文档和丰富的教程降低了入门门槛。

在技术亮点方面,PySINDy 不仅实现了基础的 SINDy 算法,还集成了多种先进的优化器,如用于凸优化的 SR3、处理 L0 约束的分支定界优化器 MIOSR,以及提供贝叶斯回归后验分布的 SBR。这些特性使得模型在不同噪声水平和数据条件下都能保持稳健性和准确性。此外,该库具有良好的扩展性,支持与 Deeptime、PyDMD 等相关生态工具配合使用,为时间序列分析和降维提供了更多可能性。

使用场景

某机器人研发团队正在开发一款新型柔性机械臂,需要从高频传感器采集的运动数据中反推其物理动力学方程,以便设计高精度的控制算法。

没有 pysindy 时

  • 黑盒模型难解释:团队通常使用深度学习(如 LSTM)拟合数据,虽然预测精度尚可,但得到的是复杂的神经网络权重,无法转化为具体的物理公式,工程师难以理解系统背后的力学机制。
  • 泛化能力差:黑盒模型仅在训练数据覆盖的轨迹范围内有效,一旦机械臂执行未见过的新动作或负载发生变化,模型预测误差急剧上升,导致控制失效。
  • 人工推导成本高:若尝试通过第一性原理手动建立微分方程,需耗费数周时间进行复杂的受力分析和参数辨识,且难以准确捕捉非线性摩擦和柔性形变等细微动态。
  • 调试与控制困难:由于缺乏显式的数学表达式,无法利用经典的控制理论(如李雅普诺夫稳定性分析)来验证系统稳定性,控制器参数调整只能依靠盲目的试错。

使用 pysindy 后

  • 发现显式方程:pysindy 直接从数据中稀疏识别出简洁的微分方程组(如 $\ddot{x} = -0.5\dot{x} - 9.8\sin(x) + u$),清晰揭示了惯性、阻尼、重力及控制输入之间的关系,模型具有极强的可解释性。
  • 优异的泛化性:基于物理规律的方程天然具备良好的外推能力,即使在未见过的运动轨迹或不同负载条件下,模型仍能保持高精度预测,显著提升了系统的鲁棒性。
  • 自动化建模流程:无需人工假设模型结构,只需提供状态变量和时间序列数据,pysindy 即可在几分钟内自动筛选关键项并确定系数,将建模周期从数周缩短至数小时。
  • 赋能先进控制:获得的解析方程可直接用于模型预测控制(MPC)或反馈线性化设计,工程师能基于严格的数学证明优化控制策略,大幅减少了现场调试时间和安全风险。

核心价值在于 pysindy 将“数据驱动”与“物理可解释性”完美结合,让工程师能从嘈杂数据中直接提取简洁、可信的物理定律,从而加速复杂动态系统的分析与控制开发。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes推荐使用 pip 或 conda 安装。支持可选依赖以启用特定优化器:cvxpy(用于 SR3)、miosr(用于 MIOSR)、sbr(用于 SBR)。示例代码显示主要依赖 numpy 进行数据处理。
python未说明
numpy
pysindy hero image

快速开始

PySINDy

|BuildCI| |RTD| |PyPI| |Codecov| |JOSS1| |JOSS2| |DOI|

PySINDy 是一个用于系统辨识的软件包,主要围绕 Brunton 等人(2016a)提出的非线性动力系统的稀疏辨识方法(SINDy)展开。它还包含了来自相关文献的其他方法。

系统辨识 是指利用测量数据推断系统支配动力学的过程。一旦这些方程被发现,它们就可以用来预测未来的状态、指导控制输入,或者通过解析技术进行理论研究。由此得到的模型本质上是 可解释的可泛化的

第一步

安装 ^^^^^^^^^^^^^^

推荐使用 pip 或 conda 进行安装,例如 pip install pysindy。你可能需要添加 --user 选项。Pysindy 还提供了多个附加组件,例如 pip install pysindy[miosr]

cvxpy 凸优化器 SR3 及其子类

miosr 用于 L0 约束的分支定界优化器 MIOSR

sbr 贝叶斯回归优化器,可得到后验分布 SBR

示例 ^^^^^^^^^^^^^ 假设我们有一组粒子在不同时刻的位置测量值,该粒子遵循以下动力系统:

.. math::

x' &= -2 x \ y' &= y

请注意,这个微分方程组可以分解为两个独立的微分方程,其解分别为:

.. math::

x(t) &= x_0 * exp(-2 * t) \ y(t) &= y_0 * exp(t)

本示例使用初始条件 x_0 = 3y_0 = 0.5。然后拟合并打印出所发现的模型:

.. code-block:: python

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() model.fit(X, t=t, feature_names=["x", "y"]) model.print()

结果正确地输出:

.. code-block:: text

x' = -2.000 x y' = 1.000 y

PySINDy 还提供了许多此处未展示的功能。我们有各种教程和示例,从 生成数据和拟合模型 <examples/tutorial_1/example.html>_ 开始。

获取帮助

  • 如果您有任何 问题 或发现了 bug,请在 GitHub 上提交一个 issue <https://github.com/dynamicslab/pysindy/issues>_。
  • PySINDy 的 文档 网站可以在 这里 <https://pysindy.readthedocs.io/en/latest/>__ 找到。关于 PySINDy 的视频概述可以在 Youtube <https://www.youtube.com/watch?v=DvbbXX8Bd90>__ 上观看。我们还创建了一个包含实用 PySINDy 技巧的 视频播放列表 <https://www.youtube.com/playlist?list=PLN90bHJU-JLoOfEk0KyBs2qLTV7OkMZ25>__。
  • 若要深入了解 pysindy 中的 对象类型,请参阅 对象模型 <https://pysindy.readthedocs.io/en/latest/objects>_。
  • 如果您想修复问题、添加功能或分享示例,请查看 **贡献者** 指南 <https://pysindy.readthedocs.io/en/latest/contributing.html>_。
  • 如果您在 学术 工作中使用了 pysindy,请参阅 学术使用 <https://pysindy.readthedocs.io/en/latest/academic.html>_,其中包含建议,包括 引用

相关软件包

  • Deeptime <https://github.com/deeptime-ml/deeptime>_ - 一个用于时间序列数据分析的 Python 库,提供降维、聚类和马尔可夫模型估计等方法。
  • PyDMD <https://github.com/mathLab/PyDMD/>_ - 一个基于动态模态分解(DMD)的 Python 包,用于基于时空相干结构的数据驱动模型简化。DMD 是 SINDy 的一个很好的替代方案。
  • PySINDyGUI <https://github.com/hyumo/pysindy-gui>_ - 一个界面美观的 PySINDy 图形用户界面。
  • SEED <https://github.com/M-Vause/SEED2.0>_ - 数据方程提取软件:一个为 PySINDy 提供的多种方法设计的图形用户界面。
  • SymINDy <https://github.com/andreikitaitsev/SymINDy/>_ - 一个结合了 SINDy 与基于遗传编程的符号回归的 Python 包,用于函数库的优化。
  • derivative <https://derivative.readthedocs.io/en/latest/>_ - 一个用于对数据进行微分(并可选平滑处理)的 Python 包,被 pysindy 使用。

.. |BuildCI| image:: https://github.com/dynamicslab/pysindy/actions/workflows/main.yml/badge.svg :target: https://github.com/dynamicslab/pysindy/actions/workflows/main.yml?query=branch%3Amain

.. |RTD| image:: https://readthedocs.org/projects/pysindy/badge/?version=latest :target: https://pysindy.readthedocs.io/en/latest/?badge=latest :alt: 文档状态

.. |PyPI| image:: https://badge.fury.io/py/pysindy.svg :target: https://badge.fury.io/py/pysindy

.. |Codecov| image:: https://codecov.io/gh/dynamicslab/pysindy/branch/main/graph/badge.svg :target: https://codecov.io/gh/dynamicslab/pysindy

.. |JOSS1| image:: https://joss.theoj.org/papers/82d080bbe10ac3ab4bc03fa75f07d644/status.svg :target: https://joss.theoj.org/papers/82d080bbe10ac3ab4bc03fa75f07d644

.. |JOSS2| image:: https://joss.theoj.org/papers/10.21105/joss.03994/status.svg :target: https://doi.org/10.21105/joss.03994

.. |DOI| image:: https://zenodo.org/badge/186055899.svg :target: https://zenodo.org/badge/latestdoi/186055899

版本历史

v2.1.02026/01/08
v2.0.02025/08/22
v2.0.0-rc32025/07/28
v2.0.0-rc22025/04/14
v1.7.52023/04/07
v1.7.42023/04/05
v1.7.32023/02/25
v1.7.22022/10/12
1.7.12022/07/26
v2.0.0-rc12022/07/13
v1.72022/04/30
v1.6.32022/01/28
v1.6.22022/01/27
v1.6.12022/01/12
v1.62022/01/06
v1.5.12021/12/05
v1.52021/12/05
v1.4.32021/07/08
v1.4.22021/06/08
v1.4.12021/06/07

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架