【发布时间】:2020-06-14 03:41:14
【问题描述】:
用蒙特卡洛积分估计以下积分:
我正在尝试对下面的问题进行蒙特卡洛积分,其中 p(x) 是均值为 1,方差为 2 的高斯分布。(见图)。
有人告诉我,一旦我们从正态分布中抽取样本,pdf 就会在积分中消失。请解释这个概念以及如何在 Python 中解决这个问题。下面是我的尝试。
def func(x):
return (math.exp(x))*x
mu = 1
sigma = sqrt(2)
N = 1000
areas = []
for i in range(N):
xrand = np.zeros(N)
for i in range (len(xrand)):
xrand[i] = np.random.normal(mu, sigma)
integral = 0.0
for i in range (N):
integral += func(xrand[i])/N
answer = integral
areas.append(answer)
plt.title("Distribution of areas calculated")
plt.hist(areas, 60, ec = 'black')
plt.xlabel("Areas")
integral
【问题讨论】:
标签: python integration montecarlo