May 1, 2025, Thursday, 120

KADD laboratorium 7

From MJanik

(Difference between revisions)
Jump to: navigation, search
Line 7: Line 7:
'''Metody Monte Carlo'''
'''Metody Monte Carlo'''
-
[http://pl.wikipedia.org/wiki/Metoda_Monte_Carlo Wikipedia Metoda Monte Carlo]
 
Należy napisać ''funkcję'' która oblicza liczbę Pi Metodą Monte Carlo. W tym celu losujemy dwie liczby z rozkładu jednorodnego [0,1], x i y, i sprawdzamy, czy wylosowana para mieści się wewnątrz koła o promieniu 1. Następnie używając stosunku par zaakceptowanych (mieszczących się wewnątrz) do odrzuconych (tych, które leżą poza okręgiem) oraz wzoru na pole koła należy obliczyć liczbę Pi. Ponadto należy narysować dwa wykresy:
Należy napisać ''funkcję'' która oblicza liczbę Pi Metodą Monte Carlo. W tym celu losujemy dwie liczby z rozkładu jednorodnego [0,1], x i y, i sprawdzamy, czy wylosowana para mieści się wewnątrz koła o promieniu 1. Następnie używając stosunku par zaakceptowanych (mieszczących się wewnątrz) do odrzuconych (tych, które leżą poza okręgiem) oraz wzoru na pole koła należy obliczyć liczbę Pi. Ponadto należy narysować dwa wykresy:
Line 41: Line 40:
<code> double VonNeumanzPomoc(TF1 *f, TF1 *g, int min, int max, double wydajnosc);</code>
<code> double VonNeumanzPomoc(TF1 *f, TF1 *g, int min, int max, double wydajnosc);</code>
 +
 +
== Uwagi ==
 +
 +
[http://pl.wikipedia.org/wiki/Metoda_Monte_Carlo Wikipedia Metoda Monte Carlo]
 +
http://www.if.pw.edu.pl/~kisiel/kadd/Wyklad5.pdf KADD Wykład 5 A. Kisiel]

Revision as of 11:54, 29 March 2012

Contents


Zadanie

Metody Monte Carlo

Należy napisać funkcję która oblicza liczbę Pi Metodą Monte Carlo. W tym celu losujemy dwie liczby z rozkładu jednorodnego [0,1], x i y, i sprawdzamy, czy wylosowana para mieści się wewnątrz koła o promieniu 1. Następnie używając stosunku par zaakceptowanych (mieszczących się wewnątrz) do odrzuconych (tych, które leżą poza okręgiem) oraz wzoru na pole koła należy obliczyć liczbę Pi. Ponadto należy narysować dwa wykresy:

  • Liczbami zaakceptowanymi (x) należy wypełnić histogram TH1D oraz go narysować.
  • Stworzyć dwa obiekty typu TGraph i jeden z nich wypełniać zaakceptowanymi parami (x,y) a drugi odrzuconymi parami. Przydzielić im dwa różne kolory punktów. Następnie należy narysować oba te obiekty na jednym panelu.


Metoda akceptacji i odrzucania von Neumana

Standardowa metoda generacji liczb losowych przez funkcję odwrotną ma ogreaniczone zastosowanie. Można jej uzywać tylko w przypadku, gdy dystrybuanta jest znana i możliwe jest znalezienie jej funkcji odwrotnej.

Gdy znana jest tylko gęstość prawdopodobieństwa g(y) stosujemy metodę von Neumanna.

  • Należy zaimplementować funkcję, która generuje liczby losowe z dowolnego rozkładu reprezentowanego przez obiekt TF1.

Losowanie należy wykonać za pomocą metody akceptacji i odrzucania. Funkcja powinna losować punkt z rozkladu reprezentowanego przez obiekt f, w granicach od min do max:

double losujVonNeuman(TF1 *f, int min, int max);

  • Należy zaimplementować funkcję, która oblicza wydajność metody von neumanna dla zadanej funkcji f, w granicach od min do max, dla losowej próbki n punktów.

double wydajnoscVonNeuman(TF1 *f, int min, int max, int n);

  • Należy zaimplementować funkcję, która oblicza całkę z funkcji f przy użyciu metody von neumanna, w granicach od min do max, dla losowej próbki n punktów.

double calkaVonNeuman(TF1 *f, int min, int max, int n);


Metoda akceptacji i odrzucania von Neumana z funkcją pomocniczą

  • Należy zaimplementować funkcję, która oblicza całkę z funkcji f przy użyciu metody von neumanna z funkcją pomocniczą g, w granicach od min do max, dla losowej próbki n punktów. Ponadto zwraca wydajność tego ogliczenia.

double VonNeumanzPomoc(TF1 *f, TF1 *g, int min, int max, double wydajnosc);

Uwagi

Wikipedia Metoda Monte Carlo http://www.if.pw.edu.pl/~kisiel/kadd/Wyklad5.pdf KADD Wykład 5 A. Kisiel]