Generacja liczb pseudolosowych



Podobne dokumenty
Komputerowa Analiza Danych Doświadczalnych

Komputerowa analiza danych doświadczalnych

Komputerowa analiza danych doświadczalnych

Rozkłady wielu zmiennych

Prawdopodobieństwo i statystyka

Metody numeryczne. Wykład nr 12. Dr Piotr Fronczak

Prawdopodobieństwo i statystyka

Podstawy symulacji komputerowej

Algorytmy zrandomizowane

Matematyka II. Bezpieczeństwo jądrowe i ochrona radiologiczna Semestr letni 2018/2019 wykład 13 (27 maja)

Przykładowe zadania na egzamin z matematyki - dr Anita Tlałka - 1

Wynik pomiaru jako zmienna losowa

Lista 6. Kamil Matuszewski 13 kwietnia D n =

Program MC. Obliczyć radialną funkcję korelacji. Zrobić jej wykres. Odczytać z wykresu wartość radialnej funkcji korelacji w punkcie r=

Modelowanie zależności. Matematyczne podstawy teorii ryzyka i ich zastosowanie R. Łochowski

Funkcje dwóch zmiennych

Weryfikacja hipotez statystycznych

Aby przygotować się do kolokwiów oraz do egzaminów należy ponownie przeanalizować zadania

Wersja testu A 18 czerwca 2012 r. x 2 +x dx

Całkowanie metodą Monte Carlo

Jeśli wszystkie wartości, jakie może przyjmować zmienna można wypisać w postaci ciągu {x 1, x 2,...}, to mówimy, że jest to zmienna dyskretna.

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Ilustracja metody MONTE CARLO. obliczania całek podwójnych

Ważne rozkłady i twierdzenia

Wykłady z Matematyki stosowanej w inżynierii środowiska, II sem. 2. CAŁKA PODWÓJNA Całka podwójna po prostokącie

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

0 + 0 = 0, = 1, = 1, = 0.

Metoda Monte Carlo i jej zastosowania

Układy stochastyczne

Rozkłady i ich dystrybuanty 16 marca F X (t) = P (X < t) 0, gdy t 0, F X (t) = 1, gdy t > c, 0, gdy t x 1, 1, gdy t > x 2,

Rachunek całkowy - całka oznaczona

Ważne rozkłady i twierdzenia c.d.

Liczby zmiennoprzecinkowe i błędy

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Algorytmy i struktury danych. Wykład 4

ROZWIĄZANIA I ODPOWIEDZI

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Technologie Informacyjne

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

6. Zmienne losowe typu ciagłego ( ) Pole trapezu krzywoliniowego

5 Równania różniczkowe zwyczajne rzędu drugiego

III. ZMIENNE LOSOWE JEDNOWYMIAROWE

Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne)

1 Wykład 3 Generatory liczb losowych o dowolnych rozkładach.

6. Całka nieoznaczona

Całkowanie przez podstawianie i dwa zadania

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Rozkłady dwóch zmiennych losowych

Metody Rozmyte i Algorytmy Ewolucyjne

Wstęp do Rachunku Prawdopodobieństwa, IIr. WMS

1 Funkcje dwóch zmiennych podstawowe pojęcia

Generowanie liczb o zadanym rozkładzie. ln(1 F (y) λ

II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

RÓWNANIA RÓŻNICZKOWE WYKŁAD 2

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

AKADEMIA GÓRNICZO-HUTNICZA Wydział Matematyki Stosowanej ROZKŁAD NORMALNY ROZKŁAD GAUSSA

Kwantyle. Kwantyl rzędu p rozkładu prawdopodobieństwa to taka liczba x p. , że. Możemy go obliczyć z dystrybuanty: P(X x p.

Elementy Modelowania Matematycznego Wykład 4 Regresja i dyskryminacja liniowa

Generatory liczb pseudolosowych

Krzywe Freya i Wielkie Twierdzenie Fermata

KURS PRAWDOPODOBIEŃSTWO

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

KADD Minimalizacja funkcji

RACHUNEK PRAWDOPODOBIEŃSTWA WYKŁAD 3.

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Mikroekonometria 6. Mikołaj Czajkowski Wiktor Budziński

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

22. CAŁKA KRZYWOLINIOWA SKIEROWANA

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Metoda największej wiarygodności

3. Generacja liczb losowych o różnych rozkładach

Analiza matematyczna 2 zadania z odpowiedziami

1.1 Przegląd wybranych równań i modeli fizycznych. , u x1 x 2

Lista zadań nr 2 z Matematyki II

Modelowanie komputerowe

Definicje i przykłady

Wykład 2 Zmienne losowe i ich rozkłady

Rachunek całkowy funkcji wielu zmiennych

- prędkość masy wynikająca z innych procesów, np. adwekcji, naprężeń itd.

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Redukcja wariancji w metodach Monte-Carlo

Drugie kolokwium z Rachunku Prawdopodobieństwa, zestaw A

Funkcja pierwotna. Całka nieoznaczona. Podstawowe wzory. Autorzy: Konrad Nosek

Wybrane rozkłady zmiennych losowych. Statystyka

ELEKTROTECHNIKA Semestr 2 Rok akad / ZADANIA Z MATEMATYKI Zestaw Oblicz pochodne cząstkowe rzędu drugiego funkcji:

Wstęp do analizy matematycznej

INTERPOLACJA I APROKSYMACJA FUNKCJI

ANALIZA MATEMATYCZNA Z ELEMENTAMI STATYSTYKI MATEMATYCZNEJ

Podstawy Informatyki

5. Całka nieoznaczona

Całki nieoznaczone. 1 Własności. 2 Wzory podstawowe. Adam Gregosiewicz 27 maja a) Jeżeli F (x) = f(x), to f(x)dx = F (x) + C,

ANALIZA MATEMATYCZNA 2 zadania z odpowiedziami

13. Równania różniczkowe - portrety fazowe

Transkrypt:

Generacja liczb pseudolosowych Zapis liczb w komputerze Generatory liczb pseudolosowych Liniowe kongruentne Liniowe mutiplikatywne kongruentne Jakość generatorów Test widmowy Generowanie liczb losowych o dowolnym rozkładzie Transformacja rozkładu jednostajnego Metoda von Neumanna akceptacji i odrzucania Generacja liczb losowych o rozkładzie normalnym Całkowanie metodą Monte-Carlo 1

Zapis liczb w komputerze Liczby pamiętane są w postaci binarnej: 213=1*128+1*64+0*32+1*16+0*8+1*4+0*2+1*1 =011010101 (binarnie) Posługujemy się bajtami jednostkami 8-bitowymi. Dzisiejsze komputery posługują się albo 16-to, albo 32-bitowymi liczbami. Znając liczbę bitów składających się na liczbę możemy wprowadzić zapis dopełniający: -213=1111111100101010 (binarnie 16bitowo) Liczby bez znaku mają wartości od 0 do 2 k, zmienne ze znakiem od -2 k-1 do 2 k-1 1, gdzie k to ilość bitów użytych do zapisania liczby 2

Liczby zmiennoprzecinkowe Liczbę zmiennoprzecinkową zapisujemy jako: x=m*r E gdzie M nazywamy mantysą, R podstawą, a E - wykładnikiem. W nauce posługujemy się notacją z R=10. Komputery zwykle przechowują liczby w formacie z R=2. Mając R, do przedstawienia liczby zmiennoprzecinkowej wystarczy znajomość dwóch liczb całkowitych: M i E. Zakres wartości to 2 emin < x < 2 emax Dwie liczby są różne, gdy ich mantysy różnią się o minimalną wartość α: x 1 =M 2 e, x 2 = M 2 e, x=x 1 x 2 = 2 e, x x = M = 20 2 n=2 n 3

Reprezentacja liczb w ROOT W ROOT zdefiniowane są następujące typy: Nazwa Typ Ilość bajtów Minimum Maximum UChar_t Integer 1 0 255 Char_t Integer 1-128 127 UShort_t Integer 2 0 65535 Short_t Integer 2-32768 32767 UInt_t Integer 4 0 4294967295 Int_t Integer 4-2147483647 2147483647 ULong_t Integer 4 0 4294967295 Long_t Integer 4-2147483647 2147483647 ULong64_t Integer 8 0 18446744073709551615 Long64_t Integer 8-9223372036854775808 9223372036854775807 Float_t Float 4 1.175494351e-38 3.402823466e+38F Double_t Float 8 2.2250738585072014e-308 1.7976931348623158e+308 Typy te są niezależne od architektury, na której działa ROOT, co jest warunkiem koniecznym do przenośności programów 4

Generatory liniowe kongruentne Komputer, jako urządzenie deterministyczne, może jedynie generować liczby pseudolosowe Najlepiej zbadanym algorytmem jest: x j 1 = a x j c mod m tzw. generator liniowy kongruentny (LCG) Ma on okres równy maksymalnie m Aby generator miał maksymalny okres: c i m nie mogą mieć wspólnych dzielników b = a 1 jest wielokrotnością każdej liczby pierwszej p, która jest dzielnikiem m b jest wielokrotnością 4, o ile m jest również wielokrotnością 4 5

Elementy podstawowe rzędy Rozpatrujemy liczby a i m, które nie mają wspólnych dzielników. Najmniejszę liczbę λ, która dla ustalonego a spełnia równanie: a mod m=1 nazywamy rzędem a modulo m. Wszystkie liczby a, które mają maksymalne możliwe λ(m) to elementy podstawowe modulo m. Przykład: m = 13. 2 1 =2 mod 13 =2, 2 2 =4 mod 13 =4, 2 3 =8 mod 13 =8, 2 4 =16 mod 13 =3, 2 5 =32 mod 13 =6, 2 6 =64 mod 13 =12, 2 7 =128 mod 13 =11, 2 8 =256 mod 13 =9, 2 9 =512 mod 13 =5, 2 10 =1024 mod 13 =10, 2 11 =2048 mod 13 =7, 2 12 =4096 mod 13 =1 a=2 λ=12, a=3 λ=3, a=4 λ=6, a=5 λ=4, a=6 λ=13, a=7 λ=14, a=8 λ=4, a=9 λ=3, a=10 λ=6, a=11 λ=14, a=12 λ=3 6

Przyjmując c=0 Gen. liniowe multiplikatywne x j 1 = a x j mod m otrzymujemy generator multiplikatywny liniowy kongruentny (MLCG) Są one szybsze, ale nie dają nigdy wartości 0 i mają krótsze okresy Istnieje twierdzenie, które mówi, że dla danego m, a, x 0 i c=0 maksymalny okres ciągu liczb losowych równy jest rzędowi λ(m). a musi być wtedy elementem podstawowym modulo m, a x 0 oraz m nie mogą mieć wspólnych dzielników. Okres m-1 można osiągnąć tylko dla m będącego liczbą pierwszą. 7

Testowanie jakości generatorów Wykonujemy dwuwymiarowy wkres par (x i, x i+1 ) Obsadzonych będzie jedynie (maksymalnie) m z m 2 węzłów Szukamy prostych łączących obsadzone węzły sieci, a następnie wybieramy największą z odległości d 2 między nimi. Dla rozkładów jednostajnych wielkość ta przybiera wartości w pobliżu minimum: d 2 m -1/2, co oznacza, że przestrzeń jest równomiernie wypełniona Dla rozkładów niejednostajnych (przy źle dobranych parametrach a i m) d 2 >> m -1/2 8

Jakość rozkładów - ilustracja 0,49cm 0,89cm 0,83cm 1,77cm 1cm m -1/2 Rozkład po lewej stronie ma d 2 dużo większe niż m -1/2 =0.094 Rozkład po prawej ma d 2 m -1/2, co oznacza, że dla danego m dobrano optymalny parameter a 1cm 9

Kombinacja generatorów liniowych oddzielnie naprzemiennie Najlepsze wyniki (najdłuższy okres) otrzymuje się łącząc ze sobą kilka (l) generatorów liniowych Maksymalny okres p równy jest wtedy: p=2 l 1 j=1 m j 1 l 10

Transformacja rozkładu jednorodnego Transformację rozkładu jednostajnego możemy wykorzystać jako prosty sposób generacji liczb losowych o skomplikowanych gęstościach prawdopodobieństwa g(y) y f(x) 1 1,02cm dy y=y(x)=? dx 1,59 x f x dx=g y dy gdy f x 1 dg y g y dy=dx dx= dg y x=g y y=g 1 x y min =G 1 0, y max =G 1 1 0 1 x 11

Przykład rozkład Breita-Wignera Szukamy sposobu generacji liczb z rokładu: g y = 2 2 4 y a 2 2 Najpierw liczymy dystrybuantę: x=g y = 2 y 2 4 z a 2 2 dz którą można scałkować przez zamianę zmiennych otrzymując: arctg 2 y a / x y = 1 2 Odwracając funkcję otrzymujemy: y x =a 2 tg { x 1 2 } A granice transformują się następująco: y 0 =a 2 tg { 2 } = y 1 =a 2 tg { 2 } = 12

Rozkład Breita-Wignera rysunek Tak wygląda rozkład Breita-Wignera (po prawej) otrzymany przez transformację rozkładu jednostajnego (po lewej) 13

Metoda von Neumanna Metody generacji liczb losowych przedstawione dotychczas mają ograniczone pole zastosowań. Wymagają znajomości postaci analitycznej dystrbuanty, a także jej odwracalności. Ich stopień skomplikowania rośnie też gwałtownie przy wzroście ilości zmiennych funkcji gęstości Wprowadzimy metodę generacji funkcji pseudolosowych, która wymaga jedynie znajomości funkcji gęstości prawdopodobieństwa i nadaje się do generacji liczb losowych z praktycznie dowolną taką funkcją 14

akceptujemy M. von Neumana przykład odrzucamy Generujemy parę liczb z rozkładu jednostajnego (y i, u i ) Sprawdzamy, czy u i <g(y i ) Jeśli tak, akceptujemy liczbę y i, jeśli nie odrzucamy ją Otrzymany rozkład jest opisany gęstością g(y) 15

Metoda von Neumanna definicje Dana jest funkcja g(y) (nie unormowana) Należy znaleźć jej maksymalną wartość g max, lub wartość g up, co do której zachodzi g up > g(y) Z rozkładu jednorodnego generujemy pary (y i, u i ) Granice zmienności y i powinny odpowiadać dziedzinie funkcji g(y). u i generujemy w granicach (0, u max ), gdzie u max g max Dla każdej pary sprawdzamy warunek u i <g(y i ) Jeśli jest on spełniony akceptujemy y i Otrzymany zbiór wartości y stanowi zestaw liczb losowych opisany gęstością prawdopodobieństwa proporcjonalną do funkcji g(y) 16

Metoda von Neumanna c.d. Wydajność metody von Neumanna (procent par zaakceptowanych) jest opisana wzorem: b a g y dy E= b a u max Jest ona maksymalna, gdy u max = g max Metodę von Neumanna można uogólnić na funkcję dowolnej ilości zmiennych f(x 1, x 2,..., x n ) W takim przypadku generujemy zbiór liczb losowych z rozkładu jednostajnego (x i 1, xi 2,..., xi n, ui ) Sprawdzamy warunek u i < f max (x 1, x 2,..., x n ) Akceptujemy (lub odrzucamy) cały zestaw zmiennych (x i 1, xi 2,..., xi n ) 17

Metoda von Neumanna z f. pomocniczą Mamy funkcję g(y). Szukamy takiej funkcji s(y), dla której const s(y) g(y), oraz łatwo wygenerować zmienne losowe opisane funkcją s(y) Losujemy parę liczb: y i zgodnie z rozkładem s(y) oraz u i z rozkładu jednostajnego (0, 1.0) Z warunku u i s(y)<g(y i ) akceptujemy (lub nie) y i Zaakceptowane liczby podlegają rozkładowi g(y) P Y y = a y s t g t s t dt= a y g t dt=g y G a Wydajność takiej metody wynosi: b g y dy a E= b a s y dy 18

M. von Neumanna z f. pom. - przykład Dana jest gęstość prawdopodobieństwa: g y =cos x / x 1 1/4, 0 y 2 Określa ona dwie wartości: g(0) = c oraz g(2) = d W zwykłej metodzie von Neumanna mamy u max = c Jako funkcję pomocniczą wybieramy prostą przechodzącą przez punkty (0, c), (2, d). d 2,55cm c 8,15cm Rozwiązując prosty układ równań: c=a 0 b d=a 2 b otrzymujemy s(y): s y = d c 2 y c 19

Przykład c.d. Co daje dystrybuantę: S y = d c y 2 cy 4 Oraz funkcję odwrotną: y=s 1 x =2 c c 2 c d c d Generujemy zmienną losową x w granicach S(0) =0 do S(2) = c+d Losujemy zmienną testową u z (0.0, 1.0) Akceptujemy y=s -1 (x), gdy u<g(y)/s(y) Wydajność wzrasta o 50% 20

Genracja liczb o rozkładzie normalnym Rozkład normalny: f x = 1 2 2 e x /2 nie ma analitycznej dystrybuanty, nie można więc stosować metody zamiany zmiennych. Używamy metody biegunowej Boxa i Mullera. Generujemy parę liczb (u 1, u 2 ) z rozkładów jednostajnych. Dokonujemy zamiany zmiennych v 1 =2u 1 1, v 2 =2u 2 1 Obliczamy s = v 1 2 + v 22. Gdy s 1, odrzuamy parę. Otrzymujemy dwie liczby opsiane roz. normalnym: x 1 =v 1 2/ s ln s x 2 =v 2 2/ s ln s 21

Całkowanie metodą Monte-Carlo Rozważmy wzór na wydajność metody von Neumanna y max E= y min g y dy Przekształcając, mamy: = N zaakceptowane y max y min u max N wszystkie y max I = ymin g y dy= N zaakceptowane N wszystkie Możemy obliczyć DOWOLNĄ całkę oznaczoną poprzez prostą generację liczb z rozkładu jednostajnego! Może to być również funkcja dowolnie wielu zmiennych. Względna dokładność wyznaczenia całki wynosi: I I = 1 N zaakceptowane y max y min u max 22

Całka Monte-Carlo liczba π Obliczymy wartość liczby π przy pomocy metody Monte-Carlo. Użyjemy funkcji: g y = R 2 y 2, 0 y R ;0, 0 y R Jej całka w granicach (0.0, 1.0) wynosi π/4. Dla prostoty przyjmiemy R=1.0. 23

Prawo propagacji błędów Możemy obliczyć macierz błędów wielkości Y: C y =T C x T T, Błędy zmiennych Y zależą od całej macierzy kowariancji, a nie tylko od błedów zmiennej x. Tylko i wyłącznie, gdy zmienne X są niezależne czyli c ij =0, dla i j, czyli gdy macierz C x jest diagonalna, możemy napisać: 2 Y i = n y i j=1 x j 2 2 X j Co daje nam, po utożsamieniu σ z błędem pomiarowym, prawo propagacji błędów: y i = j=1 n y i x j 2 x j 2 24