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