最近更新于 2025-04-08 20:36
概念
若随机变量\mathbf{X}
服从一个平均数为\mu
、标准差为\sigma
的正态分布,则记为:
\mathbf{X\sim N(\mu,\sigma^2)}
概率密度函数(Probability Density Function):f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}
计算机计算和绘图
测试环境
- Python 3.13.1
- Jupyter==1.11.1
- matplotlib==3.10.1
- numpy==2.2.4
- sympy==1.13.3
已知均值、标准差绘图
Jupyter
import numpy as np
import matplotlib.pyplot as plt
# 均值
mu = 0
# 标准差
sigma = 1
# 生成 X 值
# 生成 100 个点,范围从 μ-3σ 到 μ+3σ
x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 100)
# 计算 x 值对应的概率密度函数值
y = np.e ** (-(x - mu) ** 2 / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))
# 绘制正态分布曲线
plt.plot(x, y, label='Normal Distribution')
# 添加图例
plt.legend()
# 添加坐标轴标签
plt.xlabel('x')
plt.ylabel('Probability Density')
# 显示图形
plt.show()
三个典型区间概率
Jupyter
import sympy as sy
# 定义符号
x, mu = sy.symbols('x mu', real=True) # 实数
sigma = sy.symbols('sigma', real=True, positive=True) # 正实数
# 定义正态分布的概率密度函数
f = sy.E ** (-(x - mu) ** 2 / (2 * sigma ** 2)) / (sigma * sy.sqrt(2 * sy.pi))
# 计算 -∞ 到 +∞ 的积分
all =sy.integrate(f, (x, -sy.oo, sy.oo))
print('-∞ 到 +∞ 的积分=')
display(all)
# 计算 μ-σ 到 μ+σ 的积分
result1 = sy.integrate(f, (x, mu - 1 * sigma, mu + 1 * sigma))
print('μ-σ 到 μ+σ 的积分=')
display(result1)
print(result1.evalf(16))
# 计算 μ-2σ 到 μ+2σ 的积分
result2 = sy.integrate(f, (x, mu - 2 * sigma, mu + 2 * sigma))
print('μ-2σ 到 μ+2σ 的积分=')
display(result2)
print(result2.evalf(16))
# 计算 μ-σ 到 μ+σ 的积分
result3 = sy.integrate(f, (x, mu - 3 * sigma, mu + 3 * sigma))
print('μ-3σ 到 μ+3σ 的积分=')
display(result3)
print(result3.evalf(16))
即
P(\mu\pm\sigma)=erf(\frac{\sqrt{2}}{2})\approx0.6826894921370859
P(\mu\pm2\sigma)=erf(\sqrt{2})\approx0.9544997361036416
P(\mu\pm3\sigma)=erf(\frac{3\sqrt{2}}{2})\approx0.9973002039367398
正态分布 Normal Distribution