A. *_*her 1 python numpy scipy python-3.x
更新**
我正在努力返回预期值 E[x^2]。我已经创建了正常函数来对平均值 mu 和 sigma2 的正常值进行采样。我想使用这个函数生成正常值,然后将fun应用于每个值。我是否需要在循环中定义期望值,然后应用fun?我可以在为每个 x 找到 x^2 后取平均值吗?这是我一直在做的事情:
def fun(x):
y=x**2
return y
def EV(fun,n_samples,mu,sigma2):
for i in range(1,n_samples):
Run Code Online (Sandbox Code Playgroud)
... u= np.random.uniform(0,1,1) ... output.append(float(y)) ... 返回输出
您正在进行蒙特卡罗实验,估计正态分布随机数的平方的期望值。为此,您只需累加伪随机偏差的平方和,然后除以它们的数量。
>>> import random
>>> n_samples = 100
>>> sum_x_2 = 0
>>> for i in range(n_samples):
... sum_x_2 += random.normalvariate(0,1)**2
...
>>> estimate = sum_x_2 / n_samples
>>> estimate
1.045308497590742
Run Code Online (Sandbox Code Playgroud)
我使用了标准正态偏差。
在 Python 中执行此操作的另一种方法是使用尝试执行计算机代数的库。
>>> from sympy.stats import E, Normal
>>> Z = Normal('Z', 0, 1)
>>> E(Z**2)
1
Run Code Online (Sandbox Code Playgroud)
考虑到我允许的样本太少,蒙特卡洛的表现还不错。
| 归档时间: |
|
| 查看次数: |
11735 次 |
| 最近记录: |