如何使用 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)
我希望这是您想要的功能。
假设我有一个被积函数,我想使用各种上限对该函数进行积分。在我的代码中,上限为 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)
我希望这是您想要的功能。