gpt4 book ai didi

python - 将 Scipy 多重积分与单个变量结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 14:49:29 28 4
gpt4 key购买 nike

我有一个加速度函数 a(t),我知道如果我对 t 进行两次积分,我就能找到位置 x(t)。我试图找到 t = 10 秒的位置。

因为 a(t) 不是多变量的,所以我无法使用 Scipy dblquad 函数来计算我需要的二重积分。请看看我到目前为止有什么:

  def a(t):
return (2.5 / (1 + math.exp((t-8)/0.8)))

def upperbound():
return 10

def lowerbound():
return 0

x = dblquad(a,0,10,lowerbound,upperbound)

这不起作用,因为据我所知,dblquad 需要一个多变量 a(t)。谁能帮忙?

最佳答案

你可以使用scipy的单变量积分两次来完成这个

import math
from scipy.integrate import quad

def a(t):
return (2.5 / (1 + math.exp((t-8)/0.8)))

lb, ub = 0, 10

integral = quad(lambda t: quad(a, 0, t)[0], lb, ub)[0]
print(integral)
# 86.28470375472537

这是必要的,因为您要实现的不是对两个变量的函数进行积分,而是对一个变量的函数进行两次积分。在上面的积分语句中,内部 quad 对函数进行一次积分,但将积分保持为 t 的函数。外部 quad 在定义的限制范围内对函数进行第二次积分。

请注意,必须从 quad 的输出中获取第一个参数,因为它输出一个元组。第二个参数是数值积分误差的上限。

关于python - 将 Scipy 多重积分与单个变量结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46940556/

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