sherlorsene 发表于 2008-3-4 11:58

如何用matlab实现二阶随机微分方程数值解法

方程为dX=Ydt;
          dY=2*Xdt+dW(t),W(t)为标准布朗运动
数值方法为X(j)=X(j-1)+Y(j-1)*t;
                        Y(j)=Y(j-1)+2*X(j-1)*t+dW(j)
我编的程序是
function elx(a,b,M,xa,ya)
h=(b-a)/M;
T=zeros(1,M+1);
X=zeros(1,M+1);
Y=zeros(1,M+1);
T=a:h:b;
X(1)=xa;
Y(1)=ya;
for j=1:M
    X(j+1)=X(j)+Y(j)*h;
    Y(j+1)=Y(j)+2*X(j)*h+randn*h^0.5;
end
plot(T,X);
但最后的图像与书上的结果不一样

[ 本帖最后由 sigma665 于 2008-3-4 12:18 编辑 ]
页: [1]
查看完整版本: 如何用matlab实现二阶随机微分方程数值解法