问题描述
我目前正在尝试编写一个函数,在给定几个参数的情况下,该函数将能够计算以下积分:
基本上,我的问题是右边的二重积分在左边的 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 (将#修改为@)