Ilustracja metody Monte Carlo obliczania pola obszaru D zawartego w kwadracie [a,b]x[a,b] Dagna Bieda, Piotr Jarecki, Tomasz Nachtigall, Jakub Ciesiółka, Marek Kubiczek
Metoda Monte Carlo Metoda Monte Carlo (MC) 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 MC odgrywa losowanie (wybór przypadkowy) wielkości charakteryzujących proces, przy czym losowanie dokonywane jest zgodnie z rozkładem, który musi być znany.
Cel projektu Celem projektu jest pokazanie na kilku przykładach, Celem projektu jest pokazanie na kilku przykładach, jakie wyniki daje metoda Monte Carlo w zależności od ilości iteracji w porównaniu z wynikami dokładnymi, obliczonymi ze wzorów na pola lub z całek podwójnych. W tym celu do każdego przykładu został napisany program w języku C++ obliczający pole metodą MC.
Ogólny algorytm 1. Losujemy niezależnie liczby u, 1 u 2,..., u n oraz v 1, v2,..., v n z rozkładu jednostajnego U[ 0,1]
Ogólny algorytm 1. Losujemy niezależnie liczby u 1 u 2,..., u n oraz v 1, v2,..., v n z rozkładu jednostajnego U[ 0,1] 2. Przekształcamy x ( ) k a + b a u k i y k = a + b dla k =1,2,..., n = ( ) k a v
Ogólny algorytm 1. Losujemy niezależnie liczby u 1 u 2,..., u n oraz v 1, v2,..., v n z rozkładu jednostajnego U[ 0,1] 2. Przekształcamy x ( ) k a + b a u k i y k = a + b dla k =1,2,..., n = ( ) k 3. Jako przybliżoną wartość pola przyjmujemy: D ( b a ) n f ( x ) k, y k 2 przy czym za przyjmujemy 1, gdy punkt należy do obszaru D, 0 w przeciwnym przypadku. n k = 1 f (, ) x k y k a v
Przykład 1 pole trójkąta
Przykład 1 pole trójkąta Dany jest trójkąt t zawarty w prostokącie [2,5]x[2,6]. Ograniczony prostymi: x oraz y = x = 5
Przykład 1 pole trójkąta Obliczamy pole trójkąta ta ze standardowego wzoru P = 2 1 a h P = 1 3 3 2 = 4,5 Oraz metodą MC.
Wyniki działania programu dla różnych ilości losowań 6,5 Rozrzut wartości pola trójkąta przy 100 losowaniach 6 5,5 Wartość pola 5 4,5 4 Rozrzut wartości pola Wartość policzona 3,5 3 2,5 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 5 Rozrzut wartości pola trójkąta dla 1000 losowań 4,9 4,8 4,7 Wartość pola 4,6 4,5 4,4 Rozrzut wartości pola Wartość policzona 4,3 4,2 4,1 4 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań Rozrzut wartości pola trójkąta dla 100000 losowań 4,54 4,52 Wartość pola 4,5 4,48 Rozrzut wartości pola Wartość policzona 4,46 4,44 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań Liczba losowań 100 1000 100000 Wartość min 3,12 4,14 4,54 Wartość max 5,88 4,96 4,46 Wartość średnia 4,5 4,54 4,51 Odchylenie standardowe 0,56 0,19 0,02
Przykład 2 pole koła
Przykład 2 pole koła Dane jest koło zawarte w protokącie [3,9]x[4,10]. Ograniczone krzywymi o równaniach: 2 y = 7 + 9 ( x 6) y = 7 9 ( x 6) x x = 9 = 3 2
Przykład 2 pole koła Obliczamy pole ze standardowego wzoru: P = πr P = 9π 28,27 oraz metodą MC. 2
Wyniki działania programu dla różnych ilości losowań 32 Rozrzut wartości pola figury przy 100 losowaniach 31 30 Wartość pola 29 28 27 Rozrzut wartości pola Wartość policzona 26 25 24 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 29,5 Rozrzut wartości pola figury przy 1000 losowań 29 Wartość pola 28,5 28 Rozrzut wartości pola Wartość policzona 27,5 27 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 28,4 Rozrzut wartości pola figury dla 100000 losowań 28,35 Wartość pola 28,3 28,25 Rozrzut wartości pola Wartość policzona 28,2 28,15 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań Liczba losowań 100 1000 100000 Wartość min 24,12 27,32 28,17 Wartość max 31,68 29,41 28,38 Wartość średnia 28,13 28,41 28,27 Odchylenie standardowe 1,44 0,46 0,04
Przykład 3
Przykład 3 Dana jest figura zawarta w prostokącie [5,10]x[1,10]. Ograniczona krzywymi o równaniach: y = x +17 y 2 = 0,6515x 12x + 56,26
Przykład 3 Obliczamy pole figury korzystając z całki podwójnej P = 10 5,5 7 5,5 10dx + (0,6515x 10 2 7 ( x + 17) dx 12x + 56,26) dx 24,79 oraz przy pomocy metody MC.
Wyniki działania programu dla różnych ilości losowań Rozrzut wartości pola figury przy 100 losowaniach 29 27 Wartość pola 25 23 Rozrzut wartości pola Wartość policzona 21 19 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 27 Rozrzut wartości pola figury dla 1000 losowań 26,5 26 25,5 Wartość pola 25 24,5 24 Rozrzut wartości pola Wartość policzona 23,5 23 22,5 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 25 Rozrzut wartości pola figury dla 100000 losowań 24,95 24,9 24,85 Wartość pola 24,8 24,75 24,7 Rozrzut wartości pola Wartość policzona 24,65 24,6 24,55 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań Liczba losowań 100 1000 100000 Wartość min 19,35 22,90 24,59 Wartość max 31,95 26,50 24,96 Wartość średnia 24,53 24,88 24,82 Odchylenie standardowe 2,27 0,73 0,08
Przykład 4
Przykład 4 Dane są 3 figury zawarte w kwadracie [4,11]x[4,11]. ograniczone krzywymi 2 y = 0,12 x + 1,8 x + 8,28 2 y = 0,12 x + 1,8 x + 10,28 x = 4, x = 11 x x = 4, x = 6, y = 9, y = 11 = 9, x = 11, y = 9, y = 11
Przykład 4 Obliczamy pole figury korzystając z całki podwójnej P = 10 4 2 2 + 2 (0,12 x 2 2 + 10 4 (0,12 x 2 + 1,8 x + 1,8 x + 8,28) dx = + 10,28) dx 22 oraz przy pomocy metody MC.
Wyniki działania programu dla różnych ilości losowań Rozrzut wartości pola figury przy 100 losowaniach 29 27 25 Wartość pola 23 21 Rozrzut wartości pola Wartość policzona 19 17 15 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 24,5 Rozrzut wartości pola figury dla 1000 losowań 24 23,5 23 Wartość pola 22,5 22 21,5 Rozrzut wartości pola Wartość policzona 21 20,5 20 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań 22,2 Rozrzut wartości pola figury dla 100000 losowań 22,15 22,1 22,05 Wartość pola 22 21,95 21,9 Rozrzut wartości pola Wartość policzona 21,85 21,8 21,75 0 20 40 60 80 100 Numer próby
Wyniki działania programu dla różnych ilości losowań Liczba losowań 100 1000 100000 Wartość min 16,17 20,18 21,79 Wartość max 27,93 24,01 22,18 Wartość średnia 22,08 21,99 21,99 Odchylenie standardowe 2,46 0,83 0,08
Odchylenia standardowe dla różnych n σ σ Wynik dokładny [n=100] [n=1000] [n=100000] Trójkąt 4,5 0,56 0,10 0,02 Koło 28,27 1,44 0,46 0,04 Parabola 24,79 2,27 0,73 0,08 Buźka 22 2,46 0,83 0,08 σ
Dziękujemy za uwagę