MCdocx

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.

  1. 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)');

  1. Otrzymane wyniki


Wyszukiwarka