python - Python中的可重入复杂ODE求解器
问题描述
我有一个复杂的微分方程列表,我需要“并行”逐步完成(对方程 1 积分一个时间步,然后在方程 2 中积分一个时间步,然后在方程 1 中积分另一个时间步,等等):求解器需要是“重入”。我一直在尝试使用scipy.integrate.ode
. 我的问题与使用 python 和 scipy.integrate.ode 在一个循环中求解两个不耦合的 ODE 完全相同,除了复杂的微分方程。因此我不能使用仅用于实值 ODE 的“dopri5”。
Python 中是否有任何复杂的可重入 ODE 求解器(最好具有与 没有太大区别的接口scipy.integrate.ode
)?
使用multiprocessing
在多个进程中使用求解器(如此处所提议的)并不是一个真正的选择,因为通过 IPC 发回状态的开销会令人望而却步。对同一问题的另一条评论提到,作为 scipy 求解器基础的日晷库实际上是可重入的,但大概 Scipy 还没有赶上。是否还有其他用于日晷的 Python 包装器?我找不到提到的scikits-odes包是否可重入的任何信息。
我也尝试简单地替换scipy.integrate.ode
为,但是我没有进一步调查scipy.integrate.complex_ode
的崩溃。TypeError: can't multiply sequence by non-int of type 'complex'
我的整个问题出现的实际代码在这里: https ://github.com/qucontrol/krotov/blob/fe7c7240b6b7090b176b96f7d6d2f6b96bc39816/src/krotov/propagators.py#L156
解决方案
推荐阅读
- next.js - 如何使用 next-mdx-remote 对帖子进行排序?
- google-analytics - 如何将 Google Analytics 集成到旧版本的 GatsbyJS?
- unit-testing - 是否可以使用 mockk 监视我无法控制其创建的对象?
- generics - 将未调整大小和基于动态调度的特征作为参数传递的问题
- python-3.x - 如何强制 psql 在 Windows 10 系统上检测 .pgpass 文件?
- npm - 从 npm 包中删除丢失文件夹的另一种方法?
- html - net::ERR_HTTP2_PROTOCOL_ERROR 200 渲染大型 html 文件时
- javascript - 多个按钮事件 = 未捕获的类型错误:无法读取未定义的属性“删除”
- game-development - 如何在 Godot 中实现一个单词搜索游戏的逻辑
- javascript - TypeError:无法读取未定义的反应redux的属性