Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга. Глава 8.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.37 Mб
Скачать

17.4.2 Программа для численного эксперимента 8.2 при ,

clear;

t0=0; tk=1;

a=5; b=0.01;

st=1.73;

for jj=2:6,

randn ('state', 0);

dt=1/(2^jj);

t=t0:dt:tk;

l=max(size(t))-1;

he=0;

al1=1;al2=1;

for i=1:20*100,

x1(1)=1;

x2(1)=0;

H0=[x1(1); x2(1)];

y1(1)=1;

y2(1)=0;

a1=1/(1+al1*a*dt);

a2=1/(1+al2*a*dt);

a3=al1*al2*(a*dt)^2;

a4=(1/(1-a3*a1*a2))*a1;

sw=0;

for p=1:l,

u=randn;

sw=sw+u;

xx1=expm((-0.5*(b^2))*p*dt+b*sqrt(dt)*sw);

xx2=expm((-2*a-0.5*(b^2))*p*dt+b*sqrt(dt)*sw);

F=[xx1 0; 0 xx2];

D=[1 1; 1 -1];

H=0.5*D*F*D*H0;

x1(p+1)=H(1,1);

x2(p+1)=H(2,1);

y1(p+1)=a4*(y1(p)+((al1*a*a2)*(y2(p)+(1-al2)*a*(y1(p)-y2(p))*dt+b*y2(p)*sqrt(dt)*u)+(1-al1)*a*(y2(p)-y1(p)))*dt+b*y1(p)*sqrt(dt)*u);

y2(p+1)=a2*(y2(p)+(al2*a*y1(p+1)+(1-al2)*a*(y1(p)-y2(p)))*dt+b*y2(p)*sqrt(dt)*u);

end;

e(i)=sqrt((x1(l+1)-y1(l+1))^2+(x2(l+1)-y2(l+1))^2);

he=he+e(i);

end;

he=he/(20*100);

for j=1:20,

ee=0;

for k=(j-1)*100+1:j*100,

ee=ee+e(k);

end;

hh(j)=ee/100;

end;

s=0;

for j=1:20,

s=s+(hh(j)-he)^2;

end;

s=s/19;

hee(jj-1)=log(he);

he1(jj-1)=log(he)-st*sqrt(s/20);

he2(jj-1)=log(he)+st*sqrt(s/20);

ttt(jj-1)=log(1/(2^jj));

end;

e1=[he1(1) he2(1)];

e2=[he1(2) he2(2)];

e3=[he1(3) he2(3)];

e4=[he1(4) he2(4)];

e5=[he1(5) he2(5)];

tt1=[log(1/(2^2)) log(1/(2^2))];

tt2=[log(1/(2^3)) log(1/(2^3))];

tt3=[log(1/(2^4)) log(1/(2^4))];

tt4=[log(1/(2^5)) log(1/(2^5))];

tt5=[log(1/(2^6)) log(1/(2^6))];

plot(tt1,e1,tt2,e2,tt3,e3,tt4,e4,tt5,e5,ttt,hee);

pause;

Рис. 17.2 Результат численного эксперимента 8.2 при ,

17.4.3 Программа для численного эксперимента 8.9

clear;

t0=0; tk=1;

a=1.5; b=1.5;

st=1.73;

for jj=4:8,

randn ('state', 0);

dt=1/(2^jj);

t=t0:dt:tk;

l=max(size(t))-1;

he=0;

for i=1:20*100,

x(1)=1; y(1)=1;

sw=0;

for p=1:l,

u=randn;

ui0=sqrt(dt)*u;

ui00=0.5*dt*(u^2-1);

ui000=(dt^(3/2))*(1/6)*(u^3-3*u);

ui0000=(dt^2)*(1/24)*(u^4-6*(u^2)+3);

ui00000=(dt^(5/2))*(1/120)*(u^5-10*(u^3)+15*u);

ui000000=(dt^3)*(1/720)*(u^6-15*(u^4)+45*(u^2)-15);

sw=sw+u;

y(p+1)=(1/(1-0.5*a*dt))*(y(p)+0.5*a*dt*y(p)+b*ui0*y(p)+(b^2)*y(p)*ui00+0.5*a*b*y(p)*dt*ui0+(b^3)*y(p)*ui000+0.5*a*(b^2)*y(p)*dt*ui00+(b^4)*y(p)*ui0000+0.5*(b^3)*a*y(p)*dt*ui000+(b^5)*y(p)*ui00000-(1/12)*((dt*a)^3)*y(p)+(b^4)*a*0.5*dt*ui0000*y(p)+(b^6)*y(p)*ui000000);

end;

x(l+1)=x(1)*expm((a-0.5*(b^2))*l*dt+b*sqrt(dt)*sw);

e(i)=abs(x(l+1)-y(l+1));

he=he+e(i);

end;

he=he/(20*100);

for j=1:20,

ee=0;

for k=(j-1)*100+1:j*100,

ee=ee+e(k);

end;

hh(j)=ee/100;

end;

s=0;

for j=1:20,

s=s+(hh(j)-he)^2;

end;

s=s/19;

hee(jj-3)=he;

he1(jj-3)=he-st*sqrt(s/20);

he2(jj-3)=he+st*sqrt(s/20);

ttt(jj-3)=1/(2^jj);

end;

e1=[he1(1) he2(1)];

e2=[he1(2) he2(2)];

e3=[he1(3) he2(3)];

e4=[he1(4) he2(4)];

e5=[he1(5) he2(5)];

tt1=[1/(2^4) 1/(2^4)];

tt2=[1/(2^5) 1/(2^5)];

tt3=[1/(2^6) 1/(2^6)];

tt4=[1/(2^7) 1/(2^7)];

tt5=[1/(2^8) 1/(2^8)];

plot(tt1,e1,tt2,e2,tt3,e3,tt4,e4,tt5,e5,ttt,hee);

pause;

Рис. 17.3 Результат численного эксперимента 8.9