You are on page 1of 3

Metoda invers¼ a pentru simularea unei variabile aleatoare

Studiul comport¼ arii în timp a unor sisteme în evolu¸ tia c¼ arora intervin ¸ si 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¸ tial¼ a. Modelele mai complicate nu au solu¸ tii analitice. De exemplu, sistemele de servire cu un num¼ ar mare de sta¸ tii cu o topologie complex¼ a, cu reparti¸ tiile timpilor de sosire ¸ si/sau de servire de un tip complicat (gamma, Weibull, 2 ; amestecuri de reparti¸ tii) sau sisteme cu priorit¼ a¸ ti. Pentru astfel de situa¸ tii 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 de a¸ steptare, f¼ acând experien¸ te pe model cu diferi¸ ti parametri de intrare. La construirea unui model de simulare, partea cea mai di…cil¼ a este procedeul de ” a mi¸ sca”sistemul în timp astfel încât s¼ a nu se ajung¼ a la situa¸ tia în care diferitele elemente ale sistemului s¼ 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¸ tine 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¸ tiale negative (exprnd), Poisson (poissrnd) ,de tip gamma (gamrnd) s ¸i beta (betarnd), normale (normrnd), binomial¼ a (binornd) , 2 (chi2rnd), etc. To¸ ti ace¸ sti generatori folosesc generatorul de numere pseudoaleatoare (de distribu¸ tie uniform¼ a) random. Codul acestor func¸ tii Matlab se poate tip¼ ari cu comanda type_ function_ name. Codul se poate redenumi ¸ si modi…ca pentru o aplica¸ tie proprie. Metoda invers¼ a pentru simularea unei variabile aleatoare continue Leg¼ atura dintre distribu¸ tia uniform¼ a¸ si alte distribu¸ tii continui este dat¼ a de teorema lui Hincin : Dac¼ a F este func¸ tia de reparti¸ tie 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¸ t¼ a Dac¼ a ob¸ tinem valorile de selec¸ tie U 1 , U 2 ; :::;U n ale lui U, apelând de n ori func¸ tia random , atunci putem ob¸ tine valorile de selec¸ tie X 1; X 2 ; :::;X n ale lui X cu formula 1

0. frecven¸ ta apari¸ tiei …ec¼ arei valori se apropie de probabilitatea cu care variabila X ia acea valoare. m X pk = 1: k=1 Func¸ tia sa de reparti¸ tie este: 8 0. Dac¼ a C este vectorul cu compoi P nentele C(i): = pj .02 0. 2 .. > > > > p1 .9 0. X=[0 1 2 3 4 5. N=input(’ Introduceti numarul de valori de selectie generate ’ ).01].05 0.n (metoda invers¼ a pentru generarea unei variabile aleatoare continue). astfel încât F (ai ) =U . F (x ) = > > p > 1 + p2 + ::: + pk .01 0.1] ¸ si se caut¼ a valoarea ai . > : 1... Se poate astfel simula orice variabil¼ a aleatoare X dac¼ a se cunoa¸ ste func¸ tia sa de reparti¸ tie F ¸ si se poate calcula u¸ sor ¸ si f¼ ar¼ a erori func¸ tia invers¼ a F 1: De exemplu pentru o variabil¼ a aleatoare exponen¸ tial¼ a de parametru se poate folosi formula: X=1 ln U : Metoda invers¼ a pentru simularea unei variabile aleatoare discrete Fie X o variabil¼ a aleatoare discret¼ a: X : a1 p1 a2 p2 a3 p3 am pm . algoritmul este urm¼ atorul: j =1 U : =random i :=1.01 0. Exemplu Fie X variabila aleatoare discret¼ a: X : 0 0:9 1 0:05 2 0:02 3 0:01 4 0:01 5 0:01 .. < p 1 + p2 . daca x<a1 x < a2 a2 x < a3 ak x < ak+1 am x a1 Pentru simularea variabilei aleatoare X .X i =F 1 ( U i ). se genereaz¼ a U uniform¼ a pe [0. while X := ai U > C(i) i :=i+1. i=1. 6 X pk = 1: k=1 Secven¸ ta de program de mai jos genereaz¼ a N valori de selec¸ tie ale variabilei aleatoare discrete X : Pentru N mare.

i). end P. P(R+1)=P(R+1)+1./N 3 .P=zeros(6. i=1. for i=1:6 for j=1:i C(i)=C(i)+X(2.1).j). while U > C(i) i=i+1. C=zeros(6. end R=X(1. end end for k=1:N U=rand.1).