gpt4 book ai didi

python - 在Python中更快地计算二重积分(就像MatLab的integral2)

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:51 25 4
gpt4 key购买 nike

我需要执行二维积分(一维具有无限边界)。在MatLab中,我用integral2完成了它:

int_x = integral2(fun, 0, inf, 0, a, 'abstol', 0, 'reltol', 1e-6);

在Python中,我尝试过scipy的dblquad:

int_x = scipy.integrate.dblquad(fun, 0, numpy.inf, lambda x: 0, lambda x: a, epsabs=0, epsrel=1e-6)

并且还尝试使用嵌套的单个四边形。不幸的是,这两个 scipy 选项花费的时间比 MatLab 长约 80 倍。

我的问题是:Python 中是否有另一种可能更快的 2D 积分实现(我尝试过“quadpy”,但没有太大好处)?或者,我可以编译MatLab的integral2函数并从python调用它,而不需要MatLab运行时(这甚至是kosher)吗?

提前致谢!布拉德

<小时/>

更新:

事实证明,我没有“声誉”来发布方程式的图像,所以请忍受格式:fun(N,t) = P(N) N^2 S(N,t) ,其中 P(N) 是对数正态概率分布,S(N,t) 相当复杂,但最简单的形式是指数,最复杂的形式是超几何函数(截断级数)。 N 从 0 到无穷大积分,t 从 0 到 pi 积分。

最佳答案

首先,简介。如果配置文件告诉您它的评估fun,那么您最好的选择是 numba.jit 它,或者在 Cython 中重写它。

关于python - 在Python中更快地计算二重积分(就像MatLab的integral2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52349283/

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