首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用具有单变量的Scipy多重积分

使用具有单变量的Scipy多重积分
EN

Stack Overflow用户
提问于 2017-10-26 03:23:53
回答 1查看 1.4K关注 0票数 3

我有一个关于加速度a( t )的函数,如果我对t积分两次,就可以找到位置x(t)。我正试图找到t= 10秒的位置。

因为a(t)不是多变量,所以我在使用Scipy dblquad函数来计算我需要的二重积分时遇到了问题。请看我到目前为止所拥有的:

代码语言:javascript
复制
  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)。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-26 03:50:08

您可以使用scipy的单变量集成两次来实现这一点

代码语言:javascript
复制
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的输出中获取第一个参数,因为它输出一个元组。第二个参数是数值积分误差的上界。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46940556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档