绘制中心极限定理

2017-09-10  本文已影响20人  b485c88ab697

练习:中心极限定理

#coding:utf-8
#/usr/bin/python
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt


if __name__ == '__main__':
    mpl.rcParams['font.sans-serif'] = [u'SimHei']
    mpl.rcParams['axes.unicode_minus'] = False  # win正常显示中文设置

    t = 1000 #次数
    a = np.zeros(10000) #生成10000个0的数组
    for i in range(t):
        a += np.random.uniform(-5, 5, 10000)
    a /= t
    #for循环首先生成(-5,5)的10000个随机数加到a中,然后做t次,
    #最后的a每一维上的数都是加了1000个(-5,5)的随机数
    #然后除以t,得到这1000个随机数的平均值
    plt.figure(figsize=(5,5),facecolor='w')
    plt.hist(a,bins=30,color='b',alpha = 0.5,normed=True,label='均匀分布叠加')
    plt.grid()
    plt.legend(loc='upper right')
    plt.show()

拓展

    lamda = 7
    p = stats.poisson(lamda)
    y = p.rvs(size=1000)#对p随机采样1000次
    mx = 30
    r = (0, mx)#直方图的宽度参数
    bins = r[1] - r[0]#均分多少份
    plt.figure(figsize=(15, 8), facecolor='w')
    plt.subplot(121)
    plt.hist(y, bins=bins, range=r, color='g', alpha=0.8, normed=1)
    t = np.arange(0, mx+1)
    plt.plot(t, p.pmf(t), 'ro-', lw=2)#取(0,30)的概率质量函数,也就是(0,30)中的数每一个数出现的次数
    plt.grid(True)

    N = 1000
    M = 10000
    plt.subplot(122)
    a = np.zeros(M, dtype=np.float)
    p = stats.poisson(lamda)
    for i in np.arange(N):
        a += p.rvs(size=M)#对p进行1000随机采样,每次采取10000个数字
    a /= N
    plt.hist(a, bins=20, color='g', alpha=0.8, normed=True)
    plt.grid(b=True)
    plt.show()
上一篇下一篇

猜你喜欢

热点阅读