2. 概率论与随机过程基础回顾

随机微分方程(SDE)的数值模拟,本质上是在计算机里“重演”一条随机轨道的演化。要做到这一点,必须先明确几个基础对象的含义:随机变量如何描述一次不确定的取值,期望与方差如何刻画它的中心与离散程度,条件期望如何表达“已知部分信息后的最佳预测”,高斯过程与布朗运动如何提供连续时间的随机驱动,以及白噪声在直观上到底是什么。本节把这些概念串成一条从“单点随机”到“连续随机路径”的线索,为后续的离散化格式打下语言基础。

随机变量、期望与方差

随机变量是把样本空间映射到实数的函数,记作 $X$。它不是一个固定的数,而是一个“按概率取值的规则”。离散情形用概率质量函数 $p(x_i)=P(X=x_i)$ 描述,连续情形用概率密度 $f(x)$ 描述,满足 $\int f(x)\,dx=1$。期望定义为加权平均:离散时 $E[X]=\sum_i x_i p(x_i)$,连续时 $E[X]=\int x f(x)\,dx$。方差 $Var(X)=E[(X-E[X])^2]=E[X^2]-(E[X])^2$,衡量取值围绕均值的散布程度,标准差是其平方根。

在模拟中,这两个量是最直接的检验指标。例如用蒙特卡洛方法生成 $N$ 个独立样本 $X_1,\dots,X_N$,样本均值 $\bar X=\frac1N\sum X_i$ 依大数定律收敛到 $E[X]$,样本方差 $S^2=\frac{1}{N-1}\sum (X_i-\bar X)^2$ 收敛到 $Var(X)$。若某段模拟代码声称生成标准正态样本,可以取 $N=10^5$,检查 $\bar X$ 是否接近 0、$S^2$ 是否接近 1;偏离过大往往说明采样或变换环节有误。需要注意,这是统计意义上的判断,样本量有限时允许合理波动,例如 $\bar X$ 的标准误约为 $1/\sqrt{N}\approx 0.003$。

条件期望:已知信息下的最佳预测

条件期望 $E[X\mid \mathcal{F}]$ 表示在已知信息集 $\mathcal{F}$ 的前提下对 $X$ 的期望。它本身是一个随机变量:信息越多,预测越精确。最常用的性质是全期望公式 $E[X]=E\big[E[X\mid \mathcal{F}]\big]$,以及“取出已知量”性质:若 $Y$ 关于 $\mathcal{F}$ 可测,则 $E[XY\mid\mathcal{F}]=Y\,E[X\mid\mathcal{F}]$。

条件期望在 SDE 理论中无处不在。马尔可夫性可以写成 $E[f(X_t)\mid \mathcal{F}_s]=E[f(X_t)\mid X_s]$($s

高斯过程与布朗运动

高斯过程是一族随机变量 $\{X_t\}_{t\ge0}$,任意有限个时刻的联合分布都是多元正态分布,完全由均值函数 $m(t)=E[X_t]$ 和协方差函数 $C(s,t)=Cov(X_s,X_t)$ 确定。布朗运动(维纳过程)$\{W_t\}$ 是最重要的高斯过程之一,定义性质为:$W_0=0$;增量独立,即对 $0\le t_1<\dotss$)。由此可得 $E[W_t]=0$,$Cov(W_s,W_t)=\min(s,t)$,$Var(W_t)=t$。

布朗运动的轨道几乎必然连续,但处处不可微,且二次变差为 $[W]_t=t$。这一点对数值模拟至关重要:它意味着在离散格式中,增量 $\Delta W=W_{t+\Delta t}-W_t$ 应取为 $\sqrt{\Delta t}\,\xi$,其中 $\xi\sim N(0,1)$,而不是 $\Delta t$ 量级的量。若把随机项误写成 $\Delta t\cdot\xi$,轨道的波动幅度会随步长缩小而错误地趋于零,模拟结果与真实过程完全不符。此外,布朗运动不是鞅以外的“平滑”对象,画图时步长过大会让轨道看起来像折线,这属于离散化伪影,而非过程本身的性质。

白噪声的直观理解

白噪声常被写作 $\xi_t$,直观上是“相邻时刻完全不相关、功率谱平坦”的随机信号,满足 $E[\xi_t]=0$,$Cov(\xi_s,\xi_t)=\delta(t-s)$(连续情形用狄拉克函数,离散情形用克罗内克符号)。严格来说,连续时间白噪声不是普通函数,而是一个广义过程;把它形式地积分就得到布朗运动:$W_t=\int_0^t \xi_s\,ds$。反过来,布朗运动的形式导数就是白噪声。因此在 SDE 写法 $dX_t=a(X_t)\,dt+b(X_t)\,dW_t$ 中,$dW_t$ 可以理解为“白噪声在短时间内的累积”,其尺度是 $\sqrt{dt}$。

离散模拟时,白噪声序列就是独立同分布的标准正态样本 $\xi_1,\xi_2,\dots$,每一步用 $\Delta W_k=\sqrt{\Delta t}\,\xi_k$ 构造布朗增量。若需要可复现实验,应固定随机数种子;若需要多条独立轨道,应使用相互独立的随机流。下面这张图把本节的核心对象与它们之间的关系集中呈现出来,便于对照理解。

从单点随机到连续随机路径:核心对象关系 随机变量 X 概率质量/密度函数 一次不确定的取值 期望与方差 E[X]:中心位置 Var(X):散布程度 条件期望 E[X | F]:已知信息下 的最佳预测 高斯过程 有限维联合分布为正态 由均值函数与协方差函数确定 布朗运动 W_t W_0=0,独立平稳增量 ΔW ~ N(0, Δt) 连续但处处不可微,二次变差=t 白噪声 ξ_t 零均值,不同时刻不相关 离散实现:独立标准正态序列 离散模拟 ΔW_k = √Δt · ξ_k ξ_k ~ N(0,1) 独立 蒙特卡洛估计期望 推广到时间族 矩刻画 马尔可夫/鞅 特例 形式导数 采样 生成增量 关键尺度:布朗增量 ΔW 的量级为 √Δt,而非 Δt;这是随机项离散化的核心约定

把概念落到模拟代码上

下面用一段最小示例把上述对象串起来:生成 $N$ 条布朗运动轨道,用蒙特卡洛估计 $E[W_T]$ 与 $Var(W_T)$,并与理论值 0 和 $T$ 对照。示例参数取 $T=1$、步数 $M=1000$、轨道数 $N=20000$,属于教学演示设定,结果会随随机种子波动。

import numpy as np

rng = np.random.default_rng(20240501)
T, M, N = 1.0, 1000, 20000
dt = T / M

# 每条轨道 M 步,共 N 条;dW 的形状为 (N, M)
dW = np.sqrt(dt) * rng.standard_normal((N, M))
W = np.concatenate([np.zeros((N, 1)), np.cumsum(dW, axis=1)], axis=1)

WT = W[:, -1]
print("E[W_T] 估计:", WT.mean())      # 理论值 0
print("Var[W_T] 估计:", WT.var(ddof=1))  # 理论值 T = 1
print("单条轨道末值:", WT[0])

运行后应看到均值在 0 附近、方差在 1 附近。若把 np.sqrt(dt) 误写成 dt,方差会缩小到约 $10^{-3}$ 量级,这就是前文强调的尺度错误。若把 standard_normal 换成均匀分布,增量分布不再正态,虽然均值和方差可能接近,但高阶矩与轨道局部行为会偏离布朗运动,做精细验证时会被发现。

检验随机模拟是否可信,优先看三个量:样本均值是否接近理论期望、样本方差是否接近理论方差、增量是否满足独立性与正确分布。三者都通过,再去看更复杂的 SDE 格式。