Sunteți pe pagina 1din 3

Metoda invers¼

a pentru simularea unei variabile aleatoare

Studiul comport¼ arii în timp a unor sisteme în evoluţia c¼ arora intervin şi
elemente aleatoare se poate face cu ajutorul calculatoarelor. Pentru aceasta,
sistemului real i se asociaz¼a un model de simulare care este folosit apoi pentru
a produce, prin intermediul calculatorului, succesiunea cronologic¼ a de st¼
ari prin
care va trece sistemul, considerându-se dat¼a starea sa iniţial¼
a.
Modelele mai complicate nu au soluţii analitice. Pentru astfel de situaţii se
recomand¼ a simularea digital¼a. În informatic¼ a, termenul a fost introdus de John
von Neumann.
Simularea digital¼a se poate folosi cu succes la proiectarea sistemelor , f¼ acând
experienţe pe model cu diferiţi parametri de intrare. La construirea unui model
de simulare, partea cea mai di…cil¼ a este procedeul de ”a mişca”sistemul în timp
astfel încât s¼
a nu se ajung¼ a la situaţia în care diferitele elemente ale sistemului

a parcurg¼ a intervale diferite de timp. De aceea este necesar¼ a introducerea în
modelul de simulare a unei variabile numit¼ a ceasul simul¼arii care s¼ a m¼asoare
scurgerea timpului real în care se simuleaz¼ a sistemul, cu scopul de a menţine
ordinea corect¼ a în timp a evenimentelor. Aceast¼ a variabil¼
a ia la început valoarea
zero, apoi este incrementat¼ a la …ecare pas al procesului de simulare.
În mediul Matlab, în Statistics Toolbox exist¼a generatori pentru 20 de tipuri
de variabile aleatoare: exponenţiale negative (exprnd), Poisson (poissrnd) ,de
tip gamma (gamrnd) şi beta (betarnd), normale (normrnd), binomial¼a (binornd)
, 2 (chi2rnd), etc.
Toţi aceşti generatori folosesc generatorul de numere pseudoaleatoare (de dis-
tribuţie uniform¼a) random. Codul acestor funcţii Matlab se poate tip¼ ari cu
comanda
type_ function_ name.
Codul se poate redenumi şi modi…ca pentru o aplicaţie proprie.

Metoda invers¼ a pentru simularea unei variabile aleatoare continue


Leg¼
atura dintre distribuţia uniform¼
a şi alte distribuţii continui este dat¼
a de
teorema lui Hincin:
Dac¼a F este funcţia de repartiţie a unei variabile aleatoare continue X atunci
F ( X) este uniform¼a pe [0,1], adic¼a F ( X)=U sau F 1 ( U)=X .
Consecinţ¼a
Dac¼a obţinem valorile de selecţie U 1 , U 2 ; :::;U n ale lui U, apelând de n
ori funcţia random , atunci putem obţine valorile de selecţie X 1; X 2 ; :::;X n
ale lui X cu formula
1
X i =F ( U i ), i=1,...,n
(metoda invers¼a pentru generarea unei variabile aleatoare continue).

1
Se poate astfel simula orice variabil¼
a aleatoare X dac¼ a se cunoaşte funcţia
sa de repartiţie F şi se poate calcula uşor şi f¼
ar¼ a F 1:
a erori funcţia invers¼
De exemplu pentru o variabil¼ a aleatoare exponenţial¼a de parametru se poate
folosi formula:
1
X=- ln U :

Metoda invers¼ a pentru simularea unei variabile aleatoare discrete


Fie X o variabil¼
a aleatoare discret¼
a:
m
X
a1 a2 a3 am
X : ; pk = 1:
p1 p2 p3 pm
k=1

Funcţia sa de repartiţie este:


8
>
> 0; daca x<a1
>
>
< p1 ; a1 x < a2
F (x ) = p 1 + p2 ; a2 x < a3
>
>
>
> p 1 + p2 + ::: + pk ; ak x < ak+1
:
1; am x

Pentru simularea variabilei aleatoare X ; se genereaz¼a U uniform¼a pe [0,1] şi


se caut¼
a valoarea ai ; astfel încât F (ai ) =U . Dac¼a C este vectorul cu compo-
Pi
nentele C(i):= pj ; algoritmul este urm¼ atorul:
j=1
U :=random
i :=1; while U > C(i) i :=i+1;
X := ai

Exemplu
Fie X variabila aleatoare discret¼
a:
6
X
0 1 2 3 4 5
X : ; pk = 1:
0:9 0:05 0:02 0:01 0:01 0:01
k=1

Secvenţa de program de mai jos genereaz¼ a N valori de selecţie ale variabilei


aleatoare discrete X :
Pentru N mare, frecvenţa apariţiei …ec¼
arei valori se apropie de probabilitatea
cu care variabila X ia acea valoare.

N=input(’Introduceti numarul de valori de selectie generate ’);


X=[0 1 2 3 4 5;0.9 0.05 0.02 0.01 0.01 0.01];
P=zeros(6,1);
C=zeros(6,1);
for i=1:6

2
for j=1:i
C(i)=C(i)+X(2,j);
end
end
for k=1:N
U=rand;
i=1;
while U > C(i)
i=i+1;
end
R=X(1,i);
P(R+1)=P(R+1)+1;
end
P./N

S-ar putea să vă placă și