Sinh quá trình Poisson

Một phần của tài liệu Ứng dụng MATLAB trong tính toán ngẫu nhiên (Trang 53 - 62)

2.5. Các chương trình Matlab

2.5.4. Sinh quá trình Poisson

Chương trình máy tính để sinh ra một quá trình poisson. Một mẫu đồ thị điểm cùng với đường trung bình của đồ thị mẫu được gọi là một quá trình poisson với cường độλ.

% MATLAB program to plot a Poisson process.

% Function file unirand.m is needed.

% Function unr=unirand(xx) returns two numbers:

% unr(1) is uniformly distributed on [0,1], and

% xx is set equal to unr(2) for the next call to unirand.m.

% The average of nrun paths and one sample path are plotted.

% The program can readily be modified to plot two paths.

clear clf

xx=4034218;

% xx starts the random number sequence nt=500;

nrun=200;

time=10;

lambda=1;

% nt is number of time intervals, time is total time

% nrun is the number of different p aths

h=time/nt;

tt=linspace(0,time,nt+1);

sm=zeros(nt+1,1);

s2=zeros(nt+1,1);

patha=zeros(nt+1,1);

pathb=zeros(nt+1,1);

for jj=1:nrun y=0;

% y=0 is initial value for all paths sm(1)=y;

s2(1)=y*y;

patha(1)=y;

pathb(1)=y;

for i=1:nt

unr=unirand(xx);

xx=unr(2);

% need xx=unr(2) for next call to unirand.m if unr(1) < lambda *h

y=y+1;

end

sm(i+1)=sm(i+1)+y/nrun;

s2(i+1)=s2(i+1)+y*y/nrun;

pathb(i+1)=patha(i+1);

patha(i+1)=y;

end end

plot(tt,patha,’-’,tt,sm,’--’,’linewidth’,1.5);

set(gca,’fontsize’,18,’linewidth’,1.5);

axis([0,10,0,10]);

xlabel(’Time t’)

ylabel(’Poisson Process - Unit Intensity’) set(gca,’linewidth’, 1.5);

2.5.5. Xấp xỉ kì vọng của tích phân ngẫu nhiên

Tính xấp xỉ cho kì vọng I(f). Giá trị E((I(f)))2 trong phần 3.3 sử dụng mối quan hệI(f)≈IN(f) =∑N−1i=1 f(ti)Wi∆i tạiti = 2iN khi đó sử dụng

E((I(f)))2 ≈ 1 M

M

1

(IN, j(f))2 = j=1 M

M

1

(∑

j=1

N−1f(ti,ωi)∆W i, j)2

tại∆Wi,j =W(ti+1,ωj)−W(ti,ωi). Sử dụng N= 200 và M=20000. Chương trình tính giá trị xấp xỉ của R02f(W(f))dt là chương trình mà hàm f được quy đinh cụ thể. Ghi kết quả tính toán cùng với 1 danh sách chương trình tính toán của bạn.

% Expectations of a stochastic integral are approximated.

% Matrix array operations are used for efficiency.

% nvec paths are simultaneously computed.

%The program approximates expectations of

%int(f (W (t),0,2) where the function f is specified

%Chuong trinh moi can tinh E(I^2) nen ta can tinh I^2 truoc answer=1;

while (answer==1) clc

clear

disp(’EX 3.4’);

randn(’state’,3) for icase=1:5 nvec=20000;

nint=200;

time=2;

h=time/nint;

hs=sqrt(h);

w=zeros(nvec,1);

y=zeros(nvec,1);

for i=1:nint

r=randn(nvec,1);

%tt=(i-1)*h;

f=exp(w/2);%org:f=w.*cos(w);

y=y + f.*r*hs;

w=w+hs*r;

end y=y.*y;

mean=sum(y)/nvec;%giong meansqr trong chuong trinh goc

%meansqr=sum(y.*y)/nvec;

%check=sum(exp(-w))/nvec;

disp((sprintf(’time:%4.0f Expectation:%12.5f’,icase,mean))) end

answer=input(’Press 1 to run again ’);

if answer~=1,

display(’Goodbye’);

end end

Kết quả chương trình

time: 1 Expectation: 3.30410 time: 2 Expectation: 3.45694 time: 3 Expectation: 3.25713 time: 4 Expectation: 3.20472 time: 5 Expectation: 3.56581

2.5.6. Tính xấp xỉ EI2( f )

Tính xấp xỉ của hàm EI2(f) Giá trị E((I(f)))2 =E((R02eωt/2dω(t)))2 sử dụngIN(f) =∑j=1N−1f(ti,ωi)∆ωi . Khi đó sử dụng

E((I(f)))2 ≈ 1 M

M j=1∑

(IN, j(f))2 = 1 M

M

∑j=1

(∑

j=1

N−1f(ti,ωi)∆W i,j)2

tại∆Wi,j =W(ti+1,ωj)−W(ti,ωi).với N= 423 256và M= 500,5000, 50000 cho tổng của phép toán.

% A stochastic integral is computed.

% Matrix array operations are used for efficiency.

% nvec paths are simultaneously computed.

answer=1;

while (answer==1) clear

clc

disp(’EX 3.11’);

randn(’state’,3) nvec=50;

for i1=1:3 nvec=nvec*10;

nint=1/2;

for i2=1:3 nint=8*nint;

time=2;

h=time/nint;

hs=sqrt(h);

w=zeros(nvec,1);

y=zeros(nvec,1);

for i=1:nint r=randn(nvec,1);

%tt=(i-1)*h;

f=exp(w/2);%f=w.*w;

y=y + f.*r*hs;

w=w+hs*r;

end y=y.*y;

mean=sum(y)/nvec;%giong meansqr trong chuong trinh goc

%mean=sum(y)/nvec;

%meansqr=sum(y.*y)/nvec;

%disp((sprintf(’ %12.0f %12.0f’,nvec,nint)))

%disp((sprintf(’ %12.5f %12.5f’,mean,meansqr))) disp((sprintf(’\n Expectation:%12.5f’,mean))) end

end

answer=input(’Press 1 to run again ’);

if answer~=1,

display(’Goodbye’);

end end

Kết quả chương trình

Expectation: 2.56136 Expectation: 3.21708 Expectation: 3.99431 Expectation: 2.82817 Expectation: 3.18635 Expectation: 3.50192 Expectation: 3.03283 Expectation: 3.42796 Expectation: 3.38832

2.5.7. Ước lượng tích phân ngẫu nhiên

Chương trình ước lượng tích phân ngẫu nhiên R01tW(t)dW(t) Trong chương trình, giá trị của j là 1 số của không gian mẫu, giá trị của n là 1 dãy các số xen kẽ nhau. Kết quả đầu ra của chương trình được liệt kê theo danh sách của chương trình.

%This program estimates a stochastic integral on [a,b].

clear all clc

xx=9055301.;

a=0.0;

b=1.0;

j=1000;

aj=j;

n=2;

for nn=1:7 n=2*n;

Anna=n;

h=(b-a)/Anna;

hs=sqrt(h);

s1=0.0;

s2=0.0;

for k=1:j s=0.0;

t=-h;

w=0.0;

for i=1:n t=t+h;

[rand1,rand2,xx]=irandom(xx);

f=fcalc(t,w);

s=s+f*hs*rand1;

w=w+rand1*hs;

end

s1=s1+s/aj;

s2=s2+s*s/aj;

end

fprintf(’\n %7d %7d %0.5f %0.5f’,n,j,s1,s2);

end

KẾT LUẬN

Những ứng dụng của phần mềm MATLAB trong tính toán ngẫu nhiên là rất rộng. Đã có nhiều công trình nghiên cứu về vấn đề này nhưng để tìm hiểu hết thì vẫn cần sự đóng góp của nhiều công trình nghiên cứu khác,

Khóa luận này đã nghiên cứu về một số ứng dụng của phần mềm MAT- LAB trong tính toán ngẫu nhiên như tính tích phân ngẫu nhiên, mô phỏng quỹ đạo của quá trình Wiener, tính khoảng cách trung bình hai điểm, sinh các số ngẫu nhiên, sinh các quá trình ngẫu nhiên. Ngoài ra, khóa luận còn giới thiệu những kiến thức căn bản để sử dụng phần mềm MATLAB.

Tuy nhiên do thời gian thực hiện khóa luận không nhiều còn có những sai sót em rất mong nhận được sự góp ý của quý thầy cô và bạn đọc.

Một phần của tài liệu Ứng dụng MATLAB trong tính toán ngẫu nhiên (Trang 53 - 62)

Tải bản đầy đủ (PDF)

(62 trang)