MCdocx.docx

(26 KB) Pobierz

Numer ćw.:

Nazwa wydziału:

Ocena:

5

Wydział Inżynierii Elektrycznej i Komputerowej

 

Grupa stud. / grupa lab.

MiDUE

Nazwa przedmiotu:

Data wykonania ćw.:

Metody numeryczne

 

Temat ćw.:

Podpis:

Data oddania sprawozdania:

Metoda Monte Carlo

 

16.06.13

Skład zespołu

Łukasz Kąkol

Michał Kurek

 

1.      Wstęp

Metodę Monte Carlo wykorzystuje się w celu modelowania matematycznego zbyt złożonych procesów. Ważna rolę w metodzie Monte Carlo pełni losowanie wielkości które charakteryzują proces. Losowanie musi odbywać się zgodnie z rozkładem, który musi być znany.

 

2.      Kod programu wykonanego w środowisku Matlab:

 

% Identyfikacja parametrów modelu układu oscylacyjnego 2-go rzędu

Y = @(t,B,w0)(1-exp(-B.*w0.*t)*1./sqrt(1-B.^2).*sin(w0.*t.*sqrt(1-B.^2)+asin(sqrt(1-B.^2))));

 

t1=0:0.01:4;

B1=0.08;

w1=6;

y = Y(t1,B1,w1);

 

M = 10^5; % Definiujemy liczbę losowań

 

beta=rand(1,M)+B1; % Poszukiwanie punktów w odniesieniu do założonych wartości

omega=rand(1,M)+w1;

 

for t=1:length(t1) % Macierz wartości wyjsciowych

u(:,t) = Y(t-1,beta,omega);  

end

 

for t=1:length(t1) % Macierz błędów modelu

delta(:,t) = u(:,t) - y(t)';   

delta1(:,t)=(delta(:,t)).*(delta(:,t));

end

 

SQR=zeros(M,1); %definiujemy wektor sumy błędów wypełniony zerami

 

for i=1:M

    for k = 1:length(t1)

    SQR(i) = SQR(i)+ delta1(i,k);

    end

end

 

mini=SQR(1); %Minimalna wartość sumy kwadratów błędów w losowaniach

 

for j = 1:M

    if(SQR(j)<mini)

        mini = SQR(j);

        j1 = j;

    end

end

% Rysowanie wykresów

plot(t1,y,'o',t1,Y(t1,beta(j1),omega(j1)),'r')

xlabel('t');

ylabel('f(t)');

 

3.      Otrzymane wyniki

Zgłoś jeśli naruszono regulamin