如何使用 Python 集成多个上限的函数?

How to integrate a function for multiple upper limits using Python?

假设我有一个被积函数,我想使用各种上限对该函数进行积分。在我的代码中,上限为 1。但我想使用 1、2、4、6 计算积分。我该怎么做?我是否使用地图功能?我尝试将上限设置为数组,但出现各种错误。这是我的代码,仅使用 1。感谢任何帮助。

from scipy.integrate import quad
def integrand(x, a, b):
    return a*x**2 + b

a = 2
b = 1
I = quad(integrand, 0, 1, args=(a,b))

您可以定义一个函数来简单地调用 quad 每个您想要的上限。

from scipy.integrate import quad
# typing is just for clarity
from typing import List

def integrand(x, a, b):
    return a*x**2 + b

def multi_integrate(a,b,lb:float, ub_ls:List[float]) -> List:
    results = []
    # loop through all upper bounds
    for ub in ub_ls:
        results.append(quad(integrand,lb,ub,args=(a,b)))
    return results

# variables
a = 2
b = 1
# upper bound and list of lower bounds
lb = 0
ub_ls = [1,2,4,6]
# get a list of your integral results
I = multi_integrate(a,b, lb,ub_ls)

我希望这是您想要的功能。