如何在 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 (将#修改为@)