我正在尝试评估一个双重积分,其中内部积分的极限是可变的,并且取决于外部积分。来自Matlab背景,使用符号集成很容易,但是我不知道如何在Python中以有效的方式计算它。我阅读了scipy
文档,但没有任何帮助。这种积分的一个例子是
非常感谢您提供任何帮助。
更新:我正在寻找解决问题的数值方法。
您可以使用scipy.integrate.dblquad功能。请尝试以下操作。
import math
from scipy.integrate import dblquad
from scipy.special import erf, jv
def h(t, z):
return f(t) * g(z)
def f(t):
return 0.5 * t * (erf(t - a) - 1) * jv(0, q * t)
def g(z):
return math.exp(-((z - a) ** 2)/(2 * (s ** 2)))
if __name__ == '__main__':
a, q, s = 0, 1, 2 # set the constants
result, abserr = dblquad(h, 0, 60, lambda z: 0, lambda z: 2 * z)
print(f'result: {result}, abserr: {abserr}')