gpt4 book ai didi

python - Fortran 或 C 和 f2py 求解微分方程

转载 作者:行者123 更新时间:2023-11-30 15:14:39 24 4
gpt4 key购买 nike

这更多的是一个设计问题。我参与的一个项目需要我们求解一堆一阶微分方程。我知道 python 有这方面的模块,并且我们一直在使用这些函数。

但是,我们需要积分器速度快,因此我们希望使用自适应步长并测试 scipy 包中未包含的其他一些例程。为此,我有一个 f2py 问题,因为用 Fortran 或 C 编写 ODE 求解器并使用 f2py 包装它似乎是有意义的。例如,fortran 和 python 之间的接口(interface)“变慢”发生在哪里?是在来回转移内存吗?我想知道前端需要考虑什么。当然,我可以直接用 python 编写(对于初学者),但我听说 python 中的循环非常慢。

无论如何,只是寻找一般建议和需要考虑的事情。

谢谢。

最佳答案

我不熟悉f2py,但是你考虑过尝试Cython第一的?如果您不熟悉它,它可以让您用标准 Python 语言的超集编写代码,然后将其转换为 C 代码,然后进行编译。如果您的代码主要是循环,这可能会大大加快速度。但请记住,任何时候您从 Cython 中(或从常规 C 代码)调用纯 Python 函数,都会产生瓶颈。 (我相信这就是您所指的放缓。)

话虽这么说,我最近扔掉了我编写的 Cython 模块,并将其替换为使用 Python/C API 的手写 C++ 库。 。这更好,因为它让我可以更好地控制 C++ 代码与 NumPy 的交互,这对 Cython 来说有点挑战。

关于python - Fortran 或 C 和 f2py 求解微分方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33988654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com