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


Politechnika Zielonogórska

Wydział Elektryczny

Imię i nazwisko:

Marcin Gałkowski

Grupa lab.

37C

Nr ćwicz.

2

Ocena

Laboratorium modelowania i symulacji.

Temat ćwiczenia:

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

Data wyk.

16.10.

2000r.

Data odd.

23.10.

2000r.

Podpis

  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).

  1. Programy wykorzystywane w ćwiczeniu

3.1. Funkcja uran - generator multiplikatywny

%URAN Generator multiplikatywny,

% x=a*x(mod m)

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

x=rem(a*x,m);

3.2. Funkcja ugen - generowanie wektora (Nx1)

%UGEN Generowanie wektora liczb pseudolosowych,

% X - wektor Nx1 liczb o rozkładzie równomiernym na przedziale (0,1)

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

for i=1:N,

x=uran(x,a,m);

X(i)=x/m;

end;

3.3. Program test - test autokorelacji dla generatora liczb pseudolosowych o rozkładzie

równomiernym

%TEST Test autokorelacji dla generatora liczb pseudolosowych o rozkładzie

% równomiernym na przedziale (0,1)

X=X-0.5;

Z=corr(X,N,M);

Z=Z/Z(1);

figure(1); clf; hold on;

plot([0:M-1],Z,'*');

% Obliczenie granicy przedziału ufności dla poziomu ufności 0.95

k=1.96*sqrt(1/N);

K=k*ones(M,1);

plot([0:M-1],K,'--r');

plot([0:M-1],-K,'--r'); hold off;

3.4. Funkcja corr - obliczanie funkcji korelacyjnej

%CORR Obliczanie funkcji korelacyjnej

% c=corr(x,N,M),

% x jest wektorem Nx1 zawierającym badany ciąg,

% M-1 określa maksymalne opóźnienie,

% c oznacza wektor 1xM zawierający wartości funkcji korelacyjnej

function[c]=corr(x,N,M);

% Obliczanie funkcji korelacji własnej

c=0*zeros(1,M);

for I=1:M,

for i=1:N-M+1,

c(I)=c(I)+x(i)*x(i+I-1);

end;

c(I)=(1/(N-M+1))*c(I);

end;

3.1.2. Ciągi liczb pseudolosowych dla różnych typów parametru m.

  1. m=2n;

x = 7 1 7 1 7 1 7 1

x = 9 1 9 1 9 1

x = 10 4 8 16 0 0

  1. m=10n;

x = 10 100 1000 0 0 0

x = 100 10000 0 0 0 0

x = 10000 0 0 0 0 0

  1. m=liczba pierwsza;

x = 10 1 10 1 10 1

x = 13 16 4 1 13 16

x = 20 23 25 7 24 16

3.1.3. Długość okresu generatora ( N ).

Badanie przeprowadzono dla parametrów z podpunktu 3.1.2.

  1. m=2n;

N = 1;

N = 1;

N = nieskończenie długi;

  1. m=10n;

N = nieskończenie długi;

N = nieskończenie długi;

N = nieskończenie długi;

  1. m=liczba pierwsza;

N = 1;

N = 4;

N = 6;

3.1.4. Wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1):

a = 0.5; m = 0.9; x0 = 0.1; M = 10;

X = 0.05 0.025 0.0125 0.0062 0.0031 0.0016 0.0008 0.0004 0.0002 0.0001

3.1.4.1. Histogram rozkładu wektora pseudolosowego:

0x01 graphic

3.1.4.2. Test autokorelacji:

0x01 graphic

3.1.5. Generatory mieszany i addytywny (funkcje):

Funkcja uran1 - generator mieszany

%URAN Generator mieszany,

% x=a*x+b(mod m)

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

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

Funkcja uran4 - generator addytywny

%URAN4 Generator addytywny,

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

x(1)=b;

x(2)=a;

for j=1:N,

x(j+2)=rem(x(j+1)+x(j),m);

end;

m=10; x=1; a=11; b=7;

x = 8 5 2 9 6 3 0 7 4 1 8 5 ...

m=24; b=1; a=2; N=10;

x = 1 2 3 5 8 13 21 10 7 17 0 17

3.1.5.1. Wektory pseudolosowe o rozkładzie równomiernym na przedziale (0,1)

wygenerowane przez generatory mieszany i addytywny:

0.6250 0.3438 0.6875 0.1563 0.2500 0.4688 0.3125

0.2813 0.8750 0.5938 0.9375 0.4063 0.5000 0.7188

0.5625 0.5313 0.1250 0.8438 0.1875 0.6563 0.7500

0.9688 0.8125 0.7813 0.3750 0.0938 0.4375 0.9063

0 0.2188 0.0625 0.0313 0.6250 0.3438 0.6875

0.1563 0.2500 0.4688 0.3125 0.2813 0.8750 0.5938

0.9375 0.4063 0.5000 0.7188 0.5625 0.5313 0.1250

0.8438 0.1875 0.6563 0.7500 0.9688 0.8125 0.7813

0.3750 0.0938 0.4375 0.9063 0 0.2188 0.0625

0.0313 0.6250 0.3438 0.6875 0.1563 0.2500 0.4688

0.3125 0.2813 0.8750 0.5938 0.9375 0.4063 0.5000

0.7188 0.5625 0.5313 0.1250 0.8438 0.1875 0.6563

0.7500 0.9688 0.8125 0.7813 0.3750 0.0938 0.4375

0.9063 0 0.2188 0.0625 0.0313 0.6250 0.3438

0.6875 0.1563

0.0313 0.0313 0.0625 0.0938 0.1563 0.2500 0.4063

0.6563 0.0625 0.7188 0.7813 0.5000 0.2813 0.7813

0.0625 0.8438 0.9063 0.7500 0.6563 0.4063 0.0625

0.4688 0.5313 0 0.5313 0.5313 0.0625 0.5938

0.6563 0.2500 0.9063 0.1563 0.0625 0.2188 0.2813

0.5000 0.7813 0.2813 0.0625 0.3438 0.4063 0.7500

0.1563 0.9063 0.0625 0.9688 0.0313 0 0.0313

0.0313 0.0625 0.0938 0.1563 0.2500 0.4063 0.6563

0.0625 0.7188 0.7813 0.5000 0.2813 0.7813 0.0625

0.8438 0.9063 0.7500 0.6563 0.4063 0.0625 0.4688

0.5313 0 0.5313 0.5313 0.0625 0.5938 0.6563

0.2500 0.9063 0.1563 0.0625 0.2188 0.2813 0.5000

0.7813 0.2813 0.0625 0.3438 0.4063 0.7500 0.1563

0.9063 0.0625 0.9688 0.0313 0 0.0313 0.0313

0.0625 0.0938

3.1.5.2. Histogramy rozkładu:

0x01 graphic

0x01 graphic

3.1.5.3. Testy autokorelacji:

0x01 graphic

0x01 graphic

3.1.6.2. Generowanie liczb pseudolosowych za pomocą generatora kwadratowego.

a) dla parametrów: m = 100; x = 7; ciąg wygląda następująco:

b) dla parametrów: m = 400; x = 23; ciąg wygląda następująco:

c) dla parametrów: m = 500; x = 49; ciąg wygląda następująco:

3.1.6.3. Wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1) o zadanej

długości M.

0.4033 0.8033 0.6033 0.2033 0.4033 0.8033 0.6033

0.2033 0.4033 0.8033 0.6033 0.2033 0.4033 0.8033

0.6033 0.2033 0.4033 0.8033 0.6033 0.2033 0.4033

0.8033 0.6033 0.2033 0.4033 0.8033 0.6033 0.2033

0.4033 0.8033 0.6033 0.2033 0.4033 0.8033 0.6033

0.2033 0.4033 0.8033 0.6033 0.2033 0.4033 0.8033

0.6033 0.2033 0.4033 0.8033 0.6033 0.2033 0.4033

0.8033

3.1.6.4. Histogram rozkładu wektora pseudolosowego o rozkładzie równomiernym na

przedziale (0,1) i zadanej długości M.

0x01 graphic

3.1.6.5. Autokorelacja:

0x01 graphic

3.1.7.1. Wektor pseudolosowy o rozkładzie równomiernym na przedziale (0,1),

wygenerowany za pomocą generatora rand:

0.5009 0.3304 0.2305 0.6049 0.0473 0.7365 0.4877

0.9858 0.9785 0.1423 0.9290 0.0158 0.7277 0.7338

0.0679 0.7975 0.4533 0.2107 0.7353 0.5774 0.7895

0.0827 0.3758 0.2010 0.6457 0.1239 0.5075 0.1056

0.0291 0.0507 0.1827 0.5097 0.6476 0.5096 0.5992

0.3364 0.7235 0.1181 0.5198 0.9952 0.3133 0.5058

0.8198 0.2987 0.7086 0.8695 0.6565 0.8622 0.9266

0.9387 0.6657 0.5977 0.4045 0.1340 0.3020 0.4603

0.5033 0.7629 0.9443 0.6498 0.9464 0.4637 0.2712

0.0694 0.1874 0.3490 0.9143 0.0138 0.9875 0.1740

0.4030 0.3993 0.7857 0.5059 0.5624 0.7012 0.2854

0.9866 0.2243 0.5010 0.4299 0.5160 0.0469 0.9647

0.0658 0.5100 0.7054 0.6249 0.2275 0.6307 0.1532

0.3108 0.6493 0.8356 0.0177 0.4044 0.7995 0.1596

0.3124 0.6311

3.1.7.2. Histogram rozkładu wektora:

0x01 graphic

3.1.7.3. Test autokorelacji:

0x01 graphic

4. Wnioski.



Wyszukiwarka

Podobne podstrony:
Generowanie i testowanie liczb pseudolosowych o rozkładzie równomiernym
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