如何计算具有可变内部上限的双积分

问题描述 投票:0回答:1

我正在尝试评估一个双重积分,其中内部积分的极限是可变的,并且取决于外部积分。来自Matlab背景,使用符号集成很容易,但是我不知道如何在Python中以有效的方式计算它。我阅读了scipy文档,但没有任何帮助。这种积分的一个例子是

Equation

非常感谢您提供任何帮助。

更新:我正在寻找解决问题的数值方法。

python scipy integration symbolic-math numerical-computing
1个回答
0
投票

您可以使用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}')

© www.soinside.com 2019 - 2024. All rights reserved.