PyKoopman:数据驱动的Koopman算子近似工具包

PyKoopman:数据驱动的Koopman算子近似工具包

pykoopman A package for computing data-driven approximations to the Koopman operator. pykoopman 项目地址: https://gitcode.com/gh_mirrors/py/pykoopman

项目介绍

PyKoopman 是一个用于计算Koopman算子数据驱动近似的Python包。Koopman算子是描述非线性动力系统时间演化的无限维线性算子,通过将其投影到有限维子空间,可以实现对非线性系统的全局线性化。PyKoopman的核心目标是找到一组函数,这些函数能够跨越提升空间,并计算出与提升系统相关的转移矩阵。

项目技术分析

PyKoopman的核心结构围绕着KoopmanKoopmanContinuous类,主要包含两个关键组件:

  1. 观测函数(observables):用于跨越投影子空间的一组观测函数。
  2. 回归算法(regressor):用于找到Koopman算子投影的最佳拟合的优化算法。

PyKoopman的设计与scikit-learn兼容,使得用户可以像使用scikit-learn模型一样使用PyKoopman。

项目及技术应用场景

PyKoopman适用于以下场景:

  • 非线性动力系统分析:通过Koopman算子的近似,实现对非线性系统的线性化分析。
  • 系统辨识:通过数据驱动的方法,识别系统的动态模式。
  • 控制理论:在控制系统设计中,通过Koopman算子的近似,优化控制策略。

项目特点

  • 丰富的观测函数库:支持多种观测函数,包括多项式、时间延迟坐标、径向基函数、随机傅里叶特征等,用户还可以自定义观测函数。
  • 多种系统辨识方法:支持动态模式分解(DMD)、扩展动态模式分解(EDMD)、核动态模式分解(KDMD)等多种系统辨识方法。
  • 稀疏构造:支持基于线性一致性的多任务学习,实现Koopman不变子空间的稀疏构造。
  • 兼容性强:与scikit-learn兼容,用户可以无缝集成到现有的机器学习工作流中。

安装与使用

安装

可以通过pip安装PyKoopman:

pip install pykoopman

或者从源码安装:

git clone https://github.com/dynamicslab/pykoopman
cd pykoopman
python -m venv venv
source ./venv/bin/activate
python -m pip install -e .

文档

PyKoopman的文档托管在Read the Docs,详细的使用教程和API文档可以帮助用户快速上手。

社区与贡献

PyKoopman欢迎社区的贡献,用户可以通过提交Pull Request来贡献新功能。在提交代码之前,建议使用pre-commit工具自动格式化代码,并确保代码符合PEP8规范并通过所有单元测试。

引用

如果使用PyKoopman进行研究,请引用以下文献:

@misc{pan2023pykoopman,
      title={PyKoopman: A Python Package for Data-Driven Approximation of the Koopman Operator},
      author={Shaowu Pan and Eurika Kaiser and Brian M. de Silva and J. Nathan Kutz and Steven L. Brunton},
      year={2023},
      eprint={2306.12962},
      archivePrefix={arXiv},
      primaryClass={eess.SY}
}

相关项目

  • PySINDy:用于稀疏识别非线性动力系统的Python库。
  • Deeptime:用于时间序列数据分析的Python库,支持降维、聚类和马尔可夫模型估计。
  • PyDMD:使用动态模式分解(DMD)进行数据驱动模型简化的Python包。
  • pykoop:另一个用于Koopman算子识别的Python库。
  • DLKoopman:用于Koopman算子的深度学习库。

通过PyKoopman,您可以轻松实现对非线性动力系统的数据驱动分析,探索系统背后的隐藏模式,优化控制策略。立即开始使用PyKoopman,开启您的数据驱动动力系统研究之旅!

pykoopman A package for computing data-driven approximations to the Koopman operator. pykoopman 项目地址: https://gitcode.com/gh_mirrors/py/pykoopman

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郁英忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值