概率论简单回顾

随机变量 Random Variable

alt text

  • 随机变量 $ X $:代表潜在值的分布。
  • 概率密度函数(PDF)$ X \sim p(x) $:描述随机过程选取值 $ x $ 的相对概率。
  • 示例:均匀的概率密度函数:在一个定义域内所有值的可能性均等。
    • 例如:六面骰子,$ X $ 取值为 $ 1,2,3,4,5,6 $,且 $ p(1)=p(2)=p(3)=p(4)=p(5)=p(6) $。

概率 Probabilities

alt text

  • 存在 $ n $ 个离散值 $ x_i $,每个值对应概率 $ p_i $。
  • 概率分布的要求:
    • $ p_i \geq 0 $
    • $ \sum_{i = 1}^{n} p_i = 1 $
  • 六面骰子示例:$ p_i = \frac{1}{6} $

随机变量的期望 Expected Value of a Random Variable

alt text

  • 是从随机分布中反复抽取样本时得到的平均值。
  • 若随机变量 $ X $ 来自具有 $ n $ 个离散值 $ xi $(对应概率为 $ p_i )的分布, X $ 的期望值为:$ E[X] = \sum{i = 1}^{n} x_i p_i $。
  • 骰子示例:$ E[X] = \sum_{i = 1}^{6} \frac{i}{6} = (1 + 2 + 3 + 4 + 5 + 6)/6 = 3.5 $。

概率密度函数 Probability Density Function (PDF)

alt text

  • 随机变量 $ X $ 满足 $ X \sim p(x) $,可取连续范围内的任意值,某一特定值的相对概率由连续概率密度函数 $ p(x) $ 给出。
  • $ p(x) $ 需满足的条件:$ p(x) \geq 0 $ 且 $ \int p(x) dx = 1 $。
  • $ X $ 的期望值:$ E[X] = \int x p(x) dx $。

随机变量的函数 Function of a Random Variable

alt text

  • 随机变量 $ X $ 的函数 $ Y $ 也是一个随机变量:
    • 若 $ X \sim p(x) $,且 $ Y = f(X) $。
  • 随机变量函数的期望值:
    $ E[Y] = E[f(X)] = \int f(x) p(x) dx $

蒙特卡洛积分 Monte Carlo Integration

离散数字的平均值

计算方法是:​​ 所有数值之和 ​​ 除以 ​​ 数值的个数 ​​。

连续函数的平均值

一个连续函数 $ y = f(x) $ 在区间 $ [a, b] $ 上的又无穷多个点,我们可以将连续转化为近似离散,再取极限逼近连续。

近似离散

首先将区间 $ [a, b] $ 分成 $ n $ 个小区间,每个小区间的宽度为 $ \Delta x = \frac{b-a}{n} $。然后在每个小区间内选择一个点 $ x_i $,计算函数值 $ f(x_i) $。最后,计算这些函数值的平均值:

函数平均值1ni=1nf(xi)\text{函数平均值} \approx \frac{1}{n} \sum_{i=1}^{n} f(x_i)

函数平均值1bai=1nf(xi)Δx\text{函数平均值} \approx \frac{1}{b-a} \sum_{i=1}^{n} f(x_i) \Delta x

极限逼近

当 $ n \to \infty $ 时,$ \Delta x \to 0 $,上述近似变为精确的积分表达式:

函数平均值=1baabf(x)dx\text{函数平均值} = \frac{1}{b-a} \int_{a}^{b} f(x) dx

几何意义

  • 函数 $ f(x) $ 在区间 $ [a, b] $ 上的平均值可以看作是该区间内函数值的“平均高度”。
  • 该平均值乘以区间长度 $ (b-a) $,即为函数在该区间内与 x 轴围成的面积。

物理意义

  • 如果将 $ f(x) $ 视为某种物理量(如速度、温度等),那么该平均值表示在区间 $ [a, b] $ 上该物理量的平均水平。
  • 例如,若 $ v(t) $ 表示某物体在时间 $ t $ 时的速度,则在时间区间 $ [t_1, t_2] $ 上的平均速度为:

    平均速度=1t2t1t1t2v(t)dt=位移时间间隔\text{平均速度} = \frac{1}{t_2 - t_1} \int_{t_1}^{t_2} v(t) dt = \frac{\text{位移}}{\text{时间间隔}}

  • 该平均速度乘以时间间隔 $ (t_2 - t_1) $,即为物体在该时间段内的位移。

蒙特卡洛积分

蒙特卡洛积分是一种通过随机采样来估计积分值的方法,特别适用于高维积分或复杂函数的积分。

均匀分布的随机变量的蒙特卡洛积分

将连续函数的平均值表达式变形为:

abf(x)dx=(ba)函数平均值\int_{a}^{b} f(x) dx = (b-a) \cdot \text{函数平均值}

在区间 $ [a, b] $ 上随机选择 $ N $ 个点 $ X_i $,计算这些点的函数值的算数平均值:

算数平均值1Ni=1Nf(Xi)\text{算数平均值} \approx \frac{1}{N} \sum_{i=1}^{N} f(X_i)

当 $ N \to \infty $ 时,算数平均值趋近于函数的平均值:

函数平均值=limN1Ni=1Nf(Xi)\text{函数平均值} = \lim_{N \to \infty} \frac{1}{N} \sum_{i=1}^{N} f(X_i)

因此,蒙特卡洛积分的估计公式为:

abf(x)dx(ba)1Ni=1Nf(Xi)\int_{a}^{b} f(x) dx \approx (b-a) \cdot \frac{1}{N} \sum_{i=1}^{N} f(X_i)

代码示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np

# 设置随机种子确保结果可复现
np.random.seed(42)

# 定义函数和积分区间
def f(x):
return x**2

a, b = 0, 1 # 积分区间
N = 10000 # 采样点数

# 生成均匀分布的随机点
x_samples = np.random.uniform(a, b, N)

# 计算函数值
f_values = f(x_samples)

# 计算蒙特卡洛积分估计
integral_estimate = (b - a) * np.mean(f_values)

# 计算真实值(用于比较)
exact_value = 1/3

# 输出结果
print(f"蒙特卡洛估计值: {integral_estimate:.6f}")
print(f"精确值 (1/3): {exact_value:.6f}")
print(f"绝对误差: {abs(integral_estimate - exact_value):.6f}")
print(f"相对误差: {abs(integral_estimate - exact_value)/exact_value*100:.4f}%")

一般分布的随机变量的蒙特卡洛积分

对于一般分布的随机变量 $ X \sim p(x) $,其概率密度函数为 $ p(x) $,我们可以通过以下步骤进行蒙特卡洛积分:

  1. 采样:从概率密度函数 $ p(x) $ 中随机采样 $ N $ 个点 $ X_i $。
  2. 计算函数值:计算每个采样点的函数值 $ f(X_i) $。
  3. 计算加权平均值:由于采样点来自 $ p(x) $,我们需要对函数值进行加权,权重为 $ \frac{1}{p(X_i)} $。因此,蒙特卡洛积分的估计公式为:

    f(x)dx1Ni=1Nf(Xi)p(Xi)\int f(x) dx \approx \frac{1}{N} \sum_{i=1}^{N} \frac{f(X_i)}{p(X_i)}