基于伊藤随机微积分的布朗运动数值模拟与统计分析系统
项目简介
本项目是一个基于MATLAB开发的综合数值计算平台,旨在深度结合伊藤(Itô)随机积分理论,对布朗运动及相关随机微分方程(SDE)进行精确模拟与多维统计分析。系统通过蒙特卡洛方法生成满足物理规律的随机轨迹,利用欧拉-马儒山(Euler-Maruyama)及Milstein算法求解动力学方程,并结合分形几何理论(Hurst指数)不仅验证了布朗运动“处处连续但处处不可导”的数学特性,还通过爱因斯坦-斯托克斯方程量化研究了温度、粘度等物理参数对粒子扩散行为的影响。
系统要求
- 开发环境:MATLAB
- 工具箱依赖:基础数学工具箱(无需特殊工具箱,代码利用了MATLAB内置的统计与绘图函数)
核心功能与特性
1. 物理背景下的3D布朗运动模拟
系统基于真实的物理模型生成三维空间中的随机行走轨迹。
- 物理参数建模:内置爱因斯坦-斯托克斯(Einstein-Stokes)方程,根据绝对温度、液体粘度(如水环境)、玻尔兹曼常数和粒子半径计算理论扩散系数 $D$。
- 维纳过程生成:通过生成服从正态分布的增量来模拟标准维纳过程,利用时间步长的平方根缩放,精确构建粒子的空间位移。
- 轨迹可视化:提供3D空间轨迹图及2D平面投影,直观展示粒子运动的随机性与连续性。
2. SDE数值解法对比(Euler vs Milstein)
针对几何布朗运动(GBM)模型,实现了两种主流的随机微分方程数值解法,并与解析解进行对比。
- Euler-Maruyama方法:实现经典的一阶数值迭代格式。
- Milstein方法:引入了伊藤校正项(涉及扩散项及其导数),以提高强收敛阶数,代码中精确计算了校正项 $0.5 sigma^2 X (dW^2 - dt)$。
- 误差验证:通过同一图表展示解析解、Euler解和Milstein解的演化曲线,直观对比不同算法的精度。
3. 统计规律验证
从大量样本路径中提取统计特征,验证随机过程的理论性质。
- 均方位移(MSD)分析:计算所有样本的均方位移,并与理论值($6Dt$)进行比较,验证扩散过程随时间的线性增长规律。
- 概率密度分布(PDF)拟合:统计仿真终点时刻粒子的位置分布,计算直方图并拟合理论高斯分布曲线,验证扩散过程的位置概率密度服从正态分布。
4. 自相似性与分形分析
系统集成重标极差分析法(R/S Analysis)来量化时间序列的长程相关性。
- Hurst指数计算:对生成的随机轨迹进行多尺度分割,计算各尺度下的R/S值。
- 双对数回归:通过线性回归拟合 $log(R/S)$ 与 $log(n)$ 的关系,估算赫斯特指数 $H$ 及分形维数,验证布朗运动($H approx 0.5$)的统计特性。
5. 物理参数敏感性研究
通过控制变量法,分析不同物理条件对粒子运动活跃度的影响。
- 温度影响:固定粒子半径,模拟不同温度下的运动轨迹,验证温度越高扩散越剧烈的规律。
- 尺寸影响:固定温度,模拟不同半径粒子的运动轨迹,验证粒子越小扩散越快的规律。
使用方法
直接运行主脚本即可启动仿真。脚本将自动执行以下流程:
- 初始化参数并固定随机种子以保证结果可重复。
- 计算物理扩散系数并生成3D布朗运动数据。
- 利用不同数值算法求解SDE并计算解析解。
- 执行统计分析(MSD、PDF)和分形分析(R/S)。
- 弹出两个可视化窗口:
*
综合分析窗口:包含3D轨迹、2D投影、MSD验证、PDF分布、SDE解法对比及Hurst指数分析六个子图。
*
参数敏感性窗口:包含温度敏感性和粒子尺寸敏感性两个对比图。
代码实现逻辑详解
参数初始化与物理模型
代码首先定义了仿真时间总长、步数以及蒙特卡洛模拟的样本数量(500条路径)。物理参数部分定义了玻尔兹曼常数、环境温度(300K)、流体粘度及微粒半径,并据此计算扩散系数。此外,还定义了用于GBM模型的漂移项和扩散项系数。
随机行走生成机制
采用向量化编程方式生成 $N times M$ 维度的正态分布随机数矩阵,代表每一步的布朗增量。通过乘以尺度因子 $sqrt{2D cdot dt}$ 将数学增量转化为物理位移。使用
cumsum 函数对增量进行累加,从而获得从原点出发的连续轨迹坐标(X, Y, Z)。
SDE数值求解算法实现
- Euler-Maruyama:在迭代循环中,下一时刻的状态仅依赖于当前状态的漂移项和扩散项的线性组合。
- Milstein方法:在Euler方法的基础上,代码增加了一个显式的二阶修正项。由于模型为几何布朗运动,扩散项 $b(x) = sigma x$,其导数 $b'(x) = sigma$,因此修正项被硬编码为 $0.5 sigma^2 X (dW^2 - dt)$。
统计分析模块
- MSD计算:对所有样本路径在每一时刻的平方位移求均值,通过与时间轴的数据对比验证爱因斯坦扩散定律。
- PDF验证:提取所有样本在最终时刻的X坐标,绘制归一化直方图,并利用扩散方程的基解(高斯函数,方差为 $2DT$)绘制理论曲线进行重叠展示。
分形分析(辅助函数)
代码包含一个名为
calculate_hurst 的内部函数。该函数采用R/S分析法:
- 尺度划分:将时间序列划分为不同长度的子区间。
- 极差与标准差计算:对于每个子区间,计算其累积离差的极差(R)和标准差(S)。
- 对数拟合:计算各尺度下 R/S 的平均值,在双对数坐标系下进行线性拟合,斜率即为Hurst指数。
可视化逻辑
主程序使用了两个
figure 对象。
- 图窗1 利用
subplot(2,3,...) 布局,展示了从微观轨迹到宏观统计的全貌,包括三维视图、SDE算法的收敛性对比以及分形特征的线性拟合图。 - 图窗2 专门用于物理参数对比,通过循环生成不同温度和半径下的单条典型路径并叠加绘图,直观展示参数变化对扩散速率(即轨迹波动幅度)的影响。