微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Python 中计算复杂的嵌套二重积分

如何解决如何在 Python 中计算复杂的嵌套二重积分

我目前正在尝试编写一个函数,在给定几个参数的情况下,该函数将能够计算以下积分:

enter image description here

基本上,我的问题是右边的二重积分在左边的 dD 积分内,这意味着它是一个嵌套积分。我已经定义了所有函数(rho(D)、Q(DTheta)、Phi(M1)、Phi(M2)),所以代码让我感到困惑。此外,重要的是要注意,在这种情况下 M1 和 M2 是相同的。由于数学原因在这里不重要,它只完成了两次。我将在这里附上我所做的准系统。让我知道这看起来是否正确。

from scipy import integrate
import numpy as np

theta = np.arange(2,31,1) 
def get_answer(theta,several other arguments):
     Dmin = smin/theta
     Dmax = smax/theta
     integrand = np.zeros(shape=len(theta))

     i = 0
     for dmin,dmax,thetaloop in zip(Dmin,Dmax,theta):
          Drange = np.linspace(dmin,1000)
          integrandloop = np.zeros(shape=len(Drange))
          
          j = 0
          for dloop in Drange:
               Mmin = M_min(dloop)
               Mmax = M_max(dloop)
               Mrange = np.linspace(Mmin,Mmax,1000)
               integrandloop[j] = integrate.simps(Phi(Mrange),Mrange)
               j +=1

          function = Drange**3 * rho(Drange) * Q(D=Drange,thetaloop=thetaloop) * integrandlooP**2
          integrand[i] = integrate.simps(function,Drange)
          i +=1

     return integrand * Nwb * Omega

integrandloop 最后在那里平方的原因是 Phi(M1) 和 Phi(M2) 是一样的,所以二重积分的答案就是第一个积分平方(我希望哈哈)。我的问题是,这非常棘手,我什至不确定我最后得到的答案是否真的是我想要的。非常感谢有关如何进行嵌套积分的一些帮助。我曾尝试在线搜索 scipy 中的软件包,但找不到任何内容。抱歉数学混乱!希望我的问题有意义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。