niedziela, 13 stycznia 2013

1.3.4 Metoda Monte Carlo

Metoda Monte Carlo I

Załóżmy, że chcemy obliczyć całkę z funkcji f(x) w przedziale <xp; xk>. Definicja całki oznaczonej Riemana, mówi nam, że wartość całki równa jest polu obszaru pod wykresem krzywej w zadanym przedziale całkowania.
Załóżmy na początek, iż wiemy z całą pewnością, że wartości funkcji w obszarze całkowania mieszczą się w przedziale <yp; yk>. Pole prostokąta wyznaczonego przez przedział całkowania: <xp; xk> oraz zakres wartości funkcji w tym przedziale: <yp; yk> jest prosty do wyznaczenia i wynosi:


Metoda Monte Carlo polega na wylosowaniu n punktów znajdujących się w obrębie wspomnianego prostokąta i na tej podstawie obliczenia stosunku pola powierzchni pod krzywą czyli wartości całki do pola wyznaczonego prostokąta. W tym celu wprowadzimy zmienną pomocniczą c, którą modyfikować będziemy następująco:
  • jeżeli wylosowany punkt (xi, yi) leży nad osią OY i jednocześnie pod wykresem funkcji całkowanej, czyli spełnia nierówność: 0 < yi ≤ f(xi), wówczas zwiększamy zmienną c o jeden,
  • jeżeli wylosowany punkt (xi, yi) leży pod osią OY i jednocześnie nad wykresem funkcji całkowanej, czyli spełnia nierówność: 0 > yi ≥ f(xi), wówczas zmniejszamy zmienną c o jeden,
  • jeżeli wylosowany punkt (xi, yi) nie spełnia żadnego z powyższych warunków, wówczas pozostawiamy zmienną c bez zmian.

Na poniższym schemacie, punkty spełniające warunek pierwszy oznaczono kolorem niebieskim. Punkty spełniające warunek drugi oznaczono kolorem czerwonym, pozostałe - spełniające warunek trzeci oznaczono kolorem czarnym.
Metoda Monte-Carlo

Jak już wspominaliśmy na podstawie wylosowanych punktów i przyporządkowania ich do odpowiedniej kategorii możemy wyznaczyć odpowiednie proporcje:


zatem po przekształceniach wartość szukanej całki możemy wyrazić wzorem:

Wraz ze zwiększaniem się liczby punktów pomiarowych n, rozkładają się one coraz bardziej równomiernie w obrębie wyznaczonego prostokąta dając coraz dokładniejszy wynik. Podstawowym problemem w tej metodzie jest wyznaczenie zakresu wartości funkcji w przedziale całkowania. Dlatego też opracowano również inny algorytm całkowania oparty o Metodę Monte-Carlo, nie wymagający tej informacji.

Przykład:
Obliczymy wartości całki, dla funkcji przedstawionej na schemacie powyżej zakładając, że:
xp = 3
xk = 7
yp = -2
yk = 5
Liczba wszystkich punktów pomiarowych n wynosi 36.
Liczba punktów niebieskich zwiększających zmienną c wynosi 8.
Liczba punktów czerwonych zmniejszających zmienną c wynosi 3.
Zatem ostateczna wartość zmiennej c wynosi 8 - 3 = 5.
Podstawiając wszystkie dane pod wyznaczony wzór otrzymujemy: |xk - xp| * |yk - yp| * (c/n) = |7 - 3| * |5 - -2| * (5/36) = 4 * 7 * 0.1388889 = 3.8888892
Zatem przybliżona wartość całki wynosi: 3.8888892


Metoda Monte Carlo II

 Załóżmy, że chcemy obliczyć całkę z funkcji f(x) w przedziale <xp; xk>. Definicja całki oznaczonej Riemana, mówi nam, że wartość całki równa jest polu obszaru pod wykresem krzywej w zadanym przedziale całkowania. Przedstawiona tutaj metoda Monte Carlo polega na wylosowaniu n punktów znajdujących się w obrębie przedziału całkowania i na tej podstawie obliczeniu średniej wartości funkcji w tym przedziale.

Metoda Monte-Carlo
Zatem jeżeli losowane punkty oznaczymy jako: x1, x2, ... xn, to wartość średnią obliczymy następująco:

A przybliżoną wartość całki mnożąc uzyskaną wartość średnią przez długość całkowanego przedziału:

Wraz ze zwiększaniem się liczby punktów pomiarowych n, rozkładają się one coraz bardziej równomiernie w obrębie wyznaczonego przedziału dając coraz dokładniejszy wynik. Z drugiej zaś strony uważać należy by przy dużych ilościach punktów pomiarowych nie przekroczyć zakresu używanych zmiennych podczas dodawania przy obliczaniu wartości średniej. Zabezpieczyć się można przed takim przypadkiem obliczając wartość średnią następująco:


ale z kolei mamy tutaj problem nakładania się na siebie zaokrągleń z dzielenia przez n.

Przykład:
Załóżmy, iż na wykresie powyżej zakres całkowania to: xp = 2, xk = 10
Wartości kolejnych wylosowanych punktów to: x1 = 2.4, x2 = 3.1, x3 = 6, x4 = 9, x5 = 9.5, a wartości funkcji całkowanej w tych punktach to: f(x1) = 3, f(x2) = 3.5, f(x3) = 5, f(x4) = 5.1, f(x5) = 4.4
Najpierw obliczymy wartość średnią: (3 + 3.5 + 5 + 5.1 + 4.4) / 5 = 21 / 5 = 4.2
A następnie pomnożymy tą wartość przez długość przedziału całkowania otrzymując przybliżoną wartość całki: (10 - 2) * 4.2 = 8 * 4.2 = 33.6

Brak komentarzy:

Prześlij komentarz