我的代码到目前为止,我非常新于编程并一直在尝试。
在这里,我应用Box-Muller变换来近似两个高斯正态分布,从一个随机均匀采样开始。然后,我为它们创建了一个直方图。
现在,我想将获得的直方图与“真实情况”进行比较:一个标准的钟形曲线。如何绘制这样的曲线以匹配直方图?
在这里,我应用Box-Muller变换来近似两个高斯正态分布,从一个随机均匀采样开始。然后,我为它们创建了一个直方图。
现在,我想将获得的直方图与“真实情况”进行比较:一个标准的钟形曲线。如何绘制这样的曲线以匹配直方图?
import numpy as np
import matplotlib.pyplot as plt
N = 10000
z1 = np.random.uniform(0, 1.0, N)
z2 = np.random.uniform(0, 1.0, N)
R_sq = -2 * np.log(z1)
theta = 2 * np.pi * z2
z1 = np.sqrt(R_sq) * np.cos(theta)
z2 = np.sqrt(R_sq) * np.sin(theta)
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
ax.hist(z1, bins=40, range=(-4, 4), color='red')
plt.title("Histgram")
plt.xlabel("z1")
plt.ylabel("frequency")
ax2 = fig.add_subplot(2, 1, 2)
ax2.hist(z2, bins=40, range=(-4, 4), color='blue')
plt.xlabel("z2")
plt.show()