Generowanie i testowanie liczb pseudolosowych o rozkładzie równomiernym


Politechnika

Zielonogórska

Katarzyna Szymańska

Grupa lab.

37A

Nr ćwiczenia

2

Ocena

Laboratorium Modelowania i Symulacji

Temat:

Generowanie i testowanie liczb pseudolosowych o rozkładzie równomiernym.

Data wykonania ćw:

19-10-2000

Data oddania sprawozdania:

25-10-2000

Sprawdził:

  1. Program ćwiczenia

  1. Przed wykonaniem kolejnych punktów programu ćwiczenia należy dokładnie zapoznać się z załączonymi programami w języku Matlab,

  1. Za pomocą programu generatora multiplikatywnego uran wygenerować ciągi liczb pseudolosowych dla różnych typów parametru m (liczba pierwsza),

  2. Napisać i uruchomić funkcję w języku Matlab wyznaczającą długość okresu generatora. Wyznaczyć długości okresów dla kilku wybranych generatorów.

  3. Wygenerować wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1), o zadanej długości M, za pomocą programu ugen.

  1. Obliczyć histogram rozkładu (hist).

  2. Uruchomić program testu autokorelacji (test). Zbadać wpływ doboru stałych a i m na skorelowanie ciągu. Uwaga: wartości a zbliżone do zapewniają dobre właściwości statystyczne generatora, dla wartości bliskich 1 lub m test korelacji zwykle nie jest spełniony.

  1. Napisać i uruchomić funkcje w języku Matlab generowania liczb pseudolosowych za pomocą generatorów mieszanego i addytywnego.

  1. Wygenerować za pomocą generatorów mieszanego i addytywnego wektory pseudolosowe o rozkładzie równomiernym na przedziale (0,1), o zadanej długości M.

  2. Obliczyć histogramy rozkładu (hist).

  3. Uruchomić program testu autokorelacji (test).

  1. Napisać i uruchomić funkcje w języku Matlab generowania liczb pseudolosowych za pomocą generatora kwadratowego.

  2. Dobrać eksperymentalnie parametry generatora (wartość początkową x i liczbę m) tak, aby otrzymać ciąg o założonej długości.

  3. Wygenerować wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1), o zadanej długości M.

  4. Obliczyć histogram rozkładu (hist).

  5. Uruchomić program testu autokorelacji (test).

  1. Wygenerować za pomocą generatora rand wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1).

  2. Obliczyć histogramy rozkładu (hist).

  3. Uruchomić program testu autokorelacji (test).

Ad 1.2 Generator multiplikatywny uran.

URAN Generator multiplikatywny,

% x=a*x(mod m)

function[x]=uran(x,a,m);

x=rem(a*x,m);

Parametr m.= 2n

Wygenerowane liczby dla a=13

Losowanie nr

Dla 2^1

Dla 2^2

Dla 2^3

Dla 2^4

Dla 2^5

Dla 2^6

Dla 2^7

1

1

1

5

13

13

13

13

2

1

1

1

9

9

41

41

3

1

1

5

5

21

21

21

4

1

1

1

1

17

17

17

5

1

1

5

13

29

29

93

6

1

1

1

9

25

57

57

7

1

1

5

5

5

37

101

Parametr m.= 10n

Wygenerowane liczby dla a=13

Losowanie nr

Dla 10^1

Dla 10^2

Dla 10^3

Dla 10^4

Dla 10^5

Dla 10^6

1

3

13

13

13

13

13

2

9

69

169

169

169

169

3

7

97

197

2197

2197

2197

4

1

61

561

8561

28561

28561

5

3

93

293

1293

71293

371293

6

9

9

809

6809

26809

826809

7

7

17

517

8517

48517

748517

Parametr m równy liczbie pierwszej m=83

Wygenerowane liczby dla a=9

Losowanie nr

Dla m.=83

1

9

2

81

3

65

4

4

5

36

6

75

7

11

Ad 1.3.

Obliczanie długości okresu generatora :

a)kwadratowego

function[x]=kran(x,m);

x=rem(x*x,m);

Długość okresu dla x=11 m.=167 wynosi 81

b) multiplikatywnego

function[x]=uran(x,a,m);

x=rem(a*x,m);

Długość okresu dla a=19 i m.=37 wynosi 35

Ad 1.4. Wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1) wygenerowany za pomocą programu ugen

function[X,x]=ugen(x,a,m,N);

for i=1:N,

x=uran(x,a,m);

X(i)=x/m;

end;

Dla a =9 i m.=83

0.6145 0.5301 0.7711 0.9398 0.4578 0.1205 0.0843

0.7590 0.8313 0.4819 0.3373 0.0361 0.3253 0.9277

0.3494 0.1446 0.3012 0.7108 0.3976 0.5783 0.2048

0.8434 0.5904 0.3133 0.8193 0.3735 0.3614 0.2530

0.2771 0.4940 0.4458 0.0120 0.1084 0.9759 0.7831

0.0482 0.4337 0.9036 0.1325 0.1928 0.7349 0.6145

0.5301 0.7711 0.9398 0.4578 0.1205 0.0843 0.7590

0.8313 0.4819 0.3373 0.0361 0.3253 0.9277 0.3494

0.1446 0.3012 0.7108 0.3976 0.5783 0.2048 0.8434

0.5904 0.3133 0.8193 0.3735 0.3614 0.2530 0.2771

0.4940 0.4458 0.0120 0.1084 0.9759 0.7831 0.0482

0.4337 0.9036 0.1325 0.1928 0.7349 0.6145 0.5301

0.7711 0.9398 0.4578 0.1205 0.0843 0.7590 0.8313

0.4819 0.3373 0.0361 0.3253 0.9277 0.3494 0.1446

0.3012 0.7108 0.3976 0.5783 0.2048 0.8434 0.5904

0.3133 0.8193 0.3735 0.3614 0.2530 0.2771 0.4940

0.4458 0.0120 0.1084 0.9759 0.7831 0.0482 0.4337

0.9036 0.1325 0.1928 0.7349 0.6145 0.5301 0.7711

0.9398 0.4578 0.1205 0.0843 0.7590 0.8313 0.4819

0.3373 0.0361 0.3253 0.9277 0.3494 0.1446 0.3012

0.7108 0.3976 0.5783 0.2048 0.8434 0.5904 0.3133

0.8193 0.3735 0.3614

Ad 1.4.1 Histogram rozkładu

0x08 graphic

Ad 1.4.2 Test autokorelacji dla:

A=9 m=83

0x08 graphic

Dla a=2 i m=83

0x08 graphic

Dla a=79 m.=83

0x08 graphic

Ad 1.5.

a) Generowanie liczb pseudolosowych za pomocą generatora mieszanego

function[x]=mieszany(x,a,b,m);

x=rem(a*x+b,m);

Dla wartości parametrów :

a=3

b=2

m=17

wyniki są następujące :

5 0 2 8 9 12 4 14 10 15 13 7 6 3 11 1 5

Ad 1.5.1.Wektor pseudolosowy wygenerowany za pomocą generator mieszanego

0.2941 0 0.1176 0.4706 0.5294 0.7059 0.2353

0.8235 0.5882 0.8824 0.7647 0.4118 0.3529 0.1765

0.6471 0.0588 0.2941 0 0.1176 0.4706 0.5294

0.7059 0.2353 0.8235 0.5882 0.8824 0.7647 0.4118

0.3529 0.1765 0.6471 0.0588 0.2941 0 0.1176

0.4706 0.5294 0.7059 0.2353 0.8235 0.5882 0.8824

0.7647 0.4118 0.3529 0.1765 0.6471 0.0588 0.2941

0 0.1176 0.4706 0.5294 0.7059 0.2353 0.8235

0.5882 0.8824 0.7647 0.4118 0.3529 0.1765 0.6471

0.0588 0.2941 0 0.1176 0.4706 0.5294 0.7059

0.2353 0.8235 0.5882 0.8824 0.7647 0.4118 0.3529

0.1765 0.6471 0.0588 0.2941 0 0.1176 0.4706

0.5294 0.7059 0.2353 0.8235 0.5882 0.8824 0.7647

0.4118 0.3529 0.1765 0.6471 0.0588 0.2941 0

0.1176 0.4706 0.5294 0.7059 0.2353 0.8235 0.5882

0.8824 0.7647 0.4118 0.3529 0.1765 0.6471 0.0588

0.2941 0 0.1176 0.4706 0.5294 0.7059 0.2353

0.8235 0.5882 0.8824 0.7647 0.4118 0.3529 0.1765

0.6471 0.0588 0.2941 0 0.1176 0.4706 0.5294

0.7059 0.2353 0.8235 0.5882 0.8824 0.7647 0.4118

0.3529 0.1765 0.6471 0.0588 0.2941 0 0.1176

0.4706 0.5294 0.7059

Ad 1.5.2 Histogram rozkładu

0x01 graphic

Ad 1.5.3 Test autokorelacji

0x01 graphic

Ad.1.5.

b) Generowanie liczb pseudolosowych za pomocą generatora addytywnego

function[x]=ranadd(x,x1,m);

x=rem(x+x1,m);

Dla m=100 , x1=17 otrzymano następujące wyniki:

18 35 52 69 86 3 20 37 54 71 88

Ad .1.5.2 Dla specjalnie dobranego m=10 a=27 wyniki są następujące

4 1 8 5 2 9 6 3 0 7 4 1 8

Ad.1.5.3 Wektor pseudolosowy o rozkładzie równomiernym na przedziale(0,1) , o długości M=100 , a=47

0.0300 0.5900 0.6200 0.2100 0.8300 0.0400 0.8700

0.9100 0.7800 0.6900 0.4700 0.1600 0.6300 0.7900

0.4200 0.2100 0.6300 0.8400 0.4700 0.3100 0.7800

0.0900 0.8700 0.9600 0.8300 0.7900 0.6200 0.4100

0.0300 0.4400 0.4700 0.9100 0.3800 0.2900 0.6700

0.9600 0.6300 0.5900 0.2200 0.8100 0.0300 0.8400

0.8700 0.7100 0.5800 0.2900 0.8700 0.1600 0.0300

0.1900 0.2200 0.4100 0.6300 0.0400 0.6700 0.7100

0.3800 0.0900 0.4700 0.5600 0.0300 0.5900 0.6200

0.2100 0.8300 0.0400 0.8700 0.9100 0.7800 0.6900

0.4700 0.1600 0.6300 0.7900 0.4200 0.2100 0.6300

0.8400 0.4700 0.3100 0.7800 0.0900 0.8700 0.9600

0.8300 0.7900 0.6200 0.4100 0.0300 0.4400 0.4700

0.9100 0.3800 0.2900 0.6700 0.9600 0.6300 0.5900

0.2200 0.8100

Ad 1.5.4 Histogram rozkładu

0x08 graphic

Ad 1.5.5. Test autokorelacji

0x08 graphic

Ad. 1.6.1 Generator kwadratowy liczb pseudolosowych

function[x]=rankwadr(x,m);

x=rem(x*x,m);

0.3976 0.1205 0.2048 0.4819 0.2771 0.3735 0.5783

0.7590 0.8193 0.7108 0.9398 0.3012 0.5301 0.3253

0.7831 0.9036 0.7711 0.3494 0.1325 0.4578 0.3976

0.1205 0.2048 0.4819 0.2771 0.3735 0.5783 0.7590

0.8193 0.7108 0.9398 0.3012 0.5301 0.3253 0.7831

0.9036 0.7711 0.3494 0.1325 0.4578 0.3976 0.1205

0.2048 0.4819 0.2771 0.3735 0.5783 0.7590 0.8193

0.7108 0.9398 0.3012 0.5301 0.3253 0.7831 0.9036

0.7711 0.3494 0.1325 0.4578 0.3976 0.1205 0.2048

0.4819 0.2771 0.3735 0.5783 0.7590 0.8193 0.7108

0.9398 0.3012 0.5301 0.3253 0.7831 0.9036 0.7711

0.3494 0.1325 0.4578 0.3976 0.1205 0.2048 0.4819

0.2771 0.3735 0.5783 0.7590 0.8193 0.7108 0.9398

0.3012 0.5301 0.3253 0.7831 0.9036 0.7711 0.3494

0.1325 0.4578

Ad.1.6.2 Histogram rozkładu

0x01 graphic

Ad. 1.6.3. Test autokorelacji

0x01 graphic

Ad 1.7.1 Wektor pseudolosowy wygenerowany za pomocą generatora rand

rand(23,1)

Wartości pseudolosowe:

0.9267 0.6787 0.0743 0.0707 0.0119 0.2272 0.5163

0.4582 0.7032 0.5825 0.5092 0.0743 0.1932 0.3796

0.2764 0.7709 0.3139 0.6382 0.9866 0.5029 0.9477

    1. 0.9176

Ad 1.7.2 Histogram rozkładu

0x01 graphic

Ad.1.7.3 Test autokorelacji

0x01 graphic



Wyszukiwarka

Podobne podstrony:
Generowanie i testowanie liczb pseudolosowych o rozkładzie równomiernym1
Generowanie liczb pseudolosowych w C
Tablica liczb pierwszych i rozkładów na czynniki pierwsze, 04. chomikowe różności, Królowa matematyk
Testowanie hipotez dla rozkładu normalnego
Testowanie hipotez dla rozkładu t
Rozkład równomierny (PP329)
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
Generowanie liczb losowych
Rozklady alarmowe
Pseudomonas
10 Reprezentacja liczb w systemie komputerowymid 11082 ppt
02b Rozkład normalnyid 4039 ppt
06 Testowanie hipotez statystycznychid 6412 ppt

więcej podobnych podstron