随机微分方程-北太天元学习33
随机微分方程(SDE)是微分方程的一个分支,它在每个时间点上的解都受到随机因素的影响。这些方程通常可以用来描述在许多自然和社会科学中出现的不确定性的动态系统。
一般形式的随机微分方程看起来像这样:
dX(t) = f(X(t), t) dt + g(X(t), t) dW(t)
其中,X(t) 是在时间 t 的系统状态,f 和 g 是关于这个状态和时间的确定函数,
W(t) 是一个 标准 Wiener 过程(一种连续的随机过程, 在北太天元学习32中我们介绍过)。
这种形式的方程表示系统状态的改变率不仅取决于当前的状态和时间,还受到 Wiener 过程的
影响,而这个过程反映了未知的随机因素。
随机微分方程的应用领域广泛,包括但不限于:
金融数学:随机微分方程被广泛用于金融建模,如股票价格的演化、期权定价等。这些模型通常考虑随机因素,如市场噪音、投资者情绪等。
生物学:在生物学中,随机微分方程经常被用来描述基因表达、细胞生长、神经信号传导等过程的动态行为。
物理学:在物理学中,随机微分方程被用来描述随机漫步、布朗运动、扩散等过程。
工程学:在控制理论和信号处理中,随机微分方程用于描述和设计应对不确定性的系统。
重要性:
随机微分方程提供了一种描述和分析带有随机因素动态系统的有力工具。它不仅能够描述系统的行为,还可以帮助我们预测未来的可能变化,优化决策,以及理解和设计系统行为。此外,随机微分方程还在许多其他领域,如计算机科学、环境科学、社会科学等都有应用。
我们下面谈谈如何用北太天元数值求解一个随机微分方程。假设证券价格X(t) 满足下面的随机微分方程
d X(t) = \mu X(t) d t + \sigma X(t) d W(t)
其中 X(t) 是股票的价格, 是我们需要求解的未知量, 其中 \mu 和 \sigma 是两个常数,
W(t) 是维纳过程 (我们在北太天元学习32中简单了解过),因此,对于上面的常微分方程
W(t) 就是一个已知的"函数"。 如果 d W(t) 可以写成 W'(t) dt, 那么上面的随机微分方程
就可以写成
X'(t) = \mu X(t) + \sigma X(t) W'(t)
但是, W(t) 不是一个普通的函数, W(t) 无法求导。 在数值计算的时候,我们还是
把要计算时间区间 [0, T] 分成小区间, 在 [t,t+h] 这个小区间上
\int_{t}^{t+h} d W(t) = W(t+h) - W(t)
这就可以用在我们求解 X(t+h) 上, 进一步完整写出来是这样的
X(t+h) - X(t) = \int_{t} ^{t+h} \mu X(s) ds + \int_{t}^{t+h} \sigma X(s) d W(s)
我们把上面的积分用矩形积分公式,就可以得到
X(t+h) - X(t) = \mu * X(t) * h + \sigma * X(t) ( W(t+h) - W(t) ).
注意,W(t) 是一个标准Wiener过程,所以W(t+h)-W(t) 是一个高斯随机变量(均值为0,方程是 h), 即 W(t+h)-W(t) ~ N(0, h).
通过上面的讨论, 实际上我们就得到了以下数值方法:
X_{n+1} = X_n + \mu * X_n * h + \sigma *X_n * sqrt{h} \xi_n
这里的h 是时间步长,X_{n}用来逼近X(nh)的数值解,{\xi_𝑛}是相互独立的标准高斯随机变量(即均值0和方差1)的集合。这被称为Euler–Maruyama方法。
我们在北太天元上实现上面的算法,做一次模拟得到的证券价格X(t)随着时间的变化的情况如下

得到上面的图像所用的北太天元的代码如下:
% 北太天元 用 Euler-Maruyama 方法 求解 随机微分方程
% 证券价格满足的随机微分方程
% d X(t) = mu X(t) + sigma * X(t) d W(t)
% 其中W(t) 是标准布朗运动(标准维纳过程)
%
close all
clear all
clc
mu = 1; sigma = 1; Xzero = 0.5;
T = 1; N = 2^8; h = T/N;
X = zeros(1,N+1);
X(1) = Xzero;
for n = 1:N
X(n+1) = X(n) + mu*X(n)*h + X(n)* sigma*sqrt(h)*randn;
end
plot([0:h:T],X,'r--*', 'LineWidth', 4)
title("北太天元模拟随机微分方程")
xlabel("时间")
ylabel("证券价格X(t)")