正态分布及其图形
原创
©著作权归作者所有:来自51CTO博客作者mb60b8e4a00e141的原创作品,请联系作者获取转载授权,否则将追究法律责任
目录
- 前言
- 正态分布
- 正态分布图形
- 参考文献
前言
正态分布是最常见的一种的概率分布,最早由棣莫弗(Abraham de Moivre)于1733年求二项分布的渐近公式中得到,后由德国数学家Gauss率先将其应用于天文学研究,也称为高斯分布,研究表明,自然界、人类社会中大量现象均按正态形式分布,正态分布非常常见,因此,正态分布也叫常态分布现象,这一次,我们先简单认识一下正态分布,然后重点研究正态分布的图形。
正态分布
若随机变量(X)服从一个数学期望为
、方差为
的概率分布,其概率密度函数为
![正态分布及其图形_标准差_03](https://math-api.51cto.com/?from=%20%20%20%20%20%20%20%20%20f%28x%29%20%3D%20%5Cfrac%7B1%7D%7B%5Csqrt%20%7B2%5Cpi%7D%5Csigma%7D%20e%5E%7B-%5Cfrac%7B%28x-%5Cmu%29%5E2%7D%7B2%5Csigma%5E2%7D%7D%20)
则称其分布服从正态分布,记作
,特别的,当
时,称为标准正态分布。
正态分布图形
正态分布曲线中间高,两头低,左右对称,呈钟形,因此人们也经常称正态分布曲线为钟形曲线。由正态分布函数表达式来看,主要由两个参数
决定,其中,数学期望为
决定了其水平位置,其标准差
决定了其分布的高低胖瘦,下面我们以标准正态分布为例重点来研究一下正态分布图像,采取循序渐进的方式,首先,看一下静态的正态分布图形。
import numpy as np
import matplotlib.pyplot as plt
import math
mu = 0 # 均值μ
sigma = 1 # 标准差σ
x = np.linspace(-2, 2, 50)
y = np.exp(-(x - mu) ** 2 / (2 * sigma ** 2)) / (math.sqrt(2 * math.pi) * sigma)
plt.figure(figsize = (6,4))
plt.plot(x, y, "r-", linewidth=2, label = r'$f(x) = \frac{1}{\sqrt {2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$')
plt.grid(True)
plt.legend(loc = 'best')
plt.show()
预览效果如下
![正态分布 正态分布及其图形_标准差_09](https://s2.51cto.com/images/blog/202212/17000153_639c96711855480509.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)
接着,通过调节参数 ![正态分布及其图形_数学工程学](https://math-api.51cto.com/?from=%20%20%20%20%20%20%20%5Cmu)
fig = plt.figure(figsize=(16, 9)) #新建画布模板
def chartFunc(i = int): #定义曲线图
colormap = cm.rainbow(np.linspace(0, 1, 10))
sigma = 1 # 标准差σ
myx = np.linspace(-10, 10, 1000, endpoint = True) #横坐标范围
myy = np.exp(-(myx - i) ** 2 / (2 * sigma ** 2)) / (math.sqrt(2 * math.pi) * sigma) #纵坐标
plt.plot(myx, myy, linewidth = 2.0, color = colormap[i], label = "{}".format(str(i))) #
plt.text(x=i-0.2, y = 0.41, s= r"$\mu ={}$".format(i), fontsize = 9)
plt.grid(True)
animator = animation.FuncAnimation(fig, chartFunc, frames = np.arange(-5, 6, step=1), interval = 1000, repeat = True) #渲染动图
animator.save(r"D:\guassian_distribution.gif", writer="pillow") #保存为gif动图
效果图如下
![mu 正态分布及其图形_数学工程学_11](https://s2.51cto.com/images/blog/202212/17000153_639c96713597b53672.gif)
从上图可以看到随着参数
的逐渐增大,正态曲线图的对称轴从左往右边移动,形态未发生变化,只是位置发生了变化。
然后,通过调节参数 ![正态分布及其图形_标准差_08](https://math-api.51cto.com/?from=%20%20%20%20%20%20%20%5Csigma)
fig = plt.figure(figsize=(16, 9)) #新建画布模板
def chartFunc(i = int): #定义曲线图
colormap = cm.rainbow(np.linspace(0, 1, 10))
mu = 0
myx = np.linspace(-10, 10, 1000, endpoint = True) #横坐标范围
myy = np.exp(-(myx - mu) ** 2 / (2 * i ** 2)) / (math.sqrt(2 * math.pi) *i) #纵坐标
plt.plot(myx, myy, linewidth = 2.0, color = colormap[i],label = "$\sigma ={}$".format(str(i))) #,
# plt.text(x=10, y=i/10, s= r"$\sigma ={}$".format(i), fontsize = 13)
plt.legend()
plt.grid(True)
animator = animation.FuncAnimation(fig, chartFunc, frames = np.arange(1, 10, step=1), interval = 500, repeat = True) #渲染动图
animator.save(r"D:\guassian_distribution.gif", writer="pillow") #保存为gif动图
效果图如下
![sigma 正态分布及其图形_数学工程学_14](https://s2.51cto.com/images/blog/202212/17000153_639c9671701e191402.gif)
从上图可以看到随着参数
的逐渐增大,正态曲线形态从高高瘦瘦的珠穆朗玛峰变成了心宽体胖的小土坡。
参考文献
1,https://baike.baidu.com/item/正态分布/829892?fr=aladdin