python - Python中的嵌套积分
问题描述
我有一个一M
维积分,其中外部限制x_M
是[0, y]
,下一个限制x_{M-1}
是[0, max(x_M, y-x_M)]
,....并且内部积分是x_1
限制[0, max(x_2, y-x_M-...-x_2)]
。
函数/被积函数是
(K!/(K-M)!)*(1/(x_1+1)^2)*....*(1/(x_{M-1}+1)^2)*(1/(x_M+1)^{K-M+2})
其中K
和M
是整数,使得K >= M >= 1
和K!=K*(K-1)*...*2*1
是K
阶乘。
如何使用scipy.integrate.nquad在 Python 中执行此操作?我在这里遇到了类似的问题,但不知道如何将那里的代码扩展到我的情况。
积分的 LaTeX 版本:
我的尝试(但代码不起作用。它没有给出 0 到 1 之间的结果)
K=4
M=2
du = 0.01
#For m=M
def F(u):
return 1/(1+u)**(K-M+2)
#For m=1,2,...,M-1
def f(u):
return 1/((1+u))**2
#Recursive function to evaluate the integral
def G(h, m, prev_lim):
#print(f'h is {h}, and k is {k}')
if m == M:
res = F(h)
else:
res = 0
u = prev_lim
while u < h:
res += G(h-u, m+1, u)*f(u)*du
u += du
return (math.factorial(K)/math.factorial(K-M))*res
print(G(2, 1, 0))
解决方案
推荐阅读
- electron - ElectronJS 多显示器
- c# - 尝试使用 Equirectangular Projection 将 2D 坐标转换为 3D 坐标。但是失败了。我究竟做错了什么?
- python - Python:何时处理异常
- java - 返回一个回文字符串,它不是预期的。背后的机制是什么
- angularjs - 来自cookie angular js的令牌
- java - 具有后端服务器轮询其他 API 的 Web 应用程序的架构模式。
- firebase-realtime-database - Flutter Firebase 数据库错误的时间戳顺序
- php - 从变量上传文件到服务
- php - Laravel 5 如何使用内存缓存
- go - 将匿名结构元素添加到切片