1 Ćwiczenie nr 1 – generatory liczb pseudolosowych RozwaŜmy

Transkrypt

1 Ćwiczenie nr 1 – generatory liczb pseudolosowych RozwaŜmy
Ćwiczenie nr 1 – generatory liczb pseudolosowych
RozwaŜmy następujący przepis iteracyjny (generator mieszany):
xn +1 = ( a ⋅ xn + b ) mod c
(1)
gdzie: a, b, c liczby całkowite, parametry generatora (0 ≤ b < c)
x mod y - funkcja dwuparametrowa (x oraz y), zwracająca resztę z dzielenia x przez y
Gdy b = 0 mówimy o generatorze multiplikatywnym.
Aby otrzymać liczby z przedziału [0,1), naleŜy znormalizować kolejne wyrazy
wygenerowanego ciągu przez c:
rn =
xn
c
(2)
Ćwiczenia do wykonania:
RozwaŜane parametry generatora (równanie (1)):
(i)
a = 90;
b = 0;
c = 181;
x0 = 1
(ii)
a = 193;
b = 0;
c = 181;
x0 = 1
(iii)
a = 83;
b = 0;
c = 181;
x0 = 1
(iv)
a = 24;
b = 0;
c = 1643;
x0 = 1
(v)
a = 24;
b = 0;
c = 2643;
x0 = 1
(vi)
dwa dowolne inne zestawy parametrów1
(vii)
standardowa funkcja programu Excel generująca liczby losowe z przedziału [0,1)
1
co najmniej jeden zestaw powinien być dobrany tak, aby generowany liczb wykazywał rozkład równomierny
1
Część A:
Sprawdzanie równomierności liczb generowanych przez procedurę.
a)
Dla kaŜdego zestawu parametrów wygenerować 5000 liczb pseudolosowych (xn i rn);
dodatkowo wygenerować równieŜ 5000 liczb pseudolosowych z przedziału [0,1)
w oparciu o standardową funkcję programu Excel. Dla kaŜdego zestawu
wygenerowanych liczb:
b)
Sporządzić wykres (punktowy) wygenerowanych wartości (rn) w funkcji numeru
iteracji (n). Sprawdzić czy punkty równomiernie pokrywają całą przestrzeń.
c)
Policzyć średnią wartość wygenerowanych liczb (rn).
d)
Sporządzić histogram wartości wygenerowanych liczb (z rozdzielczością 0.04).2
e)
Zebrać w jednym pliku (preferowany plik tekstowy programu Word – w nagłówku
podpisany przynajmniej nazwiskiem studenta) wartości średnie oraz histogramy
odpowiadające
poszczególnym
zestawom
parametrów.
Wyciągnąć
wnioski.
Pozostawić miejsce na wyniki częsci B.
Część B
Wykonanie testu pi-kwadrat
a)
Dla kaŜdego zestawu parametrów (analogicznych jak w częsci A) wygenerować 5000
par liczb pseudolosowych (z przedziału [0,1) – rn) oraz dodatkowo 5000 par liczb
w oparciu o standardową funkcję programu Excel.
b)
Dla kaŜdego zestawu sporządzić wykres punktowy. Sprawdzić czy punkty
równomiernie wypełniają całą przestrzeń.
c)
Dla kaŜdego zestawu wykonać test pi-kwadrat (patrz informacje poniŜej).
d)
Dodać zestawienie uzyskanych wyników do pliku przygotowanego w części A.
Finalnie wyciągnąć wnioski (na temat jakości analizowanych generatorów)
w oparciu o wyniki części A i B,
a następnie kompletny plik tekstowy
(oraz przykładowe pliki excelowskie, w których wykonywano obliczenia)
przesłać na adres prowadzącego ([email protected])
w celu sprawdzenia oraz zaliczenia ćwiczenia.
2
(a)
(b)
ustalić ilość liczb mieszczących się w kolejnych przedziałach [0,0.04); [0.04,0.08); …; [0.96,1)
obliczyć prawdopodobieństwo znalezienia liczb z poszczególnych przedziałów
(prawdopodobieństwo równe ilorazowi ilości liczb zawartych w danym przedziale oraz
całkowitej ilości wygenerowanych liczb)
2
TEST PI-KWADRAT
Test pi-kwadrat bazuje na całkowaniu metodą Monte Carlo. RozwaŜmy koło o promieniu 1
i środku w początku układu współrzędnych. Pole jego części zawartej w pierwszej ćwiartce
układu współrzędnych wynosi π 4 . Dobrze działający generator powinien podczas
całkowania metodą Monte Carlo doprowadzić do bardzo bliskiej wartości. Zatem generując
serię par liczb pseudolosowych (z zakresu [0,1)), odpowiadających współrzędnym punktów,
które pokrywają kwadrat o boku 1 (którego pole równieŜ jest równe 1), stosunek liczby
punktów zawierających się wewnątrz koła, spełniających warunek:
x2 + y 2 ≤ 1
(3)
do całkowitej liczby punktów powinien być bliski oczekiwanemu polu ćwiartki koło.
Jako parametr charakteryzujący generator proszę przyjąć względną róŜnicę miedzy
otrzymaną wartością pola (Potrz), a wartością oczekiwaną (Pocz):
Potrz − Pocz
× 100%
Pocz
(4)
1
0.8
0.6
y
δ=
0.4
0.2
0
0
0.2
0.4
0.6
0.8
1
x
3

Podobne dokumenty