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));
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);
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;
% Rysowanie wykresów
plot(t1,y,'o',t1,Y(t1,beta(j1),omega(j1)),'r')
xlabel('t');
ylabel('f(t)');
3. Otrzymane wyniki
bruno11n1