Laboratorium Algebry Komputerowej -
¢wiczenia nr 7
3 czerwca 2014
1 Powtórka z rachunku prawdopodobie«stwa
1.1 Rozkªad jednostajny
Rozkªad jednostajny na przedziale [a, b] jest zdeniowany jako:
ρ(x) =
0
x < a
1
b−a
a ≤ x ≤ b
0
x > b
Wa»nym przypadkiem szczególnym jest rozkªad jednostajny na przedziale [0, 1]
ρ(x) =
0
x < 0
1
0 ≤ x ≤ 1
0
x > 1
Rozkªad ten ma warto±¢ ±redni¡ µ = 1/2oraz wariancj¦ σ
2
= 1/12
.
1.2 Rozkªad normalny
G¦sto±¢ rozkªadu normalnego o warto±ci ±redniej µ oraz odchyleniem standar-
towym σ deniuje si¦ jako:
ρ(x) =
1
σ
√
2π
e
−
(x−µ)2
2σ2
W przypadku µ = 0, σ = 1 otrzymujemy:
ρ(x) =
1
√
2π
e
−
x2
2
2 Generowanie liczb pseudolosowych
2.1 Generatory liczb pseudolosowych
Komputerowe algorytmy generowania liczb pseudolosowych s¡ oparte na al-
gorytmach deterministycznych. Z tego powodu ci¡g kolejnych warto±ci gen-
erowanych przez algorytm jest caªkowicie przewidywalny.
1
Komputer jest w stanie reprezentowa¢ jedynie sko«czon¡ liczb¦ stanów. Oz-
nacza to, »e warto±ci generowane przed algorytm deterministyczny powtarzaj¡
si¦ z pewnym okresem.
Wi¦kszo±¢ generatorów liczb pseudolosowuch daje rozkªad jednostajny [0, 1].
Inne rozkªady zazwyczaj s¡ tworzone na bazie tego rozkªadu.
2.2 Liniowe generatory kongruentne
W celu wyznaczenia ci¡gu liczb o wªasno±ciach losowych (liczb pseudolosowych)
stosuje si¦ wzór rekurencyjny
x
k
=
Mod(a · x
k−1
+ c, M )
(1)
przy czym x
0
(tzw. ziarno) mo»e by¢ w zasadzie dowoln¡ liczb¡ caªkowit¡,
za± a, c i m s¡ odpowiednio dobranymi dodatnimi liczbami caªkowitymi. Ci¡g
liczby x
k
/M
mo»e sªu»y¢ jako realizacja ci¡gu liczb losowych o rozkªadzie jed-
nostajnym.
Parametr M wybiera si¦ najcz¦±ciej jako równy b¡d¹ bliski pot¦dze liczy 2:
M = 2
r
lub M = 2
r
− 1
(2)
gdzie r jest licz¡ bitów w sªowie procesora.
2.3 Generatory typu Fibonacciego
Kolejny popularny typ generatorów. Przykªad:
x
k
= (x
k−17
− x
k−5
) mod 1
Podany przykªad generatora wymaga oczywi±cie podania 17 warto±ci ziaren.
2.4 Generowanie liczb losowych o rozkªadzie normalnym
Rozkªad normalny N (µ, σ) z parametrami µ i σ okre±lony jest przez funkcj¦
g¦sto±ci prawdopodobie«stwa
ρ(x) =
1
√
2πσ
e
−
(x−µ)2
2σ2
.
(3)
Standaryzacja zmiennej losowej X o rozkªadzie N (µ, σ) do zmiennej Y rozkªadu
N (0, 1)
odbywa si¦ przez transformacj¦
Y =
X − µ
σ
.
(4)
Analogicznie, stosuj¡c transformacj¦ odwrotn¡
X = µ + σY
(5)
mo»emy z rozkªadu N (0, 1) otrzyma¢ rozkªad N (µ, σ).
Prostym sposobem wygenerowania ci¡gu liczb o rozkªadzie normalnym przy
wykorzystaniu liczb losowych o rozkªadu jednostajnym jest wykorzystanie Cen-
tralnego Twierdzenia Granicznego, zgodnie z którym suma wielu niezale»nych
losowych pochodz¡cych z tego samego rozkªadu d¡»y do rozkªadu normalnego.
2
Zadania
Zadanie 1
Napisz funkcje random1(n,z0) i random2(n,z0) generowania macierzy zbioru
liczb losowych o rozkªadzie jednostajnym, wykorzystuj¡c wzory (1) i (2). Przyj-
mij nast¦puj¡cych zestawów warto±ci staªych a, c i M :
M
1
= 2048
a
1
= 1203
c
1
= 0
M
2
= 2
31
a
2
= 65539
c
2
= 0
Zbadaj wpªyw warto±ci pocz¡tkowej x
0
na rozkªad wygenerowanych liczb. Do
wizualizacji rozkªadów wykorzystaj funkcj¦ histplot generuj¡c¡ histogram.
Porównaj jako±¢ wyników z uzyskanymi przy wykorzystaniu wbudowanego ge-
neratora rand systemu Sci-Lab.
Zadanie 2
Skonstruuj generator typu Fibonacciego. Porównaj jego wªasno±ci statystyczne
wzgl¦dem generatorów uzyskanych w pierwszym zadaniu.
Zadanie 3
W oparciu o Centralne Twierdzenie Graniczne oraz wzór (5) napisz funkcj¦
random_normal(mi,sigma,n), generuj¡c¡ zbiór liczb losowych z rozkªadu nor-
malnego N (µ, σ). Porównaj jako±¢ wyników z uzyskanymi przy wykorzysta-
niu Sci-Labowego generatora rand(n,m,normal) liczb losowych z rozkªadu
N (0, 1)
.
3