如何使用 scipy.integrate.quad 将多元积分的支持更改为 [0,1]^k?

问题描述

以下 k 维积分具有依赖限制(依赖于 gamma支持):

from  scipy.integrate import nquad
import numpy as np

def func(*args):
    gamma = args[-1]
    var = np.array(args[:-1])

    return (1-1/(1+gamma-np.sum(var)))*np.prod(((1+var)**-2))

def range_func(*args):
    gamma = args[-1]
    return (0,gamma-sum(args[:-1]))

gamma,k = 10,2
print(nquad(func,[range_func]*k,args=(gamma,) ))

限制在上面的函数 range_func 中定义

return (0,gamma-sum(args[:-1]))

如何将此支持更改为简单的 [0,1]^k 以便 scipy.integrate.nquad 仍然有效?也就是说,每个整数符号都从 0 到 1。我是否只是将其更改为 return (0,1)

(source of code,这只是我打算做的一个玩具示例)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)