题中有几个参数的含义都没做说明,取值范围也不清楚:
1、μ和σ惯例是均值和均方差的符号,是哪个量的均方差?取值范围呢?
2、Δt是什么?
3、第一个方程中的S应该是指第二个方程中的S(t-1)吧?
4、ε“服从标准正态分布”的意思应该是其均值为0、方差为1?
代码并不复杂:
123456789101112N = 1000;S = zeros(N+1,1);S(1) = 100;mu = 100;sigma = 30;dt = 0.001;e = randn(N,1);for i = 2 : N+1 DS = S(i-1) * ( mu*dt + sigma * e(i-1) * sqrt(dt) ); S(i) = S(i-1) + DS;endstem(0:N,S)
从参数取值看,Δt的影响比较大,如果取的稍大一些,就很容易发散。而按照当前的参数值,尽管过程不同,最终都能收敛到0。
clear lam=500e-9;%λ=lam a=2e-3;D=1;%变量a,D ym=5*lam*D/a;xs=ym; n=101;ys=linspace(-ym,ym,n);%在范围【-ym ym】之间产生n个数据 for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2);%r1表达式的matlab书写形式 r2=sqrt((ys(i)+a/2).^2+D^2);%r2表达式的matlab书写形式 phi=2*pi*(r2-r1)./lam;%);%);%Φ表达式的matlab书写形式 B(i,:)=sum(4*cos(phi/2).^2);%光强的matlab书写形式 end N=0; Br=(B/4.0)*N; subplot(1,2,1)%把图形画在1行2列图像中的第一幅图中, image(xs,ys,Br);%画图函数 colormap(gray(N));%控制颜色 subplot(1,2,2)%把图形画在1行2列图像中的第二幅图中, plot(B,ys) ;%画图函数