【发布时间】:2018-02-13 22:45:23
【问题描述】:
我想用蒙特卡罗方法整合下面给出的函数:
f(x,y,z) = (x**2 * y * z) + (y**2 * z**2 * x) + (x**3 * y**3 *z)
有限制:
0 <= x < 4,
0 <= y < 2*(x**2),
0 <= z < 1.
这是我迄今为止尝试过的。
from skmonaco import mcquad
def g(t):
"""
The integrand.
"""
x = t[0]
y = t[1]
z = t[2]
f = (x**2 * y * z) + (y**2 * z**2 * x) + (x**3 * y**3 *z)
return f
mcquad(g,npoints=100000,xl=[0., 0., 0.],xu=[4., 10., 1.],nprocs=4)
如果我将 y 的限制设置在两个常数之间,我会得到正确的答案。例如:0
【问题讨论】:
标签: python python-3.x montecarlo numerical-integration