prezentacja 2

Transkrypt

prezentacja 2
Rachunek Prawdopodobienstwa MAEW104
Wydział Elektroniki, rok akad. 2008/09, sem. letni
wykład: dr hab. Agnieszka Jurlewicz
Temat projektu:
Ilustracja metody Monte Carlo do obliczania pola
obszaru D zawartego w kwadracie [a, b] × [a, b].
Grupa projektowa:
Mateusz Kocur 171044
Magdalena Kaminska 171322
Leszek Roszkowski 171052
Andrzej Samek 163163
Michal Polanski 170987
Adam Kokot 171075
PLAN PREZENTACJI
wstęp,
opis problemu,
metoda Monte Carlo,
zastosowanie metody Monte Carlo do obliczenia pola
obszaru,
prezentacja otrzymanych wyników,
omówienie metody i podsumowanie.
WSTĘP
Pole powierzchni jest miarą przyporządkowującą danej figurze
nieujemną liczbę w pewnym sensie charakteryzującą jej
rozmiar. Wartość pola figury spełnia następujące warunki:
pole figury składającej się z innych figur rozłącznych równa
się sumie pól figur składowych,
pola figur przystających są równe.
Bardzo łatwo, a zarazem dokładnie można obliczyć pole
prostokąta. Kolejną fugurą w której w stosunkowo łatwy sposób
można wyznaczyć pole jest trójkąt. Łącząc te dwie umiejętności
oraz znając właściwości pola figury możemy w wyznaczyć pola
nieco bardziej skomplikowanych figur.
Tradycyjną metodą pozwalającą na obliczanie pola praktycznie
każdego obszaru na płaszczyźnie jest zastosowanie całki.
Wartość obliczonej całki jest obszarem liczonego pola.
Jednak przy bardzo skomplikowanych funkcjach konieczne jest
wyliczenie bardzo złożonej całki. Czynność ta jest bardzo
czasochłonna i nie zawsze daje wynik w rozsądnym czasie.
OPIS PROBLEMU
Czy istnieje sposób pozwalający na stosunkowo (z
odpowiednio mało znaczącym błędem) precyzyjne określenie
dowolnego pola obszaru na płaszczyźnie w rozsądnym czasie?
"Czas rozsądny" - jesto to taki czas w którym rozwiązanie problemu nie wpływa
na ważność problemu - problem nadal ma dla nas znaczenie.
METODA MONTE CARLO
Metoda Monte Carlo jest stosowana do modelowania
matematycznego procesów zbyt złożonych (obliczania całek,
łańcuchów procesów statystycznych), aby można było przewidzieć ich
wyniki za pomocą podejścia analitycznego. Istotną rolę w metodzie
Monte Carlo odgrywa losowanie (wybór przypadkowy) wielkości
charakteryzujących proces, przy czym losowanie dokonywane jest
zgodnie z rozkładem, który musi być znany.
Sprowadzenie skomplikowanego problemu numerycznego do zadania
z dziedziny prawdopodobieństwa dającego takie samo rozwiązanie
pozwalają w szybszy sposób osiągnąć prawidłowy wynik.
Sprowadzanie problemów do postaci rachunku prawdopodobieństwa
początkowo wykorzystywano w fizyce neutronowej podczas badań
militarnych. Nazwa metody pochodzi od kryptonimu "Monte Carlo"
nadanego tajnym obliczeniom prowadzonym w USA podczas II Wojny
Światowej, na potrzeby broni jądrowej.
ZASTOSOWANIE METODY MONTE CARLO DO
OBLICZENIA POLA OBSZARU
Aby wyznaczyć pole obszaru należy wykonać następujące kroki:
1. Ograniczyć niewiadomy obszar obszarem o wiadomym polu,
2. Wylosować N niezależnych próbek losowych z ograniczonego
obszaru,
3. Zsumowaniu próbek które znalazły się w niewiadomym obszarze,
4. Obliczyć stosunek próbek z niewiadomoego obszaru do
wszystkich wylosowanych próbek.
Aby otrzymać wynik w jednostce obszaru wiadomego którym
ograniczyliśmy obszar o nieznanym polu, należy wynik otrzymany z p.
4 pomnożyć przez znane pole obszaru otaczającego.
Jest to metoda statystyczna więc otrzymamny wynik jest obarczony
błendem.
PREZENTACJA WYNIKÓW
Algorytm do obliczania przybliżonej wartości pola obszaru:
1. losujemy niezależnie liczby u1 , u2 , ..., un z rozkładu
jednostajnego U [0,1],
2. przekształcamy xk = a + (b − a)uk i yk = a + (b − a)vk dla k
= 1, 2, . . . , n,
3. jako przyblizona wartosc pola przyjmujemy:
4. przy czym jako f(xk,yk) przyjmujemy 1, gdy punkt należy
do D, oraz 0 w pozostałych przypadkach.
Eksperyment przeprowadzono dla różnych przypadków
obszaru D, oraz dla kilku rzędów parametru n .
PREZENTACJA WYNIKÓW
W dalszej części zaprezentowano wyniki dla różnych obszarów
w następujący sposób:
1. analityczne obliczenie pola obszaru;
2. graficzne przedstawienie obszaru;
3. przedstawienie wykresu błędu bezwzględnego, gdzie Ox ilość wylosowanych punktów, k - ilość wykonanych
pomiarów, które następnie uśredniono;
4. histogram, w dla wartości n=100, 1000, 10000, 100000;
5. Zestawienie metody analitycznej z przykładowymi wynikami
metody Monte Carlo;
6. Kod funkcji sprawdzającej czy wylosowany punkt należy do
obliczanego pola.
PRZYKŁAD 1
PRZYKŁAD 1
Aby ułatwić obliczenie pola pierwszego obszaru wprowadzamy wierzchołki:
a następnie ze wzoru na kwadrat i koło – jest to:
obszar = pole kwadratu ABCD – pole pierścienia, czyli:
P(d)= a^2 – (pi*R^2-pi*r^2)=
(2*pi)^2 – (4*pi-pi)=
4*pi^2 – 3*pi=
~30,053639664
Pole kwadratu wynosi P(k)= (2*pi+2)^2 = ~68,611158833
Stosunek pól : 43,8 %
PRZYKŁAD 1 - wykres błędu
PRZYKŁAD 1 - histogram
PRZYKŁAD 1 - zestawienie wyników
Metoda analityczna dała wynik pola obszaru:
P = 4*pi^2 – 3*pi= ~30,053639664;
Przykładowe wyniki z przeprowadzonej
komputerowo metody Monte Carlo:
1. P = 29.09;
2. P = 22.64;
3. P = 30.11;
4. P = 31.83;
5. P = 31.56;
PRZYKŁAD 2
PRZYKŁAD 2
Przedstawiony obszar jest sumą 4 części wspólnych
odpowiednio 2 kół o promieniu R=2 , i środkach w
punktach: (-2,0) i (0,2); (-2,0) i (0,-2); (2,0) i (0,2);
(2,0) i (0,-2);
stosunek pola do kwadratu o boku 4: 57%; pole do
kwadratu o boku 6: 25%,
od pola złozonego z czterech półokregow, odejmujemy pole
kwadratu;
obliczenie wartość tego pola:
pole = 4 * 1/2* Pi * R * R - 2R*2R
pole = 4 * 1/2*3.14159*2*2 - 2*2*2*2 =
=25,13272-16=9.13272
PRZYKŁAD 2 - wykres błędu
PRZYKŁAD 2 - histogram
PRZYKŁAD 2 - zestawienie wyników
Metoda analityczna dała wynik pola obszaru:
P = 9.13272
Przykładowe wyniki z przeprowadzonej komputerowo metody
Monte Carlo:
1.
2.
3.
4.
5.
P = 8.48;
P = 10.24;
P = 8.96;
P = 9.76;
P = 9.28;
PRZYKŁAD 2
Kod funkcji sprawdzającej czy wylosowany pkt należy do obliczanego
pola:
if ( ((x*x+(y+2)*(y+2)) <= promien*promien && ((x-2)*(x-2)+y*y)
<=promien*promien) ||
((x*x+(y+2)*(y+2)) <= promien*promien && ((x+2)*(x+2)+y*y)
<=promien*promien) ||
((x*x+(y-2)*(y-2)) <= promien*promien && ((x-2)*(x-2)+y*y)
<=promien*promien) ||
((x*x+(y-2)*(y-2)) <= promien*promien && ((x+2)*(x+2)+y*y)
<=promien*promien) )
)
return true;
else
return false;
}
PRZYKŁAD 3
PRZYKŁAD 3
opis pola: 8 kół o promieniu 5 jednostek nachodzących
na siebie i oddalonych od środka ukłądu
współrzędnych o 10 jednostek;
powierzchnia: ok 60% pola [-15,15]x[-15,15]
pole obliczone analitycznie:
P=8*P1=8*(2*1/2*5*5*sin(B) + pi*5*5*(360-2*B)/360) =
545,6787511
PRZYKŁAD 3 - wykres błędu
PRZYKŁAD 3 - histogram
PRZYKŁAD 3 - zestawienie wyników
Metoda analityczna dała wynik pola obszaru:
P = 545,6787511
Przykładowe wyniki z przeprowadzonej komputerowo metody
Monte Carlo:
1.
2.
3.
4.
5.
P = 558;
P = 513;
P = 495;
P = 531;
P = 648;
PRZYKŁAD 3
Kod funkcji sprawdzającej czy wylosowany pkt należy do obliczanego
pola:
bool nalezy (typ &x, typ &y)
{
typ x1,y1;
for (int i = 0; i<=8; i++)
{
x1 = 10*(typ)cos((pi/4.0)*(typ)i);
y1 = 10*(typ)sin((pi/4.0)*(typ)i);
if ( ((x-x1)*(x-x1)+(y-y1)*(y-y1))<=25 )
return true;
}
return false;
}
PRZYKŁAD 4
Pole kolejnej figury otrzymujemy z zależności:
R- promien dużego okręgu,
A - pole interesującej nas figury (możemy je wyliczyć w
następujący sposób
)
pole 1/4 koła jest określone wzorem:
Ostatecznie otrzymujemy:
co daje, stosunek pola do kwadradu:
PRZYKŁAD 4
PRZYKŁAD 4 - wykres błędu
PRZYKŁAD 4 - histogram
PRZYKŁAD 4 - zestawienie wyników
Metoda analityczna dała wynik pola obszaru:
P = 31,51467
Przykładowe wyniki z przeprowadzonej komputerowo metody
Monte Carlo:
1.
2.
3.
4.
5.
P = 30;
P = 33;
P = 35;
P = 27;
P = 33;
PRZYKŁAD 4
Kod funkcji sprawdzającej czy wylosowany pkt należy do
obliczanego pola:
bool nalezy (typ &x, typ &y, typ &promien)
{
if (((x*x+y*y <=promien*promien)) && ((x-10)*(x-10)
+y*y
<=promien*promien) && ((y-10)*(y-10)+x*x
<=promien*promien) && ((x-10)*(x-10)+(y-10)*(y-10)
<=promien*promien) )
return true;
else
return false;
}
PRZYKŁAD 5
PRZYKŁAD 5
PRZYKŁAD 5 - wykres błędów
PRZYKŁAD 5 - histogram
PRZYKŁAD 5 - zestawienie wyników
Metoda analityczna dała wynik pola obszaru:
P = 25,3942
Przykładowe wyniki z przeprowadzonej komputerowo metody
Monte Carlo:
1.
2.
3.
4.
5.
P = 25;
P = 24;
P = 21;
P = 25;
P = 22;
PRZYKŁAD 5
Kod funkcji sprawdzającej czy wylosowany pkt należy do obliczanego pola:
bool nalezy (typ &x, typ &y)
{
if( y > 1.125*x*x && y < abs(abs(abs(abs(x)-0.75)-0.25)-0.5)+4 ) // działa
prawidłowo!
return true;
if( y >= 0.9/1.96*(x-0.1)*(x-0.1)-1.9 && y <= 0.9/sqrt(1.4)*sqrt(abs(x-0.1))
-1.9 )
return true;
if( y >= 0.9/1.96*(x+0.1)*(x+0.1)-1.9 && y <= 0.9/sqrt(1.4)*sqrt(abs(x+0.1))
-1.9 )
return true;
if( abs(x) <= 0.1 && y <= 0 && y >= -4 )
return true;
if( y <= -0.5*sqrt(abs(x)) + 0.25*cos(5*M_PI*x) - 3 )
return true;
return false;
}
OMÓWIENIE METODY I PODSUMOWANIE
Stosowanie metody Monte Carlo do wyznaczanie pola obszaru ma
na celu szybkie, orientacyjne oszacowanie wartości.
zwiększanie liczby n losowań istotnie zmniejsza błąd do pewnej
granicy, po czym błąd się stabilizuje,
zwiększanie liczby losowań w pojedyńczej próbie zmniejsza
rozrzut wyników co widać na histogramach,
Jest to metoda przybliżonego całkowania, w której czym więcej
prób n wykonamy tym mniejszy jest błąd uzyskany w koncowym
wyniku.
Główną zaletą tej metody jest mniejsza złożoność obliczeniowa niż
w całkowaniu. Co skraca całkowity czas na uzyskanie wyniku.
Metoda ta jest wykorzystywana min. przy:
obliczanie powierzchni działek
obliczanie mas ziemnych do robót w terenie
obliczanie powierzchni podstawy budynku w celu wyznaczenia
jego kubatury.
DZIĘKUJEMY ZA UWAGĘ