我最近偶然发现了 boost.odeint 库,我对可能性和可配置性的数量感到惊讶。然而,广泛使用 scipy.integrate.odeint (它本质上是 fortran 中 ODEPACK 的包装器)我想知道它们的性能比较如何。我知道 boost.odeint 还带有并行化,这在 scipy 中是不可能的(据我所知),这会大大 boost 性能,但我要求的是单核案例。
但是,由于在这种情况下我必须将 boost.odeint(使用 cython 或 boost.python)包装到 python 中,也许你们中的某些人已经这样做了?这将是一个伟大的成就,因为所有的分析可能性在 python 中都更加先进。

最佳答案

据我通过比较可用步进器列表来判断
Boost.odeint 和 scipy.integrate.ode,两者实现的唯一算法是
Dormand-Prince 五阶步进器 dopri5 。你可以比较
通过使用该算法在 Python 中的两种实现的效率
this Cython wrapper 到 Boost.odeint(它不会暴露所有
Boost.odeint 提供的步进器,但确实暴露了 dopri5 )。

根据您对“测试性能”的定义,您还可以比较
不同的算法,但这显然与比较不同
同一算法的两种实现。

关于python - 比较 Boost.Odeint 与 Scipy.integrate.odeint?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35203474/

10-11 18:14