随机微分方程数值实验 Euler方法 Euler-Maruyama(matlab)

算例:

随机线性微分方程

$\begin{aligned} & d X(t)=\lambda X(t) d t+\mu X(t) d W(t), \\ & X(0)=X_0,\end{aligned}$

真解为

$X(t)=X(0) \exp \left(\left(\lambda-\frac{1}{2} \mu^2\right) t+\mu W(t)\right)$

用Euler-Maruyama方法得出数值解

$X_j=X_{j-1}+f\left(X_j\right) \Delta t+g\left(X_{j-1}\right)\left(W\left(\tau_j\right)-W\left(\tau_{j-1}\right)\right)$

程序:

randn('state',200)
lambda=4;
mu=1;
Xzero=1;
T=1;
N=2^8;
dt=1/N;
dW=sqrt(dt)*randn(1,N);
W=cumsum(dW);
Xture=Xzero*exp((lambda-0.5*mu^2)*([dt:dt:T])+mu*W);
plot([0:dt:T],[Xzero,Xture],'b-');
hold on
R=8;
Dt=R*dt;
L=N/R;
Xem=zeros(1,L);
Xtemp=Xzero;
for j=1:L
    Winc=sum(dW(R*(j-1)+1:R*j));
    Xtemp=Xtemp+Dt*lambda*Xtemp+mu*Xtemp*Winc;
    Xem(j)=Xtemp;
end
plot([0:Dt:T],[Xzero,Xem],'r--');
hold off
xlabel('t','FontSize',12)
ylabel('X','FontSize',16,'Rotation',0,'HorizontalAlignment','right');
title('EM 方法')
legend('exact solution','EM solution')
error=abs(Xem(end)-Xture(end))

结果:

$\lambda=4, \mu=1$

$\lambda=3, \mu=3$

$\lambda=2, \mu=4$

图像模拟基本一致,模拟效果较好,方法可行。

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟粥粥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值