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. P = 8.48; 2. P = 10.24; 3. P = 8.96; 4. P = 9.76; 5. 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. P = 558; 2. P = 513; 3. P = 495; 4. P = 531; 5. 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. P = 30; 2. P = 33; 3. P = 35; 4. P = 27; 5. 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. P = 25; 2. P = 24; 3. P = 21; 4. P = 25; 5. 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Ę