随机微分方程的模拟:Euler-Maruyama、Milstein 和精确解

用 Euler-Maruyama 方法模拟几何布朗运动或 Ornstein-Uhlenbeck(Vasicek)过程,步长取多大才够准?

IFoA CM2IFoA CS2按输入的参数计算
对过的标准答案
3 条
覆盖的考试公式
0 个
参数
10 个
开源库
1 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • Kloeden、Platen:Numerical Solution of Stochastic Differential Equations第 9–10 章 Euler 和 Milstein 格式的收敛阶
  • IFoA CM2 核心读物Itô 公式、几何布朗运动、Vasicek 模型

这个方法算什么

由 Itô 公式得到几何布朗运动的精确解 S_T = S_0 exp((μ − σ²/2)T + σW_T),OU 过程的均值 θ + (x_0 − θ)e^{−κT}、方差 σ²(1 − e^{−2κT})/(2κ)、平稳分布 N(θ, σ²/2κ)。用同一组布朗增量比较 Euler-Maruyama、Milstein 和精确解:强误差 E|X̂_T − X_T| 和弱误差 |E X̂_T − E X_T| 随步长的变化,并估计收敛阶。

说明和限制

  • 全部格式用同一组最细网格(2^L 步)的布朗增量,粗网格的增量是细网格增量的和,所以强误差可以逐条路径比较。
  • GBM 的“精确解”是 Itô 公式给出的闭式解。OU 过程用精确的转移分布逐步更新时需要额外的随机数,和同一组增量不完全对应;所以 OU 的强误差以最细网格的精确离散(e^{−κΔt} 递推)为参照,弱误差用解析的均值。
  • 收敛阶用误差对步长的对数回归斜率估计:Euler-Maruyama 的强阶约 0.5、弱阶约 1;Milstein 的强阶约 1(OU 的 σ 不变,Milstein 和 EM 相同)。

数据

没有用数据:按输入的参数计算

开源库和版本

  • numpy2.4.6BSD-3-Clause数值计算

05同族的方法

随机过程,还有 12 个方法

同一个方法族里的其他方法。在智能体里,用一句话就能调用这些方法。

在智能体里这样问“用 Euler-Maruyama 方法模拟几何布朗运动或 Ornstein-Uhlenbeck(Vasicek)过程,步长取多大才够准?误差怎样随步长缩小?精确的均值、方差和平稳分布是多少?”