Sunteți pe pagina 1din 101

Gheorghe BARBU Maria MIROIU

TEHNICI
DE
SIMULARE














2012









































1
CUPRINS


Prefa! 2

Capitolul I. SISTEME, MODELE, SIMULARE 4
1.1 Generalit#i despre sisteme, modele, simulare 4
1.1.1 Sisteme 4
1.1.2 Modele 5
1.1.3 Simulare 6
1.1.4 Tipuri de modele de simulare 9
1.2 Descrierea modelelor de simulare 12
1.2.1 Etapele realizrii uni model de simulare 13
1.2.2 Ceasul simulrii 16

Capitolul II. SIMULAREA NUMERELOR ALEATOARE 18
2.1 Numere aleatoare uniforme. Procedee de generare 18
2.2 Simularea numerelor aleatoare uniforme 20
2.2.1 Metoda ptratului din mijloc 23
2.2.2 Metode congruen#iale 23

Capitolul III. SIMULAREA VARIABILELOR ALEATOARE 25
3.1 Metoda invers 25
3.2 Metoda respingerii 29
3.3 Metoda compunerii 31
3.4 Alte metode de simulare 34
3.5 Metode particulare 38

Capitolul IV. SIMULAREA VECTORILOR ALEATORI 47
4.1 Generarea vectorilor aleatori prin metoda invers 47
4.2 Generarea vectorilor aleatori avnd reparti#ie uniform 48
4.3 Generarea vectorilor aleatori avnd reparti#ie Dirichlet 53
4.4 Generarea vectorilor aleatori avnd reparti#ie multinomial 56
4.5 Generarea vectorilor aleatori avnd reparti#ie normal 57

Capitolul V. APLICA$II ALE SIMUL%RII 59
5.1 Calculul integralelor multiple prin Metoda Monte Carlo 59
5.2 Estimarea numrului prin Metoda Monte Carlo 66
5.3 Simularea unor procese de stocare 67
5.4 Simularea unor procese de a$teptare 73
5.5 Simularea fiabilit#ii 77

Anex! IMPLEMENT%RI C/C++ 88

Bibliografie 100




2

PREFA$%



Lucrarea de fa# a fost elaborat n cadrul Proiectului
POSDRU/56/1.2/S/32768, coordonat de Ministerul Educa#iei, Cercetrii, Tineretului
$i Sportului, intitulat: Formarea cadrelor didactice universitare $i a studen#ilor n
domeniul utilizrii unor instrumente moderne de predare-nv#are-evaluare pentru
disciplinele matematice, n vederea crerii de competen#e performante $i practice
pentru pia#a muncii.
Finan#at din Fondul Social European $i implementat de ctre Ministerul
Educa#iei, Cercetrii, Tineretului $i Sportului, n colaborare cu The Red Point,
Oameni $i Companii, Universitatea din Bucure$ti, Universitatea Tehnic de
Construc#ii din Bucure$ti, Universitatea Politehnica din Bucure$ti, Universitatea din
Pite$ti, Universitatea Tehnic Gheorghe Asachi din Ia$i, Universitatea de Vest din
Timi$oara, Universitatea Dunrea de Jos din Gala#i, Universitatea Tehnic din Cluj-
Napoca, Universitatea 1 Decembrie 1918 din Alba-Iulia, proiectul contribuie n
mod direct la realizarea obiectivului general al Programului Opera#ional Sectorial de
Dezvoltare a Resurselor Umane POSDRU $i se nscrie n domeniul major de
interven#ie 1.2 Calitate n nv#mntul superior.
Proiectul are ca obiectiv adaptarea programelor de studii ale disciplinelor
matematice la cerin#ele pie#ei muncii $i crearea de mecanisme $i instrumente de
extindere a oportunit#ilor de nv#are.
Evaluarea nevoilor educa#ionale obiective ale cadrelor didactice $i studen#ilor
legate de utilizarea matematicii n nv#mntul superior, masterate $i doctorate
precum $i analizarea eficacit#ii $i relevan#ei curriculelor actuale la nivel de
performan# $i eficien#, n vederea dezvoltrii de cuno$tin#e $i competen#e pentru
studen#ii care nva# discipline matematice n universit#i, reprezint obiective
specifice de interes n cadrul proiectului. Dezvoltarea $i armonizarea curriculelor
universitare ale disciplinelor matematice, conform exigen#elor de pe pia#a muncii,
elaborarea $i implementarea unui program de formare a cadrelor didactice $i a
studen#ilor interesa#i din universit#ile partenere, bazat pe dezvoltarea $i armonizarea
de curriculum, crearea unei baze de resurse inovative, moderne $i func#ionale pentru
predarea-nv#area-evaluarea n disciplinele matematice pentru nv#mntul
universitar sunt obiectivele specifice care au ca raspuns materialul de fa#.
Formarea de competen#e cheie de matematic $i informatic presupune crearea
de abilit#i de care fiecare individ are nevoie pentru dezvoltarea personal, incluziune
social $i inser#ie pe pia#a muncii. Se poate constata ns c programele disciplinelor
de matematic nu au ntotdeauna n vedere identificarea $i sprijinirea elevilor $i
studen#ilor poten#ial talenta#i la matematic. Totu$i, studiul matematicii a evoluat n
exigen#e pn a ajunge s accepte provocarea de a folosi noile tehnologii n procesul
de predare-nv#are-evaluare pentru a face matematica mai atractiv.
3
n acest context, analiza flexibilit#ii curriculei, nso#it de analiza metodelor $i
instrumentelor folosite pentru identificarea $i motivarea studen#ilor talenta#i la
matematic ar putea rspunde deopotriv cerin#elor de mas, ct $i celor de elit.
Viziunea pe termen lung a acestui proiect preconizeaz determinarea unor
schimbri n abordarea fenomenului matematic pe mai multe planuri: informarea unui
numr ct mai mare de membri ai societ#ii n legtur cu rolul $i locul matematicii n
educa#ia de baz n instruc#ie $i n descoperirile $tiin#ifice menite s mbunt#easc
calitatea vie#ii, inclusiv popularizarea unor mari descoperiri tehnice, $i nu numai, n
care matematica cea mai avansat a jucat un rol hotrtor. De asemenea, se urmre$te
eviden#ierea a noi motiva#ii solide pentru nv#area $i studiul matematicii la nivelele
de baz $i la nivel de performan#; stimularea creativit#ii $i formarea la viitorii
cercettori matematicieni a unei atitudini deschise fa# de nsu$irea aspectelor
specifice din alte $tiin#e, n scopul participrii cu succes n echipe mixte de cercetare
sau a abordrii unei cercetri inter $i multi disciplinare; identificarea unor forme de
pregtire adecvat de matematic pentru viitorii studen#i ai disciplinelor matematice,
n scopul utilizrii la nivel de performan# a aparatului matematic n construirea unei
cariere profesionale.
Aceast lucrare reflect eforturile autorilor n cadrul acestui proiect $i
experien#a lor n predarea matematicilor aplicate $i informaticii, n general $i a
tehnicilor de simulare n special, la facultatea de matematic-informatic a
Universit#ii din Pite$ti.
Lucrarea mbin n mod armonios prezentrile teoretice cu exemple
semnificative, facilitnd studen#ilor, cadrelor didactice, matematicienilor, inginerilor,
cercettorilor etc. cunoa$terea, aprofundarea $i utilizarea tehnicilor de simulare n
diferite domenii de activitate.
Dispunnd de o vast experien# n procesul de predare-nv#are-evaluare,
autorii s-au strduit s realizeze un material de studiu unitar n domeniul simulrii,
ntr-o form accesibil, $i sper c aceast lucrare elaborat n cadrul proiectului mai
sus men#ionat va contribui la o mai bun n#elegere $i asimilare a cuno$tin#elor de
modelare $i simulare, care pot fi de un real folos pentru aplicarea lor n practic.


Autorii





4
CAPITOLUL I

SISTEME, MODELE, SIMULARE




1.1 Generalit!i despre sisteme, modele, simulare


Cuvntul simulare deriv din latinescul simulatio, care nseamn
capacitatea de a reproduce, reprezenta sau imita ceva.
n matematic, termenul simulare a fost folosit pentru prima dat de ctre
John von Neumann $i S. Ulam n anii 1940-1944, cu ocazia cercetrilor de fizic
nuclear efectuate n S.U.A. Ei, mpreun cu N. Metropolis, Fermi $i al#i
matematicieni $i fizicieni ai $colii Los Alamos au introdus n aceea$i perioad un
nume pitoresc n matematic $i anume Metoda Monte Carlo.
Denumirea, desigur improprie, provine din faptul c primele metode de
generare / simulare a numerelor aleatoare au fost cele oferite de rezultatele ob#inute la
ruletele vestitelor cazinouri din Monte Carlo.
De asemenea, se spune c simularea este mai mult o art dect o $tiin#.


1.1.1 Sisteme

Dezvoltarea n ritm accelerat a $tiin#ei $i tehnicii contemporane creeaz
complexitate, care devine din ce n ce mai greu de controlat, de stpnit, de condus. n
sprijinul eforturilor sale de a stpni complexitatea, de a-i cunoa$te componentele, de
a descoperi diferite legi care o guverneaz, omul a creat no#iunea de sistem.

Sistemul reprezint un ansamblu de elemente (componente fizice sau logice,
legi, reguli etc.) interconectate, care func#ioneaz n comun pentru realizarea unuia
sau mai multor scopuri.

Elementul reprezint o parte din sistem (un subansamblu sau o component)
capabil s ndeplineasc o anumit func#iune n cadrul sistemului.

Exemple:
Oamenii triesc n sisteme sociale.
Activitatea tehnologic a produs sisteme fizico-tehnice complexe.
Un automobil este un sistem format din componente care ac#ioneaz mpreun
pentru a asigura transportul.
Familia este un sistem de convie#uire $i de cre$tere a copiilor.


O clasificarea sistemelor poate fi fcut astfel:
sisteme deschise
sisteme nchise
5
Sistem
Intrri
Ie$iri

Un sistem deschis este caracterizat prin:
- ie$iri care corespund intrrilor n sistem;
- ie$irile sunt izolate de intrri;
- ie$irile nu au nici o influen# asupra intrrilor.

ntr-un sistem deschis, rezultatele ac#iunii trecute nu comand ac#iunea viitoare.
Sistemul nu observ $i nu reac#ioneaz la propria-i performan#.

De exemplu, un automobil este un sistem deschis care singur nu se poate conduce
dup drumul pe care l-a parcurs n trecut $i nici nu are o anumit #int, direc#ie, spre
care s mearg n viitor.

Figura 1.1. Sistem deschis

Un ceas este, de asemenea, un sistem deschis; el nu-$i observ propria imprecizie
pentru a $i-o corecta singur.

Sistemul nchis (cu conexiune invers!, cu reac$ie sau feed-back) este
caracterizat prin:
- ie$iri care corespund intrrilor n sistem;
- ie$irile depind de intrri;
- ie$irile influen#eaz intrrile.

Un sistem nchis este influen#at de propria-i comportare trecut. La aceste
sisteme ie$irile pot regla intrrile. Un sistem cu conexiune invers func#ioneaz ca o
bucl nchis care folose$te rezultatele ac#iunii trecute ale sistemului pentru a
comanda ac#iunea viitoare.

De exemplu, un ceas $i posesorul lui formeaz un sistem cu conexiune invers, cnd
ora indicat de ceas este comparat cu ora exact, care este luat ca reper, ceasul este
potrivit pentru a elimina erorile.


Figura 1.2. Sistem cu conexiune invers


Bucla conexiunii inverse este o cale nchis care leag n aceea$i secven# o
decizie ce comand ac#iunea, starea sistemului $i informa#ia despre starea sistemului,
n final ntorcndu-se la punctul de luare a deciziilor.

Decizie Ac#iune

Starea sistemului
Informa#ia
6
1.1.2 Modele

Modelarea este o metod de studiu a unor procese $i fenomene care se
realizeaz prin substituirea obiectului real al cercetrii. Ca metod de cercetare este
destul de veche, modelele fizice prin similitudine, apoi cele construite prin analogie
nlocuind de multe ori obiectul real supus cercetrii.
Un model presupune, n general, reprezentarea sistemului ca o mul#ime de
pr#i n interac#iune una cu alta.
Modelul poate fi:
un duplicat al sistemului;
o reprezentare simbolic (de exemplu matematic) a sistemului;
sistemul.

Modeleleconstituie reprezentri ale realit#ii. Dac ele ar fi tot att de greu de
manevrat ca realitatea, prin utilizarea lor nu s-ar ob#ine niciun avantaj. De obicei, se
pot construi modele mult mai simple dect realitatea, pe baza crora putem s
prevedem $i s explicm cu un nalt grad de acurate#e, fenomene complexe. Explica#ia
const n faptul c, de$i pentru a descrie un fenomen este necesar un numr mare de
variabile, de obicei pu#ine dintre acestea au rol esen#ial. Important este s descoperim
care sunt acele variabile $i rela#iile dintre ele.
Modelarea matematic ocup un loc important n ansamblul metodelor de
modelare, n special prin facilit#ile oferite de calculatoarele cu capacitate mare de
memorare $i vitez mare de lucru.
Modelele matematice au aprut din necesitatea de a descrie $i studia formal
comportarea unei categorii de sisteme reale, cu scopul de a controla $i dirija
activitatea lor viitoare.

Elaborarea unei structuri matematice mpreun cu o list de coresponden#e
ntre simbolurile matematice $i obiectele situa#iei concrete considerate a condus la
ceea ce numim model matematic.

n general, un model M al unui sistem S este un alt sistem S care din anumite
puncte de vedere este echivalent cu S, dar care este mai u$or de studiat dect S.
Printr-un sistemS n#elegem urmtoarea structur de mul#imi:
S = {T, X, U, V, Y, ', (}
unde
- T este timpul de baz utilizat pentru cronometrarea $i ordonarea evenimentelor;
acesta este un numr real dac sistemul este cu timp continuu sau ntreg dac
sistemul este cu timp discret;
- X reprezint mul#imea intrrilor n sistem;
- U este mul#imea segmentelor de intrare n sistem, prin segment de intrare n
sistem asociat func#iei u : T % X n#elegndu-se graficul func#iei u pe un interval
[t
0
, t
1
], adic:
u([t
0
, t
1
]) = {(t, u(t)) | t
0
) t ) t
1
};
- V este mul#imea strilor sistemului. Starea este un concept de modelare a structurii
interne a sistemului, ce con#ine istoria acestuia $i care-i afecteaz prezentul $i
viitorul $i mpreun cu forma intrrilor determin n mod unic ie$irile din sistem;
7
- Y este mul#imea ie$irilor sistemului;
- ' este func#ia de rspuns a sistemului ' : XV % Y; dac la o intrare u([t
0
, t
1
])
sistemul se afl n starea V
t

0
atunci ie$irea sistemului este
[ ] ( ) ( )
0
, ,
1 0 t
t t u Y = ;
- ( este func#ia de tranzi#ie a strilor ceea ce nseamn c dac intrarea u([t
0
, t
1
])
gse$te sistemul n starea V
t

0
atunci l transform pe acesta n starea
[ ] ( ) ( )
0 1
, ,
1 0 t t
t t u = .

Cunoa$terea intrrilor uU $i a rspunsurilor corespunztoarea acestora yY
reprezint comportarea sistemului.

Un model al unui sistem trebuie s ndeplineasc urmtoarele trei condi$ii:
1. modelul trebuie s reflecte ct se poate de fidel realitatea reprezentat;
2. modelul trebuie s constituie o simplificare a realit#ii reprezentate;
3. modelul este prin esen#a sa o idealizare a realit#ii reprezentate.


1.1.3 Simulare

n procesul de modelare matematic, componentelor sistemului li se asociaz
anumite variabile / parametri, unele cunoscute (controlabile), numite variabile /
parametri de intrare, altele necunoscute (necontrolabile), numite variabile / parametri
de ie$ire. Legturile $i interac#iunile dintre componentele sistemului sau legturile
sistemului cu exteriorul se transpun n modelul matematic prin rela#ii func#ionale
(ecua#ii $i / sau identit#i). Scopul modelului este de a exprima variabilele
necontrolabile n func#ie de variabilele controlabile, astfel nct s fie satisfcute
criteriile de performan#. Uneori nu este posibil s se exprime sub form de ecua#ii
toate legturile, condi#ionrile $i interdependen#ele necesare, motiv pentru care unele
dintre acestea se descriu prin condi#ii logice sau proceduri ce pot fi manipulate numai
prin intermediul calculatorului. Modelul matematic completat cu astfel de proceduri
este un model de simulare, care pornind de la valori ale variabilelor controlabile
(generate cu algoritmi speciali), va produce valori ale variabilelor necontrolabile,
oferind variante din care se poate alege cea mai bun. De aici rezult c modelul de
simulare produce experimente asupra sistemului pe care-l simuleaz, ceea ce permite
alegerea acelor valori ale variabilelor $i parametrilor de intrare care conduc la
performan#ele dorite.
Necesitatea ob#inerii unor informa#ii despre un anumit sistem nainte ca el s
fie realizat a condus la apari#ia simul!rii.
n proiectarea sistemelor, deosebit de important este ob#inerea unor informa#ii
despre sistem nainte ca el s fie realizat concret; acest lucru este posibil aplicnd
tehnica simulrii.
Prin simulare numeric se n#elege totalitatea procedeelor matematice $i de
calcul destinate studiului comportrii n timp a sistemelor reale cu ajutorul
calculatoarelor electronice numerice, presupunndu-se c n evolu#ia acestor sisteme
intervin $i elemente aleatoare.
8
Simularea numeric este o tehnic potrivit creia se asociaz sistemului real un
model adecvat numit model de simulare, care reprezint mul#imea interac#iunilor
logice ale componentelor sistemului, precum $i mecanismul schimbrii lor n timp.
Modelul este folosit apoi pentru a produce, prin intermediul calculatorului,
succesiunea cronologic de stri prin care trece sistemul, considerndu-se dat starea
sa ini#ial.
Deoarece n evolu#ia lor sistemele reale sunt influen#ate de cauze aleatoare al
cror efect trebuie pus n eviden# n cadrul modelelor de simulare, una din
problemele matematice importate ale simulrii numerice const n generarea /
simularea cu calculatorul a unor selec#ii statistice asupra diferitelor tipuri de variabile
aleatoare $i procese stochastice.
O alt problem important legat de construirea modelelor de simulare este
aceea a cronometrrii exacte a evenimentelor strilor sistemului simulat folosind o
variabil numit ceasul simul!rii, care este supus unui numr finit de cre$teri pe
parcursul simulrii.
De$i nu ofer solu#ii exacte, simularea este o tehnic eficient de cercetare att
pentru fenomenele fizice care nu pot fi percepute de om ct $i pentru acelea percepute,
dar imposibil de studiat analitic. Necesitatea simulrii rezid n faptul c adeseori
sistemele reale nu pot fi studiate n mod direct, fie datorit dificult#ilor de evaluare
calitativ sau cantitativ a fenomenelor, fie din cauza complexit#ii (numrul mare de
variabile de intrare $i de ie$ire, numrul mare de stri posibile, complexitatea
func#iilor ' $i (, etc.).
Studiul variantelor de decizie pe modele prezint urmtoarele avantaje:
- de natur economic;
- scurteaz durata de ob#inere a solu#iilor;
- permite analiza unui numr mare de variante prin modificarea condi#iilor
ini#iale, avnd avantajul revenirii la varianta de rspuns conform cu
cerin#ele utilizatorului.
Folosirea unui sistem real pentru experimentare poate conduce la perturbarea
activit#ilor unui domeniu n care este studiat sistemul, anumite variante mai pu#in
inspirate putnd avea implica#i imprevizibile.
n cazul unor sisteme care nu exist nc se poate ob#ine un plan de construire
a sistemului n func#ie de anumite criterii de optimizare a intrrilor $i/sau ie$irilor
sistemului reprezentat.
De exemplu, dac utilizm simularea pentru proiectarea unui baraj,
dimensiunile $i rezisten#a acestuia se pot determina prin experimente cu calculatorul
pe un model care prevede cerin#a medie de curent electric $i factori aleatori precum
volumul precipita#iilor n intervalele de timp stabilite. Experimentele reale nu sunt
practice, deoarece barajul odat construit nu poate fi modificat.
Simularea presupune $i unele dezavantaje:
- construirea modelelor de simulare cere o pregtire special; se spune c
simularea este mai degrab o art dect o $tiin#, care se nva# n timp $i
prin experien#;
- rezultatele simulrii sunt aproximative $i nu exacte, iar uneori sunt greu de
interpretat;
- cele mai multe ie$iri ale sistemului sunt variabile aleatoare (bazate pe
intrri aleatoare) ale cror reparti#ii trebuie cunoscute sau determinate.
9
1.1.4 Tipuri de modele de simulare


n multe domenii $tiin#ifice se folosesc trei tipuri de modele de simulare:
modele imitative
modele analogice
modele simbolice

Modelele imitative au urmtoarele caracteristici:
- transpun realitatea la o alt scar, mai mare sau mai mic, cu scopul
observrii comportrii realit#ii respective;
- imit realitatea, ceea ce nseamn c un model imitativ seamn cu
fenomenul pe care-l reprezint, dar difer ca mrime;
- reprezint o imagine a realit#ii.
Exemple: proiectele unor cldiri, hr#ile geografice, machetele de automobile,
nave avioane etc. Modelele imitative ale soarelui $i planetelor sunt mic$orate, n timp
ce modelele atomice (modelul lui Bohr, de exemplu) sunt mrite.
Modelele imitative sunt specifice, concrete (fizice) $i greu de manipulat n
scopuri experimentale.

Modelele analogice sunt specifice unui proces sau fenomen al crui
comportament nu este cunoscut. Pentru a fi studiat se utilizeaz un model realist al
unui fenomen sau proces care prezint analogii.
Modelele analogice au urmtoarele caracteristici:
- folosesc anumite propriet#i pentru a reprezenta alte propriet#i;
- sunt mai pu#in specifice, mai pu#in concrete, dar mai u$or de mnuit dect
modele imitative.
De exemplu, se pot utiliza:
- modelele unor sisteme hidraulice pentru studierea unor sisteme electrice
sau de transport;
- analogiile istorice pentru prognoza dezvoltrii societ#ii ntr-o anumit
#ar;
- curbele de nivel pe o hart topografic pentru a reprezenta nl#imea
formelor de relief.

Modelele simbolice au urmtoarele caracteristici:
- folosesc litere, cifre sau alte simboluri pentru a reprezenta caracteristicile
unei realit#i;
- corela#iile ntre caracteristicile realit#ii au condus la scrierea unor rela#ii
matematice adecvate $i prin aceasta la crearea unui model abstract
(matematic).

Un model de simulare este un tip particular de model matematic al unui sistem.




10
Modelele de simulare mai pot fi clasificate astfel:
statistice sau dinamice
deterministe sau stochastice,
discrete sau continue.

Modelele statice sunt acelea care ndeplinesc urmtoarele condi#ii:
- nu iau n mod explicit n considerare variabila timp;
- reflect situa#ii $i stri invariante $i atemporale;
- solu#iile pot fi ob#inute $i analitic.
Modelele dinamice sunt acelea care:
- #in seam de varia#ia $i interac#iunea n timp a variabilelor considerate;
- ncorporeaz timpul ca mrime fundamental, fiind o variabil de stare;
- se rezolv utiliznd tehnica simulrii.

Modelele deterministe sunt acelea n care:
- toate variabilele sunt nealeatoare;
- caracteristicile operative sunt ecua#ii de o anumit form;
- solu#iile acestor modele se ob#in pe cale analitic.
Modelele stochastice sunt acelea care:
- con#in una sau mai multe variabile de intrare aleatoare $i deci una din
caracteristicile operative este dat printr-o func#ie de densitate;
- intrrile aleatoare conduc la ie$iri aleatoare;
- evenimentele nu se produc cu certitudine, ci cu o anumit probabilitate.

n cazul modelelor deterministe evenimentele se produc sau nu se produc, iar
n cazul producerii exist o certitudine bazat pe reguli clare. n cazul modelelor
aleatoare evenimentele se produc sau nu se produc, regulile de inferen# ale modelului
nu confer ns certitudine producerii lor. Aceste modele, de obicei, se rezolv
folosind tehnica simulrii, metodele analitice fiind ineficiente.

Modelele discrete sunt acele modele n care schimbrile strilor variabilelor
se fac la momente discrete de timp.
Modelele continue sunt acelea n care schimbrile strilor variabilelor se
produc continuu.


Exemple:

1. O fabric poate s produc ntr-o lun trei tipuri de aparate electronice: 4
aparate/or din primul tip, 2 aparate/or din al doilea tip $i 3 aparate/or din al treilea
tip. Beneficiul ob#inut din producerea $i vnzarea acestor aparate se prezint astfel: 50
lei pentru primul tip, 100 lei pentru al doilea tip $i 75 lei pentru al treilea tip.
Desfacerea (vnzrile) sunt limitate la 250 apartate din primul tip, 120 din al doilea tip
$i 80 din al treilea tip. *tiind c fabrica lucreaz 160 de ore pe lun, s se ntocmeasc
programul de lucru lunar, care s con#in numrul de aparate din fiecare tip ce vor fi
produse, astfel nct beneficiul ob#inut s fie maxim.
11
Construc#ia modelului poate fi fcut astfel:
Se noteaz cu x
1
, x
2
, x
3
numrul de aparate din fiecare tip $i ob#ine:

+ +

+ +
) 75 100 50 max(
0 , ,
80
120
250
160 3 2 4
3 2 1
3 2 1
3
2
1
3 2 1
x x x
x x x
x
x
x
x x x

Acesta este un model static $i determinist.

2. Problema vnztorului de ziare.
Un vnztor de ziare trebuie s comande zilnic un numr de ziare astfel nct
c$tigul din vnzarea lor s fie maxim. n fiecare zi el comand un anumit numr de
ziare, vnznd o parte dintre ele sau pe toate. Fiecare ziar vndut i aduce un anumit
c$tig. Ziarele nevndute se pot napoia, dar i provoac o anumit pierdere. Numrul
ziarelor vndute este variabil de la o zi la alta, probabilitatea vnzrii unui anumit
numr de ziare ntr-o zi putnd fi estimat pe baza vnzrilor din perioada anterioar.
Construc#ia modelului poate fi realizat considernd urmtoarele variabile:
n = numrul ziarelor comandate n fiecare zi;
c = c$tigul ob#inut din vnzarea unui ziar;
l = pierderea datorat unui ziar nevndut;
r = cererea/numrul ziarelor vndute ntr-o zi;
p(r) = probabilitatea ca ntr-o zi oarecare s vnd r ziare;
P = c$tigul ob#inut ntr-o zi.
Dac ntr-o zi numrul ziarelor vndute (cererea) este mai mare sau egal cu
numrul ziarelor comandate (r & n), c$tigul va fi
P(r & n) = nc.
Dac ntr-o zi numrul ziarelor vndute (cererea) este mai mic dect numrul
ziarelor comandate (r < n), c$tigul va fi
P(r < n) = rc (n-r)l.
C$tigul mediu zilniv va fi


=

+ =
+ =
n
r n r
nc r p l r n rc r p P
0 1
) ( ] ) ( )[ (
Acesta este un model stochastic, deoarece
n = variabil controlabil;
r = variabil necontrolabil;
c, l = constante.
Prin rezolvarea acestui model trebuie gsit n pentru care P este maxim.


12

1.2 Descrierea modelelor de simulare


n procesul de modelare matematic, modelul este reprezentativ pentru
sistemul fizic dac se respect condi#ia de cauzalitate, ceea ce conduce la clasificarea
elementelor n:
- elemente de intrare (cauz!) care formeaz vectorul de intrare x = (x
1
, x
2
,x
m
),
- elemente de ie'ire (efect) care formeaz vectorul de ie$ire y = (y
1
, y
2
,y
n
),
ambii vectori fiind n general aleatori.

n absen#a oricror informa#ii asupra structurii sistemului, acesta este descris
matematic de ctre dependen#a func#ional dintre vectorul de ie$ire $i vectorul de
intrare: y = f(x).

Variabilele de intrare pot fi:
- variabilele deterministe, care se ob#in dup reguli bine precizate sau se gsesc
nregistrate pe supor#i de informa#ie;
- variabilele stochastice, care sunt generate cu calculatorul dup algoritmi de
generare performan#i, generarea depinznd de parametrii de intrare care
caracterizeaz aceste variabile.

Pasul simul!rii este prin defini#ie o etap n care toate variabilele de intrare iau
valori constante n timpul executrii programului.

Observa#ii:
- variabilele de ie$ire depind de variabilele de intrare; dependen#a este determinat
de structura logic a modelului de simulare considerat;
- o valoare a unei variabile de ie$ire este rezultatul executrii unui pas al
programului de calcul asociat modelului;
- dac cel pu#in una din variabilele de intrare este stochastic, atunci cel pu#in una
din variabilele de ie$ire este stochastic.

De mare importan# n construirea modelului de simulare este procedeul de
mi$care a sistemului n timp; pentru aceasta este necesar introducerea unei
variabile speciale numit ceasul simul!rii, care s msoare scurgerea timpului real n
care se simuleaz sistemul, cu scopul de a men#ine ordinea corect n timp a
evenimentelor.

Modelele de simulare mai con#in:
- rela$ii func$ionale: identit#i $i/sau ecua#ii;
- caracteristici operative, fiind utilizate pentru a exprima prin rela#ii matematice
interac#iunile variabilelor $i comportarea sistemului.
O caracteristic operativ este de obicei o ipotez (statistic sau nu) sau o
ecua#ie matematic precizat care leag variabilele de intrare ale sistemului de stri
sau de variabilele de ie$ire.
Dac aceste variabile sunt stochastice, caracteristicile operative iau forma unor
func#ii de densitate de probabilitate, iar printre parametrii de intrare ai modelului vor
13
fi $i parametrii statistici ai caracteristicilor operative. Ace$ti parametri au rol de
mrimi de intrare n modelul de simulare $i trebuie estima#i n prealabil din observa#ii
statistice efectuate asupra procesului sau sistemului ce urmeaz a fi simulat.

Dup construirea modelului de simulare, simularea n sine, ca experiment,
const n a varia valorile variabilelor $i parametrilor de intrare ai sistemului $i a
deduce pe baza modelului, ca rezultat al calculelor, efectele lor asupra variabilelor de
ie$ire.

Deosebim dou tipuri de simulare:
- discret!, dac variabilele modelului pot avea numai anumite valori
discrete;
- continu!, dac variabilele modelului pot avea orice valoare pe anumite
intervale reale.
n cazul simulrii cu timp discret, ceasul simulrii nainteaz de la un
eveniment la altul $i nu n mod continuu.
n cazul simulrii cu timp continuu, variabilele care descriu starea sistemului
$i schimb valorile n mod continuu n raport cu timpul.


1.2.1 Etapele realiz!rii unui model de simulare


Construirea modelelor de simulare constituie un proces amplu care n general
presupune parcurgerea urmtoarelor etape:

1. Definirea problemei, etap n care se stabilesc obiectivele simulrii:
- ntrebrile la care trebuie s rspund, care trebuie s fie clare;
- ipotezele ce trebuiesc testate, care trebuie s fie nso#ite de criterii de
acceptare;
- efectele ce urmeaz a fi estimate.

2. Colec$ionarea, analiza, interpretarea 'i prelucrarea primar! a datelor

n aceast etap se stabilesc:
- datele de observa#ie necesare pentru studierea sistemului considerat;
- modalit#ile de strngere a datelor de observa#ie.
Aceast etap este esen#ial deoarece colec#ionarea unor date eronate are mari
consecin#e n ob#inerea rezultatelor finale, motiv pentru care este necesar o analiz
preliminar $i o interpretare a lor pentru a depista eventualele neconcordan#e cu
realitatea. Se efectueaz o prelucrare primar, apoi se face conversia $i transmiterea
lor, n vederea organizrii n fi$iere pentru a putea fi utilizate de calculator. Datele de
observa#ie sunt necesare pentru estimarea parametrilor caracteristicilor operative ale
modelului ce va fi construit, ini#ializarea variabilelor de intrare ale modelului $i
validarea lui.


14
3. Formularea modelului de simulare

Pentru a construi un model matematic de simulare a unui sistem, componentelor sale
li se asociaz anumite variabile $i parametri, unele dintre acestea fiind:
- cunoscute (controlabile) numite variabile sau parametri de intrare;
- necunoscute (necontrolabile) numite variabile sau parametri de ie$ire.
Interac#iunile dintre componentele sistemului sau legturile sistemului cu exteriorul se
regsesc n modelul matematic sub forma unor rela#ii func#ionale. Printre rela#iile
modelului exist una sau mai multe func#ii care leag diferite variabile $i care msoar
performan#a sistemului. Deoarece n evolu#ia lor sistemele reale sunt influen#ate de
factori aleatori al cror efect este pus n eviden# n cadrul modelului de simulare, o
parte din variabilele de intrare ale modelului sunt variabile aleatoare avnd func#ii de
reparti#ie cunoscute. De aici apare necesitatea ca modelul de simulare s con#in
rutine care s genereze aceste variabile de intrare.
Modelul de simulare trebuie s con#in:
- variabile care s descrie strile componentelor sistemului (variabile de stare);
- o agend care s memoreze evenimentele care se produc n sistem;
- rutine pentru producerea (generarea) diferitelor tipuri de evenimente.
Construirea unui model de simulare difer de la o problem la alta, motiv
pentru care nu pot fi stabilite ni$te reguli general valabile. Cu toate acestea se pot
indica cteva reguli de care trebuie s se #in seama n construirea modelului de
simulare. Una dintre acestea se refer la numrul de variabile pe care le folose$te
modelul; un numr prea mare ar crea dificult#i n ceea ce prive$te stabilirea rela#iilor
func#ionale, ar face ca modelul s fie mai pu#in flexibil, iar timpul de calcul ar fi mai
mare. Nu trebuie s se ajung nici la cealalt extrem a simplificrii exagerate a
modelului prin folosirea unui numr mic de variabile, deoarece n acest caz ar putea
pierde o parte din aspectele esen#iale ale problemei. Rela#iile func#ionale ale
modelului trebuie s aib o form ct mai simpl, fiind u$or de calculat $i evaluat n
a$a fel nct erorile de calcul induse s fie ct mai mici, asigurnd n acest fel o ct
mai bun precizie a modelului.
De mare importan# n realizarea modelelor de simulare este ob#inerea unui
timp de calcul redus, fapt ce permite simularea diferitelor variante de sistem cu costuri
(eforturi) rezonabile.
O alt cerin# de care trebuie s se #in seama la construirea modelelor de
simulare se refer la mijloacele prin care poate fi verificat corectitudinea modelului
$i variantele ce urmeaz a fi simulate cu ajutorul calculatorului electronic.

4. Estimarea parametrilor de intrare ai modelului

Parametrii de intrare ai modelului matematic de simulare se estimeaz prin metode
statistice, folosind datele colec#ionate (n prima etap) despre sistemul real.
Caracteristicile operative pot avea forma unor ecua#ii sau sisteme de ecua#ii depinznd
de anumi#i parametri care pot fi estima#i cu ajutorul tehnicilor specifice analizei
regresiei.


15
5. Evaluarea performan$elor modelului 'i testarea parametrilor

Aceast etap are ca scop verificarea modelului nainte ca el s fie programat:
- se verific dac parametrii de intrare ai modelului au fost bine estima#i, folosind
teste statistice;
- se verific dac modelul con#ine toate variabilele $i parametrii esen#iali precum $i
rela#iile func#ionale necesare reprezentrii interdependen#elor esen#iale ale
sistemului real.

n cazul cnd caracteristicile operative iau forma unor ipoteze statistice
referitoare la reparti#iile variabilelor de intrare, atunci se aplic testele de concordan#
(testul
2
, Kolmogorov-Smirnov) pentru verificarea acestor ipoteze.
Dac n urma acestor verificri se constat c o ntrebare sau o ipotez nu este
corect formulat, nseamn c fie variabilele $i parametrii nu au fost bine ale$i, fie
parametrii de intrare nu au fost bine estima#i. Dac pe lng acestea se constat $i alte
neconcordan#e n cadrul modelului, atunci toate etapele precedente vor fi reluate n
vederea corectrii lor.

6. Descrierea algoritmului de simulare 'i scrierea programului de calcul

Pe baza rezultatelor etapelor precedente se construie$te algoritmul de calcul care
reprezint succesiunea logic a evenimentelor ce urmeaz a fi reproduse cu
calculatorul electronic. Pentru a fi mai u$or de programat, algoritmul este reprezentat
printr-o schem logic; urmeaz scrierea programului care se poate face fie folosind
un limbaj de programare de nivel nalt: C / C++, fie un limbaj special de simulare, de
exemplu GPSS.
Alegerea limbajului de programare depinde de mai mul#i factori, dintre care
amintim: timpul de calcul necesar simulrii, forma sub care trebuie imprimate
rezultatele simulrii, experien#a ca programator etc.
Limbajele de simulare (specializate) fac mult mai u$oar descrierea unui
sistem $i a comportrii lui n timp. Ele pot u$ura mult modelarea, ceea ce face s fie
net superioare din acest punct de vedere limbajelor generale de programare.

7. Validarea modelului

Validarea modelului, adic stabilirea adecvrii lui la realitate, este de obicei o sarcin
complex $i dificil. Valoarea unui model n raport cu contribu#ia sa la studiul
situa#iei concrete modelate este determinat de gradul su de adecvare, adic de
modul n care predic#iile concord cu observa#iile.
Metodele de validare a modelelor matematice de simulare nu sunt unice.
Validarea modelului se poate face prin:
- testarea modelului ntr-un caz particular, n care solu#ia se cunoa$te sau poate fi
dedus cu u$urin#a pe cale analitic;
- compararea rezultatelor simulrii cu datele ob#inute prin observarea unor sisteme
similare sau prin compara#ie cu evolu#ia trecut a sistemului real care a fost
simulat.
16
Variantele modelului care se dovedesc neadecvate sunt modificate pn se
ajunge la solu#ii care concord cu realitatea.

8. Planificarea experien$elor de simulare

n aceast etap se face atribuirea variabilelor $i parametrilor de intrare a valorilor
care s acopere situa#iile reale n care s-ar putea afla sistemul n vederea selectrii
variantei care satisface cerin#ele utilizatorului.

9. Analiza datelor simulate

Rezultatele simulrii ne prezint care este reac#ia sistemului la modificarea valorilor
variabilelor de intrare $i mai mult, n ele vom cuta rspunsurile la ntrebrile
formulate la nceput. Acest lucru este posibil colec#ionnd datele simulate,
prelucrndu-le calculnd statisticile pentru testele de semnifica#ie $i apoi interpretnd
doar rezultatele.



1.2.2 Ceasul simul!rii

Prin intermediul modelului de simulare calculatorul electronic produce
succesiv diferite evenimente care reprezint schimbrile ce au loc n timp n cadrul
sistemului. Pentru a putea men#ine ordinea corect a acestor evenimente $i pentru
putea preciza, dup fiecare pas al simulrii care este intervalul de timp n care s-a
simulat evolu#ia sistemului la pasul respectiv, este necesar s se introduc n modelul
de simulare o variabil special numit ceas. La fiecare pas al simulrii trebuie s se
genereze o cre$tere a ceasului care s se adauge mrimii ceasului la pasul anterior.

Exist dou tipuri de ceas:
ceas cu cre$tere fix (constant)
ceas cu cre$tere variabil.

Simularea bazat pe metoda ceasului constant, const n a genera de fiecare
dat o cre$tere constant c a ceasului $i a analiza apoi starea diferitelor elemente ale
sistemului genernd toate evenimentele posibile a se produce n intervalul de timp de
lungime c. Dup aceea se va genera o nou cre$tere care se va aduga ceasului $i se va
repeta analiza men#ionat.
Schema logic a modelului de simulare trebuie n acest caz s descrie n mod
complet evolu#ia sistemului pe un interval de timp de lungime c; simularea sistemului
pe un interval mare (oarecare) de timp se va ob#ine repetnd de un numr de ori
suficient de mare algoritmul referitor la intervalul de timp de lungime c. Deci pentru
modelele de simulare cu ceas constant mrimea ceasului T este de forma:
T = cj (j=0,1,2,)
unde j este un ntreg care reprezint numrul de itera#ii ale algoritmului de simulare.
17
n cazul ceasului variabil, valoarea (variabil) a cre$terii ceasului este egal cu
lungimea intervalului de timp dintre apari#iile a dou evenimente consecutive. Cu alte
cuvinte, mrimea cre$terii ceasului este egal cu intervalul de timp de la starea actual
la momentul apari#iei celui mai apropiat eveniment viitor.
n cazul modelului cu ceas constant, avem:

O e
1
e
2
e
3
e
4
T

T
1
T
2
T
3

n cazul modelului cu ceas variabil, avem:

O e
1
e
2
e
3
e
4
T
T
1
T
2
T
3
T
4


Metoda ceasului variabil presupune n mod riguros considerarea ordinii tuturor
apari#iilor de evenimente succesive, astfel nct la fiecare nou apari#ie corespunde o
cre$tere a ceasului.
n cazul modelelor cu ceas constant, dac de exemplu valoarea ceasului la un
moment dat este T = ck, atunci n aceast faz algoritmul de simulare va genera
evenimentele care urmeaz s se produc n intervalul de timp [c(k-1), ck) $i dup
aceea va avansa ceasul la valoarea T = c(k+1).
Un model de simulare bazat pe metoda ceasului constant consider grupul de
evenimente produse n intervalul [c(k-1), ck) ca $i cum s-ar fi produs la momentul ck.
n consecin#, procedeul bazat pe metoda ceasului constant, spre deosebire de
cel bazat pe ceas variabil, face ca grupul de evenimente care apar pe un interval de
timp de lungime c s fie sincronizate la momentul terminrii acelui interval. Din acest
motiv este recomandabil s se aleag constanta c ct mai mic. Aceasta va conduce la
cre$terea timpului de calcul. Pe de alt parte, mrirea constantei c datorit
sincronizrii unor evenimente ce se petrec la momente de timp ndeprtate, va mri
gradul de aproxima#ie al modelului $i va reduce timpul de calcul.
Metoda bazat pe ceasul constant este de preferat celei bazat pe ceasul cu
cre$tere variabil, mai ales din punctul de vedere al u$urin#ei cu care se poate construi
algoritmul simulrii.


18
CAPITOLUL II

SIMULAREA NUMERELOR ALEATOARE



2.1 Numere aleatoare uniforme. Procedee de generare.


Numerele care sunt alese la ntmplare numite numere aleatoare se
utilizeaz:
- n aplica#ii n care realizeaz nlocuirea valorilor variabilei aleatoare cu o mul#ime
de valori care au propriet#ile statistice ale acesteia;
- n simularea numeric pentru a reproduce n mod realist anumite elemente ale
sistemului simulat, precum $i pentru rezolvarea unor probleme numerice cu
ajutorul metodelor Monte Carlo;
- n cercetarea statistic pentru a produce selec#ii ntmpltoare n cadrul unei
popula#ii statistice, selec#ii crora li se pot aplica, apoi procedee de prelucrare $i
interpretare specifice statisticii matematice;
- n testarea programelor pe calculator.

Se nume$te ir de numere aleatoare independente cu o reparti#ie de
probabilitate specificat, $irul care ndepline$te condi#iile:
- numerele $irului au fost ob#inute la ntmplare;
- fiecare numr nu este n nici un fel legat de celelalte numere ale $irului;
- are o anumit proprietate de a se afla ntr-un anumit interval.

Un $ir de numere aleatoare independente cu o reparti#ie specificat este o
selec#ie ntmpltoare efectuat asupra unei variabile aleatoare a crei reparti#ie este
cea specificat.

Dac ntr-un $ir de numere putem prevedea unul din termenii $irului n func#ie
de termenii preceden#i atunci $irul nu este aleator. n cadrul $irurilor de numere
aleatoare de lungime foarte mare este posibil ca unele numere s se repete, dar ele
ndeplinesc anumite cerin#e care le apropie de cele ntmpltoare; ele se numesc
numerepseudo-aleatoare.

Exist mai multe procedee de a produce numere ntmpltoare $i anume:

1. Tabele cu numere ntmpltoare, care con#in numere ntregi uniform
repartizate pe un interval.
2. Procedee fizice, fiind construite ma$ini sau dispozitive fizice pentru
producerea de numere ntmpltoare. Ele se bazeaz pe principii fizice,
folosind de exemplu zgomotul electronic sau radioactiv. Procedeul radioactiv
const dintr-un detector de particule radioactive care nregistreaz ntr-o
perioad de timp 't un numr par sau impar de particule emise de surs.
19
Un alt procedeu fizic este cel al intensit#ii unui curent msurat la momente
distincte astfel nct valorile voltajelor U(t
1
), U(t
2
),, U(t
n
), s poat fi
considerate ca independente. n cazul n care un astfel de dispozitiv se
folose$te pentru generarea de numere aleatoare cu o anumit reparti#ie,
dispozitivul este conectat la calculator astfel nct el s poat produce numere
aleatoare la nevoie.
3. Procedee aritmetice
Pentru generarea numerelor aleatoare cu ajutorul calculatoarelor electronice
numerice se folosesc rela#ii de recuren# de forma:
X
n+1
= f(X
n
, X
n-1
,, X
n-m
),
n>m, m(0, unde
N n n
X

) ( , sunt numere naturale, presupunndu-se c vectorul
valorilor ini#iale X
0
, X
1
,, X
m
este dinainte fixat.

Un procedeu aritmetic de ob#inere a numerelor aleatoare bazat pe o rela#ie de
recuren# de forma de mai sus se nume$te generator. )innd seama de faptul c
numerele generate n acest mod ele nu sunt ntmpltoare, dar pentru anumite alegeri
ale lui f se pot ob#ine numere cu propriet#i statistice apropiate de cele ntmpltoare,
un asemenea generator va produce numere pseudo-aleatoare sau cvasi-aleatoare.

Pentru ca un procedeu aritmetic s poat fi numit generator de numere
pseudo-aleatoare, trebuie s ndeplineasc urmtoarele condi#ii:

1. Generatorul trebuie s fie simplu #i rapid, ceea ce nseamn c el trebuie s fie
u$or de programat, s ocupe memorie pu#in $i s solicite timp de calcul redus.
2. Generatorul trebuie s produc $iruri de numere de lungime orict de mare,
fr ca numerele $irului s se repete. Aceasta ar nsemna s nu produc $iruri
cu perioad finit. )innd seama c mrimea cuvntului unui calculator este
limitat, ceea ce nseamn c orice calculator poate lucra numai cu numere
ntregi mai mici dect un numr dat, rezult c nu putem construi generatori cu
perioad infinit. De aceea, cerin#a ca un generator s produc $iruri orict de
lungi de numere se reduce la faptul c generatorul trebuie s aib perioad ct
mai mare posibil.
3. Generatorul trebuie s produc numere independente stochastic unul fa# de
altul. Practic acest lucru nu este realizabil cu calculatorul, dar un generator este
acceptat dac produce numere care sunt foarte pu#in dependente stochastic sau
foarte pu#in corelate. Gradul de independen# stochastic se verific cu
ajutorul testelor statistice.
4. Generatorul trebuie s produc numere a cror reparti&ie s fie uniform, ceea
ce se poate verifica cu ajutorul testelor de concordan# (testul
2
, testul
Kolmogorov etc.).

Datorit simplit#ii lor, generatorii cel mai frecvent utiliza#i sunt aceia care
produc numere pseudo-aleatoare ntregi.

20
Ideea folosirii procedeelor aritmetice pentru generarea algoritmic de numere
care au calit#i apropiate de cele ntmpltoare apar#ine lui John von Neumann. El a
propus o metod particular cunoscut sub numele de metoda pr&ii de la mijlocul
ptratului.


2.2 Simularea numerelor aleatoare uniforme

Fie {*, +, P} un cmp de probabilitate $i X : * , R o variabil aleatoare.
Fie F : R , [0,1], F(x) = P(X<x) = {P{-; X(-)<x}}. A genera cu calculatorul
o variabil aleatoare nseamn a alege un numr de evenimente elementare -
1
, -
2
, ,
-
n
$i a determina valorile X
i
= X(-
i
) ale variabilei aleatoare.
Valorile X
1
, ..., X
n
reprezint o selec#ie asupra variabilei aleatoare X.
O generare este un algoritm care este capabil s produc un X
i
, $i iternd acel
algoritm el s fie n stare s produc X
0
, X
1
, ..., X
n
astfel ca ele s fie independente
stochastic $i identic repartizate.
Variabilele X
1
, X
2
, ..., X
n
sunt independente stochastic dac.
F(x
1
, x
2
,, x
n
) = ( )

n
i
i i
x F
1
,
unde
F(x
1
, x
2
,, x
n
) = P(X
1
<x
1
, X
2
<x
2
,, X
n
<x
n
).
Variabilele X
1
, X
2
, ..., X
n
sunt identic repartizate dac toate au aceea$i
reparti#ie F
i
(x) = F
j
(x), pentru i ' j.
A genera / simula o variabil aleatoare nseamn a produce o selec#ie.
De obicei, numerele aleatoare sunt valorile unei selec#ii referitoare la o
variabil aleatoare U care are reparti#ie uniform.
Dac U este o variabil aleatoare discret uniform, atunci toate valorile ei
sunt egal probabile. De exemplu:

,
_

2 1 2 1
1 0
: X , ( )

'

<
<

1 , 1
1 0 , 2 1
0 , 0
x
x
x
x F

,
_

n n n n n
n
X
1 1 1 1 1
2 1 0
:
K


Dac U este o variabil aleatoare continu uniform, atunci ea admite o
densitate de reparti#ie de forma:
( )
( )
( )

'

b a x
b a x k
x f
, , 0
, ,

k se determin din condi#ia ( ) ( ) ) ( 1 1 a b k a b k kdx dx x f
b
a
>



$i o func#ie de reparti#ie uniform:
21
( ) ( ) ( )

'

< <

b x
b x a a b a x
a x
x F
, 1
,
, 0

n acest caz, se spune c variabila aleatoare U are reparti#ie uniform pe (a, b).

Numerele aleatoare uniforme pe (0,1) sunt cele mai importante pentru
simularea numeric.
Dac printr-un anumit procedeu reu$im s generm / simulm numere
aleatoare ntregi X, uniform repartizate pe intervalul (0, M), M fiind suficient de mare,
atunci se pot ob#ine numerele aleatoare U, uniforme pe (0,1) prin:
U = X / M, 0 < X < M.

Propozi&ie: Dac variabila aleatoare U este uniform pe intervalul (0,1)
atunci variabila V = a + (b-a)U este variabil uniform pe (a, b).
Demonstra&ie:
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

'

< <

< < + <


b x
b x a a b a x
a x
a b a x U P x U a b a P x V P
, 1
,
, 0



Pentru variabila aleatoare U uniform pe (0,1) avem:
- func#ia de densitate: ( )
( )
( )

'

1 , 0 , 0
1 , 0 , 1
x
x
x ;
- func#ia de reparti#ie: ( )

'

<
<

1 , 1
1 0 ,
0 , 0
x
x x
x
x
Cele prezentate mai sus pot fi generalizate n cazul vectorilor aleatori.

Se consider vectorul X R
2
uniform pe [a, b] [c, d].
Densitatea sa de reparti#ie este:
( )
( ) ( )

'

rest n , 0
, 1 I x a b a b
x f , x = (x
1
, x
2
)

Dac X = (X
1
, X
2
) este vector aleator cu dou componente, f(x
1
, x
2
) este
densitatea de reparti#ie a vectorului X, F(x
1
, x
2
) este func#ia de reparti#ie a vectorului
X, iar f
i
(x
i
), F
i
(X
i
) sunt densit#ile $i respectiv func#iile de reparti#ie marginale,
f
1
(x
1
), F
1
(x
1
) = F(x
1
,/),
f
2
(x
2
), F
2
(x
2
) = F(x
2
,/),
atunci independen#a stochastic revine la:
F(x
1
, x
2
) = F
1
(x
1
) F
2
(x
2
)
sau
f(x
1
, x
2
) = f
1
(x
1
) f
2
(x
2
)
22

Propozi&ie: Dac XR
2
este vector uniform pe un interval I = [a, b] [c, d],
X = (X
1
, X
2
), atunci X
1
este uniform pe [a, b] $i X
2
este uniform pe [c, d], iar X
1
este
independent de X
2
.
Demonstra&ie:
Func#ia de reparti#ie a lui X este:
( ) ( )( ) ( )( ) ( )

'

d x b x
I x x c d a b c x a x
c x a x
x x F
2 1
2 1 2 1
2 1
2 1
, 1
,
, 0
,
iar
( ) ( ) ,
1 1 1
x F x F este func#ie de reparti#ie uniform pe [a, b],
( ) ( ) ,
2 2 2
x F x F este func#ie de reparti#ie uniform pe [c, d].
Atunci:
( ) ( ) [ ]
( ) ( ) [ ]
( ) ( )( ) c d a b x x f
c x c d x f
b a x a b x f



1 ,
d , , 1
, , 1
2 1
2 2 2
1 1 1

Aceast proprietate arat c dac vrem s ob#inem puncte uniforme n
domeniu, putem genera puncte uniforme pe componente.







Observa&ie: Propozi#ia este adevrat numai pe intervale $i nu pe domenii
oarecare.
Construirea unui generator de numere aleatoare este destul de dificil, pe de o
parte datorit periodicit#ii mari, iar pe de alt parte datorit cerin#elor statistice de
independen# stochastic $i uniformitate.
Knuth, bazndu-se pe procedeul lui John von Neumann $i pe alte opera#ii
numerice care n mod intuitiv aveau caracter aleatoriu, a construit un generator de
numere super-aleatoare, pe care cnd l-a utilizat a constatat n mod surprinztor c
reproduce un anumit numr.
Concluzia lui Knuth a fost c generatoarele de numere aleatoare nu trebuie
construite prin metode intuitive, ele trebuie s aib la baz teorii matematice
riguroase.
n general, producerea de numere aleatoare se bazeaz pe metode recurente,
iar cele care au fost riguros studiate $i au produs rezultate bune sunt metodele
congruen#iale. Ele au fost ini#iate de Lehmer.

d
I
c
a b
23

2.2.1 Metoda ptratului din mijloc

S presupunem c folosim o reprezentare n baza b a numerelor ntregi cu
care lucrm, care de obicei este 2 sau 10.
Presupunem c toate aceste numere au 2a cifre, a = 1, 2, .... n caz contrar, se
completeaz n fa#a numrului cu zerouri.

X
n
: n baza b, cu 2a cifre (
a
n
b X
2
0 )


2
n
X :


Fiind dat numrul aleator ntreg X
n
, urmtorul numr pseudo-aleator X
n+1
se
define$te dup von Neumann ca fiind format din cifrele pr#ii din mijloc a ptratului
lui X
n
. Astfel, ridicnd pe X
n
la ptrat se ob#ine un numr cu 4a cifre; lund cele 2a
cifre de la mijlocul $irului de 4a cifre ale lui
2
n
X se ob#ine numrul X
n+1
. Acest
procedeu poate fi exprimat prin rela#ia de recuren#:

a
a
n
a
n
n
b
b
X
b
X
X
2
3
2 2
1

1
1
]
1

1
1
]
1

+


Aceast metod s-a dovedit a fi o surs slab de numere pseudo-aleatoare
deoarece anumite numere se repet.
De exemplu pentru a=2 $i b=10, numrul 3792
2
se repet deoarece
3792
2
= 14379264.



2.2.2 Metode congruen#iale


Aceste metode constau n a determina numrul X
n+1
din X
n
pe baza rela#iei
congruen#iale de recuren#:

( ) K . 2 , 1 , 0 , mod
1
+
+
n M c aX X
n n


unde a, c, M sunt ntregi nenegativi.
Pentru ob#inerea unui $ir de numere ntregi pseudo-aleatoare este necesar s
se aleag de la nceput n mod convenabil numerele X
0
, a, c, M. Numrul ntreg
pozitiv X
0
este termenul ini#ial al $irului de numere pseudo-aleatoare. Acest generator
se mai nume$te generator mixt-congruen&ial, deoarece paranteza din membrul drept
con#ine o nmul#ire $i o adunare.
a a
a a a a
1 + n
X
24
Se pune problema alegerii constantelor a $i c care dau o perioad maxim,
urmnd ca din clasa generatorilor respectivi s alegem pe aceia care produc numere
pseudo-aleatoare de bun calitate din punct de vedere statistic.

Teorem: 0irul de numere definit de rela#ia congruen#ial liniar are o
perioad maxim de mrime M dac $i numai dac:
1. c este prim cu M;
2. b = a-1 este multiplu de p, pentru orice divizor prim al lui M;
3. b este un multiplu de 4 dac M este un multiplu de 4.

De exemplu, se pot alege: M = 2
35
, a = 2
23
+ 2
14
+ 2
2
+ 1, c = 1, X
0
= 0,
a = 3141592621.

Generatorul multiplicativ - congruen&ial de perioad maxim
Acest generator se ob#ine din cel mixt congruen#ial, lund c = 0:
) (mod
1
M aX X
n n

+

Acest generator nu poate avea perioada de lungime maxim, ceea ce-l face mai pu#in
utilizat dect precedentul.
Pentru calculatoare cu lungimea cuvntului de 32 bi#i, se poate lua M = 2
31
1
cel mai mare numr ntreg reprezentabil pe un cuvnt de memorie, iar a = 7
5
= 16807.

25
CAPITOLUL III

SIMULAREA VARIABILELOR ALEATOARE


Fie C o familie de variabile aleatoare pentru care se cunosc algoritmi de
generare. Se pune problema s determinm un algoritm T care s transforme o
mul#ime de variabile aleatoare CC ntr-o mul#ime de variabile aleatoare X,
X = T (C
1
, C
2
, ..., C
n
).
Cu alte cuvinte, pornind de la o familie de variabile aleatoare pentru care
cunoa$tem algoritmi eficien#i de generare din punct de vedere al calculabilit#ii, s
determinm algoritmul care genereaz variabile aleatoare mai dificil de generat.
Pentru generarea variabilelor aleatoare se utilizeaz urmtoarele metode:
1. Metoda invers
2. Metoda respingerii
3. Metoda compunerii (amestecrii)
4. Alte metode de generare a variabilelor aleatoare
5. Metode particulare de generare a variabilelor aleatoare


3.1 Metoda invers

Lema lui Hincin-Smirnov: Dac X este o variabil aleatoare oarecare avnd
func#ia de reparti#ie F(x), iar U este un numr aleator uniform pe (0,1), atunci
variabila aleatoare ( ) U F Y
1
are func#ia de reparti#ie F(x).
Demonstraie. Fie X o variabil aleatoare avnd func#ia de reparti#ie F(x). Atunci:
( ) ( ) ( ) ( ) ( ) ( ) x F x F U P x U F P x Y P x F < < <
1
) ( ,
unde
1
F este inversa func#iei de reparti#ie.

De aici se desprinde concluzia c dac avem o variabil aleatoare a crei
func#ii de reparti#ie F(X) este cunoscut $i un numr aleator U uniform pe (0,1), o
valoare de selec#ie asupra variabilei X se ob#ine calculnd inversa func#iei de reparti#ie
avnd ca argument numrul aleator U.
Generaliznd, rezult c fiind dat $irul { }
N n
n
X

de variabile aleatoare cu
func#ia de reparti#ie F(X) $i { }
N n
n
U

un $ir de numere aleatoare uniforme pe (0,1) $i
independente stocastic se poate ob#ine un $ir de valori de selec#ie Y
n
avnd aceea$i
func#ie de reparti#ie F(X), ( )
n n
U F Y
1
.

Metoda invers este cea mai simpl metod de simulare a variabilelor
aleatoare. Ea prezint cteva inconveniente:
1. n simularea unor numere aleatoare uniforme pe (0,1), unele dintre acestea
se apropie foarte mult de 0 sau de 1, ceea ce prin rotunjire pot fi asimilate cu 0 sau 1.
Metoda fiind bazat pe calculul inversei func#iei de reparti#ie F n calcule apare
adeseori func#ia ln care datorit rotunjirilor la 1 sau 0 poate conduce la 0 sau la '.
26

0 1
0 1 2 L
2. Metoda invers poate induce multe erori de calcul datorit prezen#ei unor
func#ii ca ln, exp etc. care se calculeaz dup valori aproximative.
3. n multe cazuri func#ia de reparti#ie nu poate fi inversat $i atunci se
apeleaz la metode numerice care de asemenea pot induce erori de calcul.

Metoda invers poate fi aplicat pentru simularea variabilelor aleatoare de tip
continu, discret $i a vectorilor aleatori.

Presupunem c dispunem de un generator de numere aleatoare Random
Numbers Generation (RNG) pentru generarea de numere aleatoare uniforme pe (0,1)
$i independente stocastic. n aceste condi#ii, algoritmul de simulare a unei valori de
selec#ie a unei variabile aleatoare pentru care se cunoa$te func#ia de reparti#ie F(X), se
ob#ine aplicnd lema Hincin-Smirnov pentru cazul discret $i continuu.


Simularea variabilelor aleatoare de tip discret

Fie

< <

,
_

n
i
i i
n
n
p n i p
p p p
x x x
X
1
2 1
2 1
1 , ,..., 2 , 1 ) ( 1 0 , :
K
K


Se va rezolva ecua#ia F(X) = U.
Consider intervalul (0,1) pe care l acoperim cu probabilit#i:
Generm un numr aleator U care va cdea ntr-un interval acoperit cu probabilit#i p
i
,
ceea ce nseamn c valoarea de selec#ie va fi X = X
i
. Putem s generm un indice
aleator.
Se genereaz U, apoi se determin i = [LU] + 1 (se determin n al ctelea
interval se afl U).




Algoritm de simulare a unei variabile aleatoare discrete:
0. Ini#ializare RNG.
Intrare n i X
i
1 ,
( ) 1 0 ,
1
< <

p p X F
i
i

j ( 0
1. Se genereaz cu RNG un numr aleator U uniform pe (0, 1).
2. j ( j + 1
3. Dac U > F
j
transfer la Pas 2.
4. Ie$ire X = X
j
.


1
p
2
p p
n
p
27
Simularea variabilelor aleatoare de tip continuu

Algoritm de simulare a unei variabile aleatoare continue:
0. Ini#ializare RNG.
Intrare parametri.
Ini#ializarea inversrii func#iei F(X).
1. Se genereaz cu RNG un numr aleator U uniform pe (0, 1).
2. Ie$ire ( ) U F X
1
.

Pentru ob#inerea valorilor de selec#ie ale unei variabile aleatoare se reitereaz
acest algoritm.

Pentru verificarea algoritmului se poate aplica cel mai simplu test care const
n calculul mediei $i dispersiei de selec#ie. Verificarea se face pentru un volum de
generri n>1000, ceea ce nseamn reiterarea acestui algoritm se face de cel pu#in de
1000 de ori. Se calculeaz:
- media de selec#ie

n
i
i
X
n
m
1
1

- dispersia de selec#ie ( )

n
i
i
m X
n
s
1
2
2
1
1

unde X
1
, X
2
, ..., X
n
sunt n valori ob#inute prin reiterarea algoritmului.
Se compar aceste valori cu media $i dispersia teortetice $i cu ct erorile sunt
mai mici, rezult c algoritmul este mai bun.
Algoritmul mai poate fi verificat aplicnd testul
2
sau testul Kolmogorov.

Metoda invers pentru solu#ii numerice
Metoda invers poate fi aplicat $i n cazul cnd nu putem calcula explicit
inversa func#iei F. n aceste cazuri, trebuie rezolvat ecua#ia F(X) = U numeric, ceea
ce cere un volum mult mai mare de timp cnd F este continu. Desigur c aceasta
conduce la un algoritm care are o precizie sczut.
n cele ce urmeaz X este necunoscut, fiind solu#ia exact a ecua#iei F(X) = U,
iar X
*
este valoarea ob#inut prin algoritmul de calcul al inversei.
Condi#ia de oprire a algoritmului | X - X
*
| < ! pentru un ! > 0 mic, n anumite
situa#ii este este posibil s nu ne satisfac deoarece pentru valori mai mari ale lui X
aceasta ar putea s implice ca numrul de cifre semnificative cerut s dep$easc
cuvntul calculatorului.
O a doua condi#ie de oprire poate fi dat prin | ) ( ) (
*
X F X F |< ), unde ) >0
este un numr mic.
28
Cei mai cunoscu#i algoritmi numerici pentru calculul inversei F(X) = U sunt:

Metoda biseciei:
Intrare: un interval (a, b) care s con#in solu#ia:
repet
X ( (a + b) / 2
dac F(X) * U
atunci a ( X
altfel b ( X
pn cnd b a < 2!.
Ie$ire: X.


Metoda secantei:
Intrare: un interval (a, b) care s con#in solu#ia:
repet
) ( a b a X +
) ( ) (
) (
a F b F
a F U


dac F(X) * U
atunci a ( X
altfel b ( X
pn cnd b a < !.
Ie$ire: X.


Metoda lui Newton-Raphson:
Intrare: o valoare ini#ial pentru X.
repet

) (
) (
X f
U X F
X X


pn cnd condi#ia de oprire este satisfacut.
Ie$ire: X.

Observaie. Pentru primele dou metode avem nevoie de un interval (a, b) care
s con#in solu#ia. Metoda lui Newton Raphson converge dac F este convex sau
concav.

29

3.2 Metoda respingerii


Fie X o variabil aleatoare a crei generare dorim s o simulm, cu condi#ia
s-i putem asocia urmtoarele elemente:
S = {S
1
, S
2
, , S
n
, } o familie de variabile aleatoare pe care $tim s le
generm.
N o variabil aleatoare discret, N N
+
, 1 ) ( < N P , pe care $tim, de
asemenea s o generm.
P o proprietate (variabil logic ce poate lua dou valori ) ce se poate verifica
prin calcul.
+ o func#ie msurabil, + : R
n
R.

Definiie. Dac unei variabile aleatoare X i se poate asocia un sistem de patru
elemente
{S, N, P, +},
astfel nct pentru orice nN
+
, fiind date S
1
, S
2
, , S
n
, S, care satisfac
proprietatea P, variabila aleatoare + (S
1
, S
2
, , S
n
) are aceea$i func#ie de reparti#ie cu
X, atunci am definit un procedeu de respingere pentru generarea lui X.


Algoritm de generare (metoda respingerii):
0. Ini#ializri
Algoritmul pentru generarea lui N.
Algoritmul pentru generarea lui S
1
, S
2
, , S
n.

Algoritmul pentru verificarea propriet#ii P.
Algoritmul pentru calculul lui +.
1. Genereaz o valoare de selec#ie n N
+
.
2. Genereaz S
1
, S
2
, , S
n
.
3. Dac S
1
, S
2
, , S
n
nu satisfac proprietatea P (respingere)
transfer la 1.
4. Calculeaz X = + (S
1
, S
2
, , S
n
) (valoarea generat).


Observaii.
1. Algoritmul se nume$te de respingere deoarece n Pasul 3 se decide dac
are loc o respingere sau o acceptare.
2. Notm cu p
a
probabilitatea de acceptare $i cu p
r
probabilitatea de
respingere; algoritmul este performant dac p
a
este mare, iar p
r
este mic.
3. N poate fi o variabil aleatoare sau o constant.
4. Familia S trebuie s $tim s o generm simplu $i rapid.
5. Proprietatea P trebuie s fie u$or de verificat.
6. Func#ia + s fie simpl $i u$or de evaluat.



30
Lema 1 (Prima lem de respingere).
Fie X un vector aleator a crui densitate de reparti#ie este f(x), xR
k
$i pe
care vrem s-l generm.
Fie Y un vector aleator a crui densitate de reparti#ie este h(y), y R
k
pe care
$tim s-l generm.
Presupunem c exist o constant 0 < , < ' astfel nct
f(x) / h(y) * , , xR
k

Fie U o variabil aleatoare uniform pe (0, 1), independent de Y.
Atunci, densitatea de reparti#ie a vectorului aleatoriu Y condi#ionat de
0 * U * f (y) / (" h(y))
este f(x).
Demonstraie. Func#ia de reparti#ie a lui Y condi#ionat de 0 * U * f (y) / (" h(y))
este
(
*
H y) = P (Y * y | 0 * U * f (y) / (" h(y))) , y R
k

Notm
A = {Y * y}, B = { 0 * U * f (y) / (" h(y)) }
Atunci
P (B) = P (f (y) / (" h(y))) =


) (
) (
0
( ......
y h
y f
d

u ( )h y d ) y


...... ( f y) / ( ( h y)) ( h y d ) y


......
1

( f y d ) y

1

(
*
H y

1
) (
) (
0
( .... )
y y v h
v f
k
d

u ( )h v d ) v

1
( .....
y y
k
h v ( ) f v) / ( ( h v d )) v

1
( .....
y y
k
f v d ) v ( F y) $i lema este demonstrat.

Algoritm de generare (prima lem# de respingere):
0. Ini#ializare RNG
Ini#ializare algoritmi pentru calculul lui f (x) $i h(y).
Ini#ializare algoritm pentru generarea lui Y.
1. Se genereaz U cu RNG $i un vector aleator Y independent de U.
2. Dac U > f ( y ) / (" h(y)) transfer la 1.
3. Ie$ire X = Y.


Observaii:
1. Probabilitatea de acceptare

1
) ( B P p
a
.
2. Procedeul este performant dac p
a
se apropie de 1.


31
3.3 Metoda compunerii


Fie X o variabil aleatoare a crei func#ie de reparti#ie este F(x) de forma:
) ( ) (
1
x G p x F
i
m
i
i

,
unde
0 < p
i
< 1, ( ) 1 * i * m, cu m>1
1
1

m
i
i
p
unde G
i
(x) sunt func#ii de reparti#ie. Se spune n acest caz c F(x) este amestecarea
familiei } ,....., , {
2 1 m
G G G de func#ii de reparti#ie dup variabila aleatoare discret N
pentru care m i p i N P
i
1 , ) ( sunt cunoscute.
Se observ c func#iile de reparti#ie m N x G
N
1 )}, ( { , depind de indicele
aleator N, iar F(x) este media n raport cu N a variabilelor aleatoare )}. ( { x G
N

Dac notm cu
N
Z variabila aleatoare care are func#ia de reparti#ie )} ( { x G
N
,
atunci
i
Z X cu probabilitatea ). ( i N P p
i


Observaie: Dac F(x) $i G
i
(x) au densit#ile de reparti#ie f(x) $i respectiv g
i
(x),
atunci
) ( ) (
1
x g p x f
i
m
i
i




Procedeul de amestecare discret

Dac exist un algoritm pentru generarea variabilelor Z
N
, 1 * N * m, , atunci
algoritmul de generarea variabilei aleatoare X se prezint astfel:

Algoritm 1 de generare prin amestecare discret#:
0. Ini#ializare RNG.
Ini#ializarea algoritmului pentru generarea unei variabile din familia {Z
N
}.
Intrare m i p G
i
i

1 ,
1


j ( 0
1. Se genereaz un numr U uniform pe (0,1).
2. j ( j + 1
3. Dac U < G
j
transfer la 2.
4. Ie$ire X = Z
j
.


sau
32
Algoritm 2 de generare prin amestecare discret#:
0. Ini#ializri.
1. Se genereaz un indice aleator (o variabil aleatoare discret).

,
_

m
p p p
m
I i
...
... 2 1
:
2 1

2. Ie$ire X = Z
i
.



Exemplu:
La un service sosesc pentru verificare periodic automobile de k tipuri:

,
_

k i
p p p p
k i
K
... ...
... ... 2 1
:
2 1


unde k i p
i
1 , reprezint procentul de ma$ini de tipul i. Durata k i Z
i
1 ,
dintre dou sosiri de acela$i tip este o variabil aleatoare exponen#ial negativ de
parametru k i
i
1 , . Intervalul de timp X dintre dou sosiri oarecare are ca func#ie
de reparti#ie amestecarea func#iilor de de reparti#ie k i x e x G
x
i
i
>

1 , 0 , 1 ) (

,
ceea ce nseamn c func#ia de reparti#ie a lui X este dat de
) 1 ( ) (
1
x
k
i
i
i
e p x F



Algoritm de generare prin amestecare:
0. Ini#ializeaz RNG.
Intrare k i
i
1 ,
Intrare k i p G
i
i

1 ,
1


j ( 0
1. Se genereaz U cu RNG.
2. j ( j + 1
3. Dac U < G
j
transfer la pasul 2.
4. Se genereaz un nou U cu RNG.
3. Ie$ire . ln
1
U X
j





33
Procedeul de amestecare continu


Func#ia de reparti#ie F(x) constituie compunerea unei familii de func#ii de
reparti#ie y y x G ), , ( { R}dup func#ia de reparti#ie H(y), de forma:

+

) ( ) , ( ) ( y dH y x G x F
Se observ c F(x) este valoarea medie a func#iei de reparti#ie G(x,Y), unde Y este un
parametru aleator care are func#ia de reparti#ie H(y).
n acest caz, algoritmul de generare a variabilei aleatoare X cnd se cunosc
algoritmi de generare pentru Y (avnd func#ia de reparti#ie H(y)) $i pentru Z
y
(cu
func#ia de reparti#ie G(x,Y)) se prezint astfel:

Algoritm de generare prin amestecare continu#:
0. Ini#ializare RNG.
Ini#ializarea algoritmului pentru generarea lui Y.
Ini#ializarea algoritmului pentru generarea lui Z
y
.
1. Se genereaz Y.
2. Se genereaz Z
y
.
3. Ie$ire X = Z
y
.


Exemplu: Fie 0 , 0 , 1 ) , ( > >



x e x G
x
unde & este un parametru aleator
care are reparti#ie exponen#ial 0 , 1 ) ( >



e H . Aplicnd procedeul de
amestecare continu, func#ia de reparti#ie F(x) se ob#ine astfel:

x
d e e x F
x
1 ) 1 ( ) (
0

$i reprezint func#ia de reparti#ie Pearson de tipul XI.
Soluie: Algoritmul de generare a variabilei aleatoare X ce corespunde amestecrii
familiei de reparti#ii exponen#iale } 0 ), , ( { > x G dup reparti#ia exponen#ial H(&)
este urmtorul:

Algoritm de generare (variabila Pearson XI):
0. Ini#ializeaz RNG.
1. Se genereaz U cu RNG.
2. Se calculeaz U ln
1

.
3. Se genereaz un alt U cu RNG.
4. Ie$ire . ln
1
U X



Acest algoritm poate fi utilizat pentru generarea unor valori de selec#ie urmnd
reparti#ia Pearson de tipul XI.
34
Observaie: Dac n expresia ) ( ) (
1
x G p x F
i
k
i
i

, unele probabilit#i p
i
sunt
mari, iar variabilele aleatoare corespunztoare Z
i
se genereaz u$or, atunci algoritmul
de generare este performant.


3.4 Alte metode de simulare


Simularea variabilelor aleatoare normale N(m,#) bazat pe teorema limit
central

Variabila aleatoare X cu reparti#ie normal N(m,') are densitatea de reparti#ie
de forma:
( )
( )
2
2
2
2
1


m x
e x f

, xR
cu m = M(X), '
2
= D
2
(X), ' > 0.
Pentru m = 0 $i ' = 1 se ob#ine reparti#ia normal redus N(0,1) cu densitatea
de reparti#ie
( )
2
2
2
1
x
e x g

, xR
Legtura dintre variabila aleatoare Z avnd reparti#ie normal redus
Z ~ N(0,1) $i variabila aleatoare X care are reparti#ie normal X ~ N(m, ') este dat de
transformarea X = m + 'Z .

Generarea variabilei aleatoare N(0,1) se poate face folosind teorema limit
central:

Teorem#: Dac
n
X X X ,...., ,
2 1
este o selec#ie efectuat asupra unei variabile
aleatoare X, astfel nct media M(X) = m $i dispersia D
2
(X) = '
2
, atunci


n
nm X X X
Z
n

+ + +

.....
2 1


are asimptotic (cnd n - ') reparti#ia N(0,1).

Dac U
1
, U
2
, ..., U
n
este o selec#ie de numere aleatoare uniforme pe (0,1),
independente, atunci variabila Y = U
1
+ U
2
+ ...+ U
n
are asimptotic reparti#ie normal
cu media n / 2 $i dispersia n / 12.

Teorema limit central poate fi folosit pentru generarea unei variabile
normale N(0,1).

35
S-a constatat c dac volumul de selec#ie n satisface condi#ia n > 10, atunci
variabila

12
2
n
n
Y
Z

poate aproxima o variabil N(0,1).
Pentru n = 12 se ob#ine Z = U
1
+ U
2
+ ...+ U
12
- 6, care este o metod rapid de
generare, dar aproximativ.

Algoritm de generare a unei variabile aleatoare N(0,1) folosind teorema
limit# central#:
0. Ini#ializare RNG.
1. Se genereaz cu RNG 12 numere aleatoare U
1
, U
2
, ..., U
12
uniforme $i
independente pe (0,1).
2. Ie$ire Z = U
1
+ U
2
+ ...+ U
12
- 6.


Metoda polar

Metoda polar se bazeaz pe teorema lui Box $i Muler.

Teorem#. Dac U
1,
U
2
sunt dou variabile independente, uniforme pe (0,1),
atunci variabilele aleatoare

S
S
V Z
ln 2
1 1

$i
S
S
V Z
ln 2
2 2


cu V
1
= 2U
1
1, V
2
= 2U
2
1 $i
2
2
2
1
V V S + , S < 1, sunt variabile aleatoare normale
N(0,1), independente.

Algoritm de generare a unei variabile aleatoare N(0,1) folosind metoda
polar#:
0. Ini#ializare RNG.
1. Se genereaz cu RNG dou numere aleatoare U
1,
U
2
independente,
uniforme pe (0, 1).
2. Se calculeaz V
1
= 2U
1
1, V
2
= 2U
2
1,
2
2
2
1
V V S + .
3. Dac S > 1 transfer la pasul 1.
4. Ie$ire
S
S
V X
ln 2
1

sau
S
S
V X
ln 2
2

.


36
Simularea reparti$iei gama

O variabil aleatoare X cu reparti#ie gama G(", &, () are densitatea de reparti#ie
de forma:

'

>

x
x e x
x f
x
, 0
, ) (
) (
) (
) ( 1

unde "R este parametru de loca#ie, & > 0 este parametru de scal, ( > 0 este
parametru de form, iar



0
1
) ( dy e y
y

O variabil aleatoare Y are reparti#ia G(0, 1, () dac are densitatea de reparti#ie
de forma:

'

>


0 , 0
0 ,
) (
1
) (
1
x
x e x
y f
x

ntre cele dou variabile aleatoare exist rela#ia

Y
X + ,
ceea ce nseamn c generarea lui X se reduce la generarea lui Y.

Fie X o variabil aleatoare avnd reparti#ie gama cu densitatea de reparti#ie de
forma:
0 ,
0 , 0
0 ,
) (
1
) (
1
>

'

>


x
x e x
x f
x

$i Y o variabil aleatoare avnd o reparti#ie Weibull:
0 ,
0 , 0
0 ,
) (
1
>

'

>

x
x e x
x h
x

Vom genera variabila X $tiind c Y este o variabil Weibull $i se genereaz mai u$or.
Pentru aceasta vom utiliza prima lem de respingere $i vom determina pe " astfel
nct

x x
e
x h
x f


) (
1
) (
) (


Considerm cazul cnd 0 < . < 1 $i se ob#ine:
1
) 1 (
1
) (
1
<
+
<

x x
e .





37

Algoritm de generare a unei variabile aleatoare gama G(", &, (), 0 < . < 1:
0. Ini#ializare RNG.
Intrare ., ,.
1. Se genereaz Y ~ h(.).
2. Se genereaz U ~ U(0,1).
3. Dac
) (
) (
Y h
Y f
U

> transfer 2.
4. Ie$ire X = Y.


n cazul . > 1 se poate alege k = [.] + {.} $i se genereaz prin metoda
compunerii pentru [.] cu Erlang, ca sum de exponen#iale. Reparti#ia Erlang are
func#ia de densitate de forma:

'

>

+

0 , 0
, 0 ,
) (
1
) (
1
x
k x e x
k x f
x k

iar generarea se face dup formula


k
i
i
U X
1
ln .
Mai departe se aplic metoda compunerii:
f(x) = p
1
f
1
(x) + p
2
f
2
(x),
unde

'

>

0 , 0
0 ), (
1
) (
1 1
x
x x f
p x f pentru . Z
+
,
iar

k
dx x f p
0
1
) ( $i p
2
= 1 p
1
.


Simularea reparti$iei beta

Dac variabila aleatoare X are reparti#ie beta de parametri p $i q, atunci
densitatea sa de reparti#ie este de forma:

f(x, y) =

'

< <

) 1 , 0 ( , 0
1 0 , ) 1 (
) , (
1
1 1
x
x x x
q p B
q p


unde
dx x x q p B
q p



1
0
1 1
) 1 ( ) , (
38

Simularea reparti#iei beta se bazeaz pe urmtorul rezultat:

Teorem#. Dac X
1
, X
2
sunt dou variabile aleatoare avnd reparti#ie gama de
parametri p $i respectiv q, atunci variabila
2 1
1
X X
X
X
+
este o variabil beta de
parametri p $i q.

Algoritm de generare a unei variabile aleatoare beta:
0. Ini#ializare RNG.
Ini#ializare algoritm pentru generarea variabilei aleatoare gama.
Intrare p, q.
1. Se genereaz X
1
~ gama (p).
Se genereaz X
2
~ gama (q).
2. Ie$ire
2 1
1
X X
X
X
+
.



3.5 Metode particulare


Unul din principiile generale de generare a variabilelor aleatoare const n a
reduce problema la generarea variabilelor aleatoare mai simplu de generat $i dac este
posibil la variabile aleatoare uniforme.
Vom prezenta o metod particular de generare a variabilelor aleatoare bazat
pe principiul respingerii, folosind vectorii aleatori uniformi pe un domeniu
( ) ( ) { } 0 , ; , v u v u D ,
unde / este frontiera domeniului D.

Algoritm de generare (metod# particular#):
0: Ini#ializare RNG.
Intrare parametrii.
Se determin I = [u
1
, u
2
][v
1
, v
2
] astfel nct DI, u
1
0 0.
1: Se genereaz V U , dou numere aleatoare independente,
uniforme pe (0,1).
2: Se calculeaz
( )
( )

'

+
+

V v v v V
U u u u U
1 2 1
1 2 1

3: Dac ( ) D V U

, transfer la 1.
4: Ie$ire ( )

V U h X , .



39
Observaii:
1. Procedeul prezentat este un procedeu de respingere, deoarece la pasul 3
sunt respinse punctele care nu apar#in domeniului D.
2. Performan#a algoritmului este dat de probabilitatea de acceptare
I aria
D aria
p
a
.
3. Algoritmul este considerat performant dac p
a
este mare, adic 1
3
1
<
a
p .
4. Probabilitatea de respingere este
a r
p p 1 .

O problem dificil n aplicarea acestui algoritm const n determinarea
intervalului bidimensional I, cu 0 * u
1
< u
2
< ' $i -' v
1
< v
2
< '. Pentru determinea
intervalului I exist cel pu#in dou metode, pe care le vom prezenta n continuare.


1. Metoda multiplicatorilor lui Lagrange

Domeniul D se poate scrie sub forma
D = {(u,v) / /(u,v) * 0}
Aplicnd metoda multiplicatorilor lui Lagrange rezult c u
1
$i u
2
se
determin din condi#iile:
F
1
(u,v) = min
F
1
(u,v) = max
unde
F
1
(u,v) = u + & /(u,v)
cu condi#ia /(u,v) = 0 (& este multiplicatorul lui Lagrange).
Determinm solu#iile sistemului:

'

0
0
1
1
v
F
u
F

=> ( ) ( )
i i
v v u u , , 1 i , ( ) ( ) [ ] 0 ,
i i
v u .
=>
( )
i
u u min
1
, ( )
i
u u max
2

Pentru determinarea lui v
1
$i v
2
se consider func#ia
F
2
(u,v) = v + & /(u,v)
Acum determinm solu#iile sistemului:

'

0
0
2
2
v
F
u
F

=> ( ) ( )
i i
v v u u , , 1 i , ( ) ( ) [ ] 0 ,
i i
v u .
=>
( )
i
v v min
1
, ( )
i
v v max
2


40

2. Metoda tangentelor

Se consider tangentele la domeniul D de forma u = const., respectiv
v = const. Se determin punctele

( ) ( ) ( ) ( )
2 1 2 1
, , , , , , , v u S v u R v u Q v u P




Cum D = {(u,v) / /(u,v) * 0} $i dv
v
du
u
d


rezult c panta tangentei este
( )
v
u
du
dv
v u m

,
Valorile u
1
$i u
2
se determin din condi#iile
( ) ( )
( ) ( ) 0 , , , lim :
0 , , , lim :
2 2
1 1
2
1


v u v u m u
v u v u m u
v v
u u
v v
u u


iar valorile v
1
$i v
2
se determin din condi#iile
( ) ( )
( ) ( ) 0 , , 0 , lim :
0 , , 0 , lim :
2 2
1 1
2
1


v u v u m v
v u v u m v
v v
u u
v v
u u

Lem#. Fie X o variabil aleatoare a crui densitate de reparti#ie este este de


forma
( ) ( ),
1
x g
K
x f xR
unde ( )

R
dx x g K .
Fie (U, V) un vector aleator uniform pe domeniul mrginit
( )

'

,
_


u
v
g u v u D
2 1
0 ; ,
41
Atunci,
U
V
X are func#ia de reparti#ie F(x), unde F(x) este func#ia de reparti#ie
corespunztoare densit#ii de reparti#ie f(x).
Demonstraie.
Vectorul (U, V) este uniform pe D atunci:
( )
( )

'

rest n , 0
, ,
aria
1
,
D v u
D v u g

,
_



u
v
g u
D
dudv dudv D
2 1 0
aria
Dac se face transformarea

'

tx v
t u
t u
x
u
v
,
al crui Jacobian este

( )
( )
t
t x
x
v
t
v
x
u
t
u
x t D
v u D

0 1
,
,

Atunci

( )
( )
dtdx
x t D
v u D
dudv
,
,

=> du dv = t dt dx

2
) (
2
1
2
aria
) (
0
2
) (
0
) ( 0
2 / 1
2 / 1
2 / 1
K
dx x g dx
t
dx tdt tdtdx D
x g
x g
x g t

,
_




$i se poate calcula func#ia de reparti#ie a variabilei aleatoare X = V / U:



x
x F d f ) ( ) ( .



( )
( )


,
_


,
_

< <
x
g
x x
g
d g
K
t
K
d tdt
D
x
U
V
P x X P

) (
1
2
2
aria
1
) (
0
2
0
2 / 1
2 1
42
Exemplu (generarea variabilei aleatoare Weibull)
Fie X variabil aleatoare Weibull de parametru 1>0. Atunci func#ia de
densitate are forma
f (x) =

'

> >

0 , 0
0 , 0 ,
1
x
x e x
x


Aici K = ., g(x) =

x
e x
1
$i ( )

'

,
_

,
_

u
v
e
u
v
u v u D
2
1
2
1
0 ; ,
Domeniul D se mai poate scrie:
( )

'


,
_

,
_

1 0 ; ,
2
1
2
1

u
v
ue v u D
u
v
.
Notnd cu ( )
2
1
2
1
ln ,

,
_

,
_

u
v
ue v u
u
v
se ob#ine:
( ) 0 ln
2
1
2
1
ln ,
,
_



,
_

+
u
v
u
v
u v u


$i
( ) ( ) { } 0 , ; , v u v u D
n plus,

u
v
u
vdu udv
u
v
u
vdu udv
u
du
d
2
1
2
2
1
2


,
_


de unde
0
2
1
2
1


,
_

u
v
du
u
v
dv
u
v
u
du
u
v
dv
u
du


Notnd cu q
u
v
, avem
( ) du
q
qdu dv
q qdu dv du
u
q
qdu dv
q
u
qdu dv
u
du
: / 0
2
1
2
/ 0
2
1
2
1
1


+ >


43
( )
1
1
1
2
1
2
1
1
2
1
2
0
2
1
2
1
1 1
1
+

>
+
>

,
_

,
_



,
_

>


,
_

+ >

q
q q
du
dv
q
q
q
du
dv
q
q
du
dv
q
q
q
du
dv
q
q
du
dv
q q
du
dv

a) Valorile u
1
$i u
2
se determin din condi#iile q
du
dv
sau 0 1 +

q

v
u
q => 0 u . Cum 0 0
1
u u .
0 1 +

q =>

1
1

,
_


q . Cum ( ) 0 , v u =>
0
1
ln
2
1 1
2
1
ln
1

,
_

u =>

1
2
1
1
ln
2
1

,
_

u

=>

2
1
2
1
2
1

,
_


e u
b) Valorile u
1
$i u
2
se determin din condi#ia => ( ) 0 1

q q =>
0 1 sau 0

q q
0 0 0
1
v
u
v
q


/ 1
1
0 1
,
_

+
q q .
Cum ( ) 0 , v u rezult c
uq v
u
v
q
e u
u
u

,
_

+

+

,
_

+

,
_

+
+
+

2
2
1
2
1
/ 1
2
1
1
2
1
1
ln 0
1
ln
2
1 1
2
1
ln


=>

2
1
2
1
2
1
2
1
/ 1
2
1 1 1
+

,
_

+

,
_

,
_

+
e e v



44
Algoritm de generare a unei variabile aleatoare Weibull:
0: Ini#ializri RNG
Intrare .>1, u
1
= 0,

2
1
2
1
2
1

,
_


e u
v
1
= 0,

2
1
2
1
2
1
+

,
_

+
e v
1: Se genereaz V U , uniforme pe (0, 1) $i independente.
2: Se calculeaz V v V U u U

2 2
, .
3: Dac 0 ln
2
1
2
1
ln >

,
_

U
V
U
V
U

transfer la pasul 1
4: Ie$ire

U
V
X .


Lem#.
Fie X o variabil aleatoare a crei densitate de reparti#ie este
( ) ( ) ( ) R , 0 ,
1
x x g x g
K
x f . Fie (U, V) un vector aleator pe domeniul D,
( )

'

,
_


u
v
g u v u D
3
2
0 : , ,
cu aria D < '. Atunci densitatea de reparti#ie a lui
U
V
X este f(x).



Generarea variabilelor aleatoare N(0,1)

Reamintim c X ~ N(m, ') dac func#ia de densitate este
f(x) =
( )
2
2
2
2
1


m x
e

, xR.
n cazul particular X ~ N(0,1) se ob#ine f(x) =
2
2
2
1
x
e

.
Pentru aplicarea lemei avem
( )
2
2
, 2
x
e x g K


45
( ) ( )

'

'

,
_

1 0 : , 0 : ,
2
2
3
1
3
1
u
v
u
v
ue v u e u v u D
Notnd
( )
u
v
u v u
2
3
1
ln , + .
se ob#ine ( ) ( ) { } 0 , : , v u v u D .
n continuare,
( ) ( )
u
v
u u v u u v u F
2
1
3
1
ln , ,

+ + + .
=>
2
2 2
2
2
1
3
3 3
3
1
1
u
v u u
u
v
u u
F +
+

.
Apoi,
( ) 1 0 3 3 0
2 2 1
+

v u u
u
F
.

( ) 2 0 0
3
2
1

v
u
v
v
F

Din rela#iile (1) $i (2) se formeaz sistemul:

'

'

+
0
0
0 3 3
2 2
v
u
v
v u u



Completnd sistemul anterior:
( )

'

'

0
3
1
ln
0
0 ,
0
0
2
1
1
u
v
u
v
u
v u
v
F
u
F


Deci ln(-&) = 0 => & = 1. Rezult $i c u
1
= 0 $i u
1
= 1.
( ) ( )
u
v
u v v u v v u F
3
ln , ,
2
2

+ + +
=>
2
2
2
3u
v
u u
F

.
Din ( )


2
3
0 0
3
3
0
2
2
2
2
u
v
u
v u
u
F



n continuare,
u
v
v
F
3
2
1
2

+

.
46
Din ( )

+ +

v
v u
v
v
F
0
2
3
3
2
1 0
3
2
1 0
2

Completnd sistemul derivatelor par#iale:
( )

'

'

'

'

e
v
v
u
v
e
u
v
u
v
u
v
u
v
u
v
v u
v
F
u
F
3
3
1
3
0
3
1
ln
3
0 ,
0
0
2
2 2
2
2
2
2


de unde se ob#in valorile v
1
$i v
2
:

'


e
v
e
v
3
3
2
1


Algoritm de generare a unei variabile aleatoare N(0,1):
0: Ini#ializare RNG
Intrare: e v e v / 3 , / 3
2 1

1: Se genereaz ) 1 , 0 ( ~ U U .
Se calculeaz ( ) ( ) U u u u U U U +
1 2 1
* *
( ) 1 , 0 ~ U
2: Se genereaz ) 1 , 0 ( ~ ' U V
Se genereaz ( )V v v v V +
1 2 1
*
=> ( )
2 1
*
, ~ v v U V
3: Dac 0 / 3 / 1 ln
*
2
* *
> + U V U transfer la 1.
(perechea ( )
* *
,V U generat nu este n domeniu)
4: Ie$ire
*
*
U
V
X .


Probabilitatea de acceptare este:
I
D
p
a
aria
aria
=
( ) ( )
75 , 0 ...
1 2 1 2

a
D
P
t u
x
u
v
v v u u
dudv






47
CAPITOLUL IV

SIMULAREA VECTORILOR ALEATORI


Problema generrii vectorilor aleatori este de mare importan# n construirea
modelelor de simulare, generarea unor procese stochastice, n aplicarea metodei
Monte Carlo la integrale multiple.

Pentru a gsi metode de generare a vectorilor aleatori s-a ncercat
generalizarea unor metode folosite la generarea variabilelor aleatoare; datorit
dificult#ii de calcul pu#ine dintre acestea au condus la rezultate scontate.

Pentru calculul integralelor multiple

D
dV V f I ) ( , DR
k
, se poate folosi
urmtorul procedeu Monte Carlo:


- se genereaz o selec#ie V
1
, V
2
, ..., V
n
de vectori aleatori independen#i identic
repartiza#i cu reparti#ie uniform pe D;
- se estimeaz I prin ( )

n
i
i n
V f
n
I
1
1
.
Dac f L
2
(D) atunci M(I
n
)=I $i ( ) 0 lim
2


n
n
I D , adic I
n
este o estima#ie
absolut corect pentru I.

Calculul integralei I
n
cnd n este suficient de mare cu ajutorul calculatorului
prin metoda Monte Carlo este uneori mai eficient dect prin mijloacele analizei
numerice.


4.1 Generarea vectorilor aleatori prin metoda invers


Lem.
Fie X = (X
1
,..., X
k
)' R
k
vector aleator cu func#ia de reparti#ie F(x
1
, x
2
, ..., x
k
).
Fie urmtoarele nota#ii:

( ) ( )
( ) ( )
( ) ( )
1 1 1 1 2 1
1 1 2 2 2 1 2
1 1 1 1
, , | , , ,
| ,

< < <
< <
<
k k k k k k
x X x X x X P x x x F
x X x X P x x F
x X P x F
K K
L L L L L L L L L L L L L L

unde F
1
(x
1
) este func#ia de reparti#ie marginal a variabilei aleatoare X
1
, F
2
(x
1
, x
2
) este
func#ia de reparti#ie a variabilei aleatoare X
2
condi#ionat de X
1
< x
1
, etc.
Dac U
1
,..., U
k
sunt numere aleatoare uniforme pe (0,1) $i independente
stocastic, atunci vectorul aleator Y = (Y
1
,..., Y
k
)' R
k
cu:
48
( )
( )
( )
k k k k
U Y Y Y F Y
U Y F Y
U F Y
, , , ,
,
1 2 1
1
2 1
1
2 2
1
1
1 1

K
L L L L L L L L

are func#ia de reparti#ie F(x
1
, x
2
, ..., x
k
), unde ( ) y x x F
i i
, , ,
1 1
1

K este inversa lui


F
i
(x
1
, x
2
, ..., x
i
).
Demonstra#ie:
Pentru simplificarea scrierii se va da demonstra#ia n cazul k = 2. Pentru k > 2
demonstra#ia se poate realiza prin induc#ie.
F(x
1
, x
2
) = P(X
1
< x
1
, X
2
< x
2
) = P(X
1
< x
1
) P (X
2
< x
2
/ X
1
< x
1
) =
= F
1
(x
1
) F
2
(x
1
, x
2
)
Reparti#ia comun a vectorului (Y
1
, Y
2
) este:
( ) ( ) ( ) ( )
( ) ( ) ( ) [ ] ( ) ( )
( ) ( ) ( ) ( ) ( )
2 1 2 1 2 1 1 1 1 2 1 2 2
1 1 1 1 1 2 1 2 2 1 1 1
2 2 1
1
2 1 1
1
1 2 2 1 1
, , | ,
. | , ,
, , ,
y y F y y F y F y Y y y F U P
y F U P y Y y Y F U y F U P
y U Y F y U F P y Y y Y P
< <
< < < <
< < < <




4.2 Generarea vectorilor aleatori avnd reparti#ie uniform


Se presupune c I este un interval k-dimensional, I
i
= (a
i
, b
i
), 1 ( i $ k $i V este
un vector aleator care are reparti#ie uniform pe I.
Se noteaz cu
( )

'

rest n , 0
dac ,
1
) (
1
I x
a b x
k
i
i i

densitatea de reparti#ie a lui V, atunci
( ) ( )

k
i
i i
x x
1
,
unde %
i
este densitatea de reparti#iei V
i
, uniform pe I
i
= (a
i
, b
i
).
Vectorul V are componente variabile aleatoare uniforme pe (a
i
, b
i
) $i independente.

49

Algoritm de simulare a unui vector aleator uniform pe (a,b)
k
:
0. Ini#ializare RNG.
Intrare k)0, i)0.
1. Se genereaz variabila aleatoare U uniform pe (0,1)
i ) i+1
2. V
i
) a
i
+ (b
i
- a
i
)U
3. Dac i ( k transfer la pasul 1.
4. Ie$ire V = (V
1
,..., V
k
)'.


Pentru a genera un vector aleator V care are reparti#ie uniform pe un domeniu
oarecare DR
k
, notm cu I intervalul care con#ine domeniul D. Dac D domeniu
simplu conex $i f(X) = 0 este ecua#ia frontierei care delimiteaz acest domeniu, f fiind
o func#ie de k variabile, atunci algoritmul de generare bazat pe metoda respingerii se
prezint astfel:

Algoritm de simulare a unui vector aleator uniform pe D:
0. Ini#ia#izare RNG.
Intrare I (a
i
, b
i
, 1 ( i ( k).
1. Se genereaz un vector U uniform pe I.
2. Dac f(U)>0 transfer la pasul 1.
(se presupune c UD dac f(U)<0)
3. Ie$ire V = U.


Cele mai simple $i rapide metode de generare a vectorilor aleatori constau n a
reduce problema generarea vectorilor aleatori uniformi, care sunt cei mai u$or de
generat.


Lem.
Fie X = (X
1
,..., X
k
)' un vector aleator cu valori n R
k
a crui densitate de
reparti#ie este
( )
( ) X g H
X f

1
,
cu
( )
k
X X g R 0,
$i
( )

k
R
X X g H d .
Fie (V
0
, V
1
,..., V
k
)' un vector aleator uniform pe domeniul DR
k+1
:
( )

'

,
_


+ +
0 0
1 1 1
0
1 '
1 0
0 , ,..., ,
v
v
,...,
v
v
g v v v v D
k k k
k
R
50
presupus mrginit (adic aria D < *).
Atunci densitatea de reparti#ie a lui X = (X
1
,..., X
k
)', unde
,...,k , i V V X
i i
2 1 ,
0

este f(X).
Demonstra#ie. Dac vectorul aleator (V
0
, V
1
,..., V
k
)' are reparti#ie uniform pe D,
atunci densitatea sa de reparti#ie este dat de
( )
( )

'

rest n 0
dac
aria
1
1 0
1 0
,
D ,...,v ,v v ,
D
,...,v v v g
'
k
k ,
,
unde
aria

,
_

0 0
1
1
1
0
1 0
v
v
,...,
v
v
g
k
k
k
...dv dv dv D K
Facem transformarea de coordonate:

'

0
0
0 2 2
0 1 1
......
v t
v v x
v v x
v v x
k k
=>

'

t v
tx v
......
tx v
tx v
k
0
0
2 2
1 1

al crui Jacobian este
( )
( )
k
k
k
k
t
t ... x
... ... ... ... ...
... t x
... t x
...
,....,x t,x D
,...,v ,v v D

0 0
0 0
0 0
0 0 0 1
2
1
1
1 0

Atunci
aria
( )
( )


+
+

k
k
k
k
k
x x g
k
k
x x g t
R
k
k
dx dtdx t dx dtdx t D
,...,
0
1
,..., 0
1
1
1
1
1
1
1
... ... ...
3 2 1
K
( )
1
... ,...,
1
1
1 1
+


k
H
dx dx x x g
k
k k
R
k
3 2 1
K
Acum se ob#ine:
( )

,
_

< <

,
_

< < < <


I
K K
D x
v
v
x
v
v
k k
k
k k
k
k
dv dv dv
D
x
v
v
x
v
v
P x X x X P
0
1
0
1
,...,
1 0
0
1
0
1
1 1
aria
1
,..., ,...,
51
( )
( )
+

+

k
k
k
x x g
k
k
x x
dx dtdx t H k
,...,
0
1
1
1
1
1
... 1 K
( ) ( )



k
x
k k
x
X F dx dx x x g
H
...
1
1 1
1
K K ,
unde F(X) este func#ia de reparti#ie a lui f(X), XR
k
$i lema este demonstrat.


Algoritm de simulare a unui vector aleator:
0. Ini#ializeaz algoritmul RNG pentru generarea unor numere
aleatoare uniforme pe (0,1);
Intrare parametri.
Se determin un interval I, DI, de forma:
] , [ ] , [ ] , [
2 1 2
1
1
1
2
0
1
0
k k
v v v v v v I K
1. Se genereaz vectorul aleator (V
0
*
,
V
1
*
,...,
V
k
*
) uniform pe I, astfel:
k i U v v v V
i i i i i
,..., 2 , 1 , ) (
1 2 1 *
+ unde U
i
sunt numere
aleatoare independente, uniforme pe (0,1).
2. Dac ( ) D V V V
k

'
* *
1
*
0
,..., , transfer la pasul 1, altfel la pasul 3.
3. Ie$ire ( ) n i V V V h X
k i
,..., 2 , 1 , ,..., ,
* *
1
*
0
.


Observa#ii:
1. Punctele (V
0
*
,
V
1
*
, ...,
V
k
*
) sunt uniform repartizate pe domeniul mrginit D,
algoritmul descris mai sus fiind un algoritm de respingere.
2. Performan#a algoritmului este caracterizat de probabilitatea de acceptare
(probabilitatea de trecere de la pasul 2 la pasul 3) dat de

( )

k
i
i i
a
v v
D aria
p
1
1 2
.
3. Algoritmul este performant dac p
a
este mare.


Dificultatea aplicrii acestui algoritm const n determinarea intervalului
minimal I care-l con#ine pe D. Pentru aceasta l putem scrie pe D sub forma:

( ) ( ) { } 0 ,..., ; ,...,
0
'
0

k k
v v v v D

$i procedeul de determinare a lui I revine la a rezolva problemele de optim
D
i i
v v min
1
, k i v v
i
D
i
0 , max
2
.
52
Aplicnd metoda multiplicatorilor lui Lagrange pentru rezolvarea problemelor de
optim, vom gsi pe v
0
, v
1,,
v
k
astfel ca:
( ) min ,..., ,
1 0

k i
v v v F
( ) max ,..., ,
1 0

k i
v v v F , n i ,..., 2 , 1
unde
( ) ( )
k i k i
v v v v v v v F ,..., , ,..., ,
1 0 1 0
+
cu restric#ia
( ) . 0 ,..., ,
1 0

k
v v v

n continuare aplicm lema $i algoritmul pentru generarea vectorilor
aleatori avnd reparti#ie Dirichlet $i multinomial.


4.3 Generarea vectorilor aleatori avnd reparti#ie Dirichlet


Vectorul aleator X = (X
1
,..., X
k
)' este repartizat Dirichlet de parametri
1 1
,...,
+ k
dac densitatea sa de reparti#ie este:

( )
( )
( ) ( )
( )
1
1
1 1
1
1
1
1
1 1
... 1 ...
...
...
,...,


+


+ +

k k
k
k
&
k
k
k
x x x x x x f



(4.1)
sau
( ) ( )
k k
x x h
H
x x f ,...,
1
,...,
1 1

unde
( ) ( )
( )
1 1
1 1
...
...
+
+
+ +

k
k
H



$i
( ) ( )
1
1
1 1
1
1
1 1
... 1 ... ,...,

+

k k
k
k
&
k
x x x x x x h

(4.1')
Notm

+
d
i
i i i
d i k d
1
, 1 , 1 , 1
Domeniul D din lem devine:

'

,
_

d
d
k
i
i
d
k
d
v
v v v v
v D
k
k


0
1
0
1
0
1
1
...
0 (4.2)
sau
53
( )

'


+

+
1 ... 0
1 1
0
1 0
d d
k
d
d
d
k
k
v v v v v D

(4.2')
unde

k
i
i
v v
1
.
Introducnd func#ia : ( ) ( )

+

+

k
i
k
i
i
k
v v
d
v
d
v
d
d
v v v
1
0
1
0 1 0
ln ln ln ,..., ,


domeniul D devine: ( ) { } 0 ,..., ,
1 0

k
v v v D

Pentru a determina intervalul
1 k+
R I , aplicm metoda multiplicatorilor lui
Lagrange func#iilor: k i v F
i i
+ 0 , unde ( este multiplicatorul lui Lagrange.

Cazul i=0.

n acest caz avem:
( )

1
]
1

1
]
1

+
+

+
+
0 ,..., ,
0
1 1
1
0
1 1
1
1 0
0
0
1 0
0
1
0 0
0
k
k
l
l
l
k
v v v
F
v v d v d v
F
v v d v d
d
v
F

(4.4)
Din a doua rela#ie (4.4) deducem :
l
l k
v v v

+
0
1
adic ( ) k l v v v
l k l

+
1 ,
0 1
.
Din
1
1
1
1 1
+

+

+
k
k
l
l k
k
l
l
d
i
i
, nsumnd dup l, se ob#ine
( )

+1 0 k
v
v (4.5)
Din prima rela#ie (4.4) deducem :



+
l
l
k
v
v v
v
1
0
0
(4.6)
Introducnd valorile lui v date de (4.6) n a treia rela#ie (4.4), ob#inem:
d
k
l
d
l
l


1
1

de unde
54

,
_


d
l
d
l
l
d
v v
1
1
0
0
0
, 0

(4.6b)

Cazul 1 i .

n acest caz avem:

( )


1
]
1

1
]
1

1
]
1

+
+

+
+
+
0 ,..., ,
1 , , 0
1 1
1
0
1 1
1
0
1 1
1
1 0
0
1
0
1
0
1
0 0
k
i
k
l
l
l
i
k
i
i
i
i
k i
v v v
F
k l i l
v v d v d v
F
v v d v d v
F
v v d v d
d
v
F

(4.7)

Din prima rela#ie (4.7) deducem:
v v v
d
k

+
+
0
1
0

adic
0
1
0
v
d
v v
k
+

+

(4.8)

A 2-a rela#ie (4.7) conduce la :
( ) d dv
v
v
i
i
+ +

0
0
(4.9)

Din a 3-a rela#ie (4.7) gsim :
k l i l d v v
l l
+ 1 , ,
0
(4.10)
Din (4.8) se ob#ine apoi
d
d
v v
k
+
+


1
0
(4.11)
Din (4.9), (4.10), (4.11) se deduce c :
( )
i l
d
v
v
d
d
v
i
l
l
i
i

+


+
+

,
,
0


(4.12)
Introducem valorile date de (4.9) $i (4.12) n ultima rela#ie (4.7) $i se ob#ine:

55

( )
( )
d
d
d
d
i
d
i l
l
d
l
d
d
i
l
+
+

+
+

1

adic:
k i
d d
d d
v v
k
l
d
l i
d
i
i
i i
l
i

,
_

,
_

+
+

,
_

+


+

1 , , 0
1
1
1 0

(4.13)
Deci intervalul I este: [ ] [ ] [ ]
1 1
1
1
0
, 0 ... , 0 , 0
k
v v v I unde
1
0
v este dat de (4.6b), iar
k i v
i
1 ,
1
sunt da#i de (4.13).


Algoritm de simulare a unui vector aleator Dirichlet:
0: Intrare 1 1 , , + k i k
i

Se calculeaz
1 + k d

1
1
k
i
i

d a +
1

( ) d d a +
2

1 1 , + k i d b
i i

Se calculeaz
1
0
v conform cu (4.6b) $i
1
i
v conform cu (4.13), k i 1
1: Se genereaz U uniform pe (0,1) $i ia U v v
1
0
0

2: Se genereaz ( ) 1 , 0 ~ , 1 , >
i i
U k i U $i independente $i calculeaz


k
i
i i i i
X v k i U v X
1 '
1
' , 1 ,
3: Dac 0
0
+ v v transfer la pasul1
4: Dac ( ) 0 ln ln ln
0
1
1 '
0 0

+

v v
d
X b v a
k
k
i
i i

transfer la pasul 1.
5: Ie$ire
0
V
X
X
i
i
.


Probabilitatea de acceptare este:

k
i
i
a
v
k
H
p
0
1
1
1

sau
56

( ) ( )
( ) ( )
( )
( )
( )

+
+
+

,
_

+
+
+
+ + +

k
i
d
i i k
k
k
a
i
d d
d
d d
k
p
1
2
1
1 1
1 1
1
... 1
...




Se poate aplic formula n e n n
n n
2 |

.
Algoritmul este performant pentru valori nu prea mari ale parametrilor.


4.4 Generarea vectorilor aleatori avnd reparti#ie multinomian


Reparti#ia multinomial este o extensie a reparti#iei binomiale. Un vector
aleator X = (X
1
,..., X
k
)' are o reparti#ie multinomial dac func#ia sa de reparti#ie
este:
( )
k
x
k
x x
n
n
p p p
x x x
n
x x x f ...
! !... !
!
,..., ,
2 1
2 1
2 1
2 1

unde
1 , 1 0
, 0
1
1

k
i
i i
k
i
i i i
p p
n x , x x Z
.
Reparti#ia multinomial se bazeaz pe urmtorul model: ca rezultat al unei
experien#e sunt posibile evenimentele incompatibile ( )
i i k
A P p A A , ,...,
1
, iar X
i

reprezint numrul de apari#ii ale evenimentului A
i
n n experien#e.
Se $tie c ( ) ( ) ( )
i i i i i
p np X D np X M 1 ,
2


Algoritm de simulare a unui vector aleator multinomial:
0: Ini#ializare RNG.
Intrare n,


k
p k p
1
1 , 1 ,



Se calculeaz [ ] k i p i F
i

1 ,
1


Ini#ializare j ) 0.
1: Genereaz un U cu RNG.
l ) 0, j ) j + 1.
2: l ) l + 1
3: Dac [ ] l F U transfer la Pas2
4: [ ] [ ] 1 + l X l X
5: Dac n j < transfer la pasul 1.
6: Dac [ ] [ ] ( )' ,... , k X 1 X n j X

57
Vectorul X este vectorul multinomial generat. Componentele lui X se ob#in
prin numrarea evenimentelor
i
A care apar n n experien#e, astfel nct n fiecare
experien# apare numai un astfel de eveniment.

Conform algoritmului, se utilizeaz evenimentul
i
A dac numrul aleator U
cade n intervalul ( ) 1 , 0 I de lungime k i p
i
1 , . Pentru simularea
evenimentelor
i
A se acoper intervalul (0,1) cu k intervale a$ezate ntr-o anumit
ordine, avnd respectiv lungimile k j p
j
1 , .

Reparti#ia multinomial poate fi utilizat n controlul statistic al calit#ii;
unul din evenimentele A
i
corespunde piesei defecte, iar celelalte corespund la
diferite categorii de calitate.


4.5 Generarea vectorilor aleatori avnd reparti#ie normal


Fie X un vector aleator k-dimensional normal ( ) , N , unde + este vectorul
valoare medie $i , este matricea de covarian# presupus pozitiv definit.
Densitatea de reparti#ie a lui
k
R X , este:
( )
( ) ( )
( ) ( )


x x
x
1
2 1
2 1 2
det 2
1
, ,
t
e f
k

unde forma ptratic
( ) ( ) ( )

x x x
1 t

este pozitiv definit. Densitatea de reparti#ie a vectorului aleator Z normal ( ) I , 0 N
unde 0 este vectorul nul $i I este matricea unitate, este:
( )
( )
2
1
2 1
2
2
2
1
2
1
, ,
i
t
x
k
i
k
e e f

x x
I O x
ceea ce nseamn c vectorul Z are k componente independente, avnd fiecare
reparti#ia normal N(0,1). Generarea vectorului Z se face genernd k variabile
normale N(0,1) independente. Pentru a genera un vector aleator ( ) , N se
folose$te teorema:

Teorem. Dac Z este un vector aleator k-dim normal ( ) I O, N $i X este un
vector aleator k-dim normal ( ) , N , iar C este o matrice superior triunghiular
astfel ca
t
CC , atunci vectorul aleator
CZ Y +
are aceea$i reparti#ie ca X.



58
Algoritm de simulare a unui vector aleator normal ( ) , N :
0: Ini#ializare RNG.
Intrare ), *.
Se calculeaz elementele matricei C.
1: Genereaz un vector aleator ( ) I Z , 0 ~ N .
2: Se calculeaz CZ X + .



Caz particular: k = 2.
Vectorul ( )
2 1
, X X X are reparti#ie normal bidimensional:
( )
( )( )
( )
2 1
, 2 1
2 1
det 2
1
,
x x Q
e x x f

,
unde
( ) ( ) ( )( ) ( )
2
2 2 221 2 2 1 1 12
2
1 1 11 2 1
2 , + + x x x x x x Q
( ) [ ] 2 , 1 , `, , ,
2 1
22 21
12 11

,
_

i X M
i i




( ) 2 , 1 , , , j i X X Cov
j i ij

( )
( )




1
2 1 2 2
2
2 2 1
2 1
2
1
,
, ,
X X Cov
X D
i i

,
_


( ) [ ] ( ) [ ] ( ) [ ] [ ] [ ] [ ]. , Y M X M XY Y M Y X M X M Y X Cov
Reamintim:
( ) 0 , Y X Cov dac X $i Y sunt independente.

( )
( )
( ) ( ) Y X
Y X Cov
Y X

,
, este coeficient de corela#ie.
Func#ia de densitate se mai poate scrie astfel
( )
( )
( )
( )( )
1
1
]
1

,
_

,
_

2
2
2
2 1
2 1
2
1
1
2
2
1 2
1
2
2 1
1 2
1
,


m y m y m x m x
e y x f











59
CAPITOLUL V

APLICAII ALE SIMUL!RII



5.1 Calculul integralelor multiple prin metoda Monte Carlo


Fie z = f (x
1
, x
2
, ..., x
k
) o funcie continu! ntr-un domeniu m!rginit D din
spaiul cu k dimensiuni. Problema care se pune este s! calcul!m integrala multipl!:

( )
k k
D
dx dx dx x x x f I K K
3 2 1
2 1 2 1
, , , ...

= (5.1)
Geometric, num!rul I reprezint! volumul k+1 - dimensional al unui cilindru
drept n spaiul Ox
1
x
2
...x
k
z avnd ca baz! domeniul D $i m!rginit superior de suprafaa
z = f (x
1
, x
2
, ..., x
k
).


60
Se transform! integrala (5.1) astfel nct domeniul de integrare rezultat s! fie
coninut n cubul unitate k - dimensional.
Dac! domeniul D este cuprins n paralelipipedul k dimensional
a
i
x
i
b
i
, 1 i k (5.2)
prin transformarea
x
i
= a
i
+ (b
i
a
i
)!
i
(5.3)
paralelipipedul k - dimensional se transform! n cubul unitate k - dimensional:
0

!
i
1, 1 i k
$i domeniu de integrare D va fi cuprins n acest cub unitate.


Jacobianul transform!rii este
( )
( )
k
k
D
x x x D
, , ,
, , ,
2 1
2 1
K
K
=
k
k k k
k
k
x x x
x x x
x x x


L
L O L L
L
L
2 1
2
2
2
1
2
1
2
1
1
1
=
=
k k
a b
a b
a b

L
L O L L
L
L
0 0
0 0
0 0
2 2
1 1
= ( )

k
j
j j
a b
1

$i se obine:
61
( )
k k
D
d d d h I K K
3 2 1
2 1 2 1
, , , ...

= (5.4)
unde
( ) ( ) ( ) ( ) ( ) [ ]
k k k k k k
a b a b a f a b a b h + = , , , , ,
1 1 1 1 1 1 2 1
K K K
Notnd
( )
k
k
d d d d

K
K
2 1
2 1
, , ,
=
=

integrala (5.4) se poate scrie sub forma prescurtat!:
( )
( ) d h I
D
D

= L
3 2 1
... (5.5)

Vom prezenta dou! metode de calcul al integralei (5.5), folosind numerele
aleatoare.

Prima metod"

Se consider! un tabel cu numere aleatoare uniform repartizate pe (0,1) $i
independente. Se aleg k $iruri din aceste numere:
( ) ( ) ( )
( ) ( ) ( )
( ) ( )
K K
K K K K K K K K
K K
K K
, , , ,
, , , ,
, , , ,
2
) (
1
2 2
2
2
1
1 1
2
1
1
k
n
k k
n
n




Punctele
( ) ( ) ( )
( )
k
i i i
i
M , , ,
2 1
K , i = 1, 2, ... pot fi considerate ca puncte
aleatoare repartizate uniform n cubul unitate k - dimensional.
Se alege un num!r N suficient de mare de puncte M
1
, M
2
, ..., M
N
$i se
verific! punctele care aparin domeniului D.


62

Dac! ecuaia frontierei ' este %(!) = 0, atunci pentru %(!) > 0 orice punct
!
/
D, iar pentru %(!) < 0 pentru orice punct ! D.
Fie n num!rul de puncte aleatoare M
i
care aparin domeniului D; celelalte Nn
vor c!dea n afara acestui domeniu. Atunci pentru N suficient de mare avem
urm!toarea formul! aproximativ!:
( )
( )

n
i
i
M h
n
D vol
I
1
1

unde vol(D) este volumul domeniului de integrare k - dimensional D.
n cazul n care este dificil s! se calculeze vol(D) se poate lua
( )
N
n
D vol
$i valoarea aproximativ! a integralei devine:
( )

n
i
i
h
N
I
1
1
1
.

Exemplu: S! se calculeze prin metoda Monte Carlo integrala:

( )

+ =
D
dxdy y x I
2 2

unde
( ) { } 1 2 0 , 1 2 1 ; , = x y x y x D .
Solu&ie: Consider!m urm!torul tabel de numere aleatoare repartizate uniform pe
intervalul [0, 1] (tabelul 5.1) $i lu!m pentru fiecare dou! numere consecutive din acest
tabel ca fiind coordonate ale punctului aleator (x, y).

0,57705 0,35483 0,11578 0,65339
0,71618 0,09393 0,93045 0,93382
0,73710 0,30304 0,93011 0,05758
0,70131 0,55186 0,42844 0,00336
0,16961 0,64003 0,52906 0,88222
0,53324 0,20514 0,09461 0,98585
0,43166 0,00188 0,99602 0,52103
0,26275 0,55709 0,69962 0,91827
0,05926 0,86977 0,31311 0,07069
0,66289 0,31303 0,27004 0,13928
Tabelul 5.1. Tabel cu numere aleatoare uniforme pe [0,1]

Tabel!m coordonatele x $i y ale punctelor aleatoare n tabelul 5.2
rotunjindu-le la 3 zecimale $i alegndu-le pe acelea ce aparin domeniului de
integrare.
Tabelul 5.2 se obine astfel:
63
Dintre toate valorile lui x care variaz! ntre x = 1/2 $i x = 1. Pentru aceste
valori vom lua '
1
= 1, iar pentru celelalte lu!m '
1
= 1.
Dintre toate valorile lui y corespunz!toare lui x le alegem pe acelea coninute
ntre y(x) = 0 $i ( ) 1 2 = x x y .
Pentru aceste valori punem '
2
= 1, iar pentru restul '
2
= 0.
Calcul!m ' = '
1
'
2
. Numai pentru punctele pentru care ' = 1 aparin
domeniului de integrare.
n situaia de fa!, dintre cele N = 20 de puncte, numai n = 4 aparin
domeniului de integrare.
( )
5
1
20
4
= =
N
n
D vol .
Atunci
( ) 20 , 0 482 , 1 048 , 1 855 , 0 452 , 0
4
1
4
1
1
= + + + = I
Valoarea exact! a integralei este I
1
= 0,21875.
Se observ! o acuratee sc!zut!, fapt explicat prin aceea c! num!rul de puncte
N = 20 nu este suficient de mare.

x x
x 1

y ( ) x y
( ) x y
2
( ) y x, f
0,557 0,500 1,000 1 0,716 0 0,154 0 0
0,737 0,500 1,000 1 0,701 0 0,474 0 0
0,170 0,500 1,000 0 0,533 0
0,432 0 0,263
0,059 0 0,663
0,355 0 0,094
0,303 0 0,552
0,640 1 0,205 0 0,280 1 1 0,452
0,002 0 0,557
0,870 1 0,323 0 0,740 1 1 0,855
0,116 0 0,930
0,930 1 0,428 0 0,860 1 1 1,048
0,529 1 0,095 0 0,0580
0,996 1 0,700 0 0,992 1 1 1,1482
0,313 0 0,270
0,653 1 0,934 0 0,306 0 0
0,058 0 0,003
0,882 1 0,986 0 0,764 0 0
0,521 0,500 1,000 1 0,918 0 0,042 0
0,071 0,500 1,000 0 0,139

Tabelul 5.2. Tabel pentru calculul integralei I
1
.



64
A doua metod"

Fie 0 ) ..., , , (
2 1
=
k
h y . Atunci integrala (5.1) poate fi considerat! ca
volumul solidului din spaiul cu (k+1) dimensiuni, adic!

=
(V)
k
dy d d! d! ... I K
2 1
, (5.6)
unde volumul V determinat de urm!toarele condiii:
) ( 0 , ) ..., , (
1
h y D
k
= .
Dac! n domeniul D
( ) , ...k , , i ! B, ! h
i
2 1 1 0 0 =
atunci schimbarea de variabil!
y
B

1
=
ne duce la
d d d d B I
V
k

=
) (
2 1
. . . ...
unde V este cilindrul din spaiul
k
O
. . . 1
construit pe domeniul ( $i m!rginit inferior
de hiperplanul ( = 0 $i superior de hiperplanul y
1

B
= , V fiind situat n cubul unitate
k+1 - dimensional:


65
1 0
1 , 1 0

=

, k , i
i
K

Lu!m pe intervalul [0,1], k+1 $iruri de variabile aleatoare repartizate uniform:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
K K
K K
K K K K K K K K
K K
K K
, , , ,
, , , ,
, , , ,
, , , ,
2 1
2 1
2 2
2
2
1
1 1
2
1
1
n
k
n
k k
n
n





cu ajutorul c!rora definim punctele aleatoare:
( ) ( ) ( )
( )
i
k
i i i
i
M , , , ,
2 1
K , K , , i 2 1 =
din spaiul k+1 dimensional
k
O
. . . 1
.
Dac! din num!rul total de N puncte aleatoare n aparin domeniului V, atunci
este adev!rat! urm!toarea formul! aproximativ!:
N
n
B I .
( fiind cub unitate, atunci este suficient s! se verifice pentru fiecare punct
( ) ( ) ( ) k
i i i
, , ,
2 1
K condiia
( ) ( ) ( )
( )
k
i i i i
B
, , , h
1
2 1
K .

Exemplu: S! se calculeze volumul m!rginit de suprafeele:
( ) ( ) ( )
( ) ( ) ( ) 0 , 5 , 0 5 , 0 5 , 0
5 , 0 5 , 0 5 , 0 2
2 2 2
2 2
= =
+ =
z y x
y x z

Solu&ie: Volumul cerut este numeric egal cu valoarea integralei:
( )

=
V
dxdydz I (5.7)
Deoarece n volumul V: 5 , 2 0 z , introducem urm!toarea variabil!:
5 , 2
z
=
care transform! integrala (5.7) n integrala:

=
V
dxdyd I 5 , 2
unde V este volumul m!rginit de suprafeele:
( ) ( ) ( )
( ) ( ) ( ) 0 , 5 , 0 5 , 0 5 , 0 4 , 0 8 , 0
5 , 0 5 , 0 5 , 0
2 2
2 2 2
= + + =
=
y x
y x

adic! V aparine cubului unitate:
0 ) x ) 1, 0 ) y ) 1, 0 ) ( ) 1.
Genernd pe intervalul [0,1] trei $iruri de numere aleatoare repartizate
uniform, corespunz!tor coordonatelor x, y, (.
66
Alegem punctele pentru care ( ) 0,8 $i punem pentru ele '
2
= 1.
Alegem din aceste puncte ce aparin domeniului V pe acelea pentru care este
satisf!cut! inegalitatea
( ) ( ) ( )
2 2 2
5 , 0 5 , 0 5 , 0 + y x .
Pentru acestea '
1
= 1, iar pentru celelalte '
1
= 0.
Calcul!m ' = '
1
'
2
. Punctele pentru care '

= 1 aparin domeniului V.
N
n
I 5 , 2 = .


5.2 Estimarea num$rului & prin metoda Monte Carlo


Fie (X
1
, X
2
) un vector aleator bidimensional uniform ntr-un p!trat cu latura
egal! cu 2, avnd centrul n origine $i laturile paralele cu axele de coordonate.
Fie un cerc cu centrul n origine, de raz! 1 nscris n acest p!trat.
Se consider! un punct luat la ntmplare n interiorul p!tratului.
Probabilitatea ca punctul s! cad! n interiorul cercului este dat! de raportul
ntre aria cercului $i aria p!tratului.

P((X
1
, X
2
) s! fie n cerc}
4
) 1 (
2
2
2
1

=

= + =
patratului Aria
cercului Aria
X X P

Dac! variabila aleatoare U este uniform! pe (0,1) atunci 2U este uniform! pe
(0,2), iar 2U 1 este uniform! pe (1, 1)
Gener!m dou! numere aleatoare U
1
$i U
2
uniforme $i independente pe (0,1) $i
facem substituia X
1
= 2U
1
1 $i X
2
= 2U
2
1. Dac! not!m cu N num!rul perechilor
(X
1
, X
2
) generate $i cu N
1
num!rul perechilor (X
1
, X
2
) care cad n interiorul cercului,
adic! 1
2
2
2
1
+ X X , atunci ) se poate aproxima prin . / 4
1
N N

Algoritm de generare a num"rului ) prin metoda Monte Carlo:
0. Iniializare RNG
N
1
* 0
1. Genereaz! U
1
uniform pe (0,1) $i calculeaz! X
1
= 2U
1
1.
2. Genereaz! U
2
uniform pe (0,1) $i calculeaz! X
2
= 2U
2
1.
3. Dac! 1
2
2
2
1
+ X X atunci N
1
* N
1
+ 1
Se itereaz! acest algoritm de N ori $i ) se aproximeaz! prin 4N
1
/ N.


67

5.3 Simularea proceselor de stocare

No&iuni de teoria stocurilor

Problema stocurilor este de mare importan! n orice proces de productie. De
rezolvarea ei depinde procesul de productie respectiv.
Procesul de producie conine dou! tipuri de valori materiale:
- valori materiale care intr! n procesul de producie (materii prime,
materiale) ;
- valori materiale care ies din procesul de producie.
Bunul mers al produciei depinde de stocul care o alimenteaz!.
Stocul trebuie dimensionat de a$a manier! nct sa nu fie prea mare $i nici
insuficient.
Stocul din care se aprovizioneaz! producia trebuie dimensionat optim, avnd
pierderi valorice mici.
Stocul care conine produsele rezultate trebuie s! ndeplineasc! acelea$i
condiii.
Rezolvarea acestor probleme se face cu ajutorul modelelor matematice de
teoria stocurilor.
Stocul este o resurs! care are o valoare economic! caracterizat! prin intr!ri
(reaprovizionarea stocului) $i ie$iri care nu sunt ntotdeauna determinate de cerere.
Valoarea stocului S variaz! n timp, ceea ce nseamn! c! S = S(t), t fiind
timpul. Modificarea valorii S la momentul t va fi determinat! de cantit!ile care intr!
$i care ies la momentul respectiv.
Fie a(t) rata intr!rilor n stoc $i b(t) rata ie$irilor din stoc.
Not!m cu r(t) rata cererii la momentul t, care n cele mai multe situaii este
r(t) = b(t).
Not!m S
0
= S(0), unde t = 0 este momentul initial de la care se urm!re$te
evoluia stocului.

+ = dt t b t a S t S )] ( ) ( [ ) (
0


Funciile r(t) $i a(t) nu pot fi ntotdeauna controlabile (ele fiind date), dar
funcia a(t) care caracterizeaz! intensitstea intr!rilor n stoc trebuie aleas! astfel nct
s! realizeze un obiectiv sau o eficien! dorit!. Aceast! eficen! se defin$te n funcie
de ni$te costuri:
- costul de stocare (imobilizarea fondurilor b!ne$ti n materii prime,
cheltuieli de depozitare $i conservare etc);
- costul de lansare (cheltuieli pentru lansareaa comenzilor de reaprovizionare
$i introducerea lor n stoc);
- costul lipsei de stoc (determinat de pierderile cauzate de lipsa materiilor
prime, materiale etc).

68
Eficiena unui stoc de-a lungul unei perioade de timp este o funcional! de
forma:
E = E[a(t), b(t), r(t)]
Funciile a(t) $i b(t) sunt n general cunoscute.
Dac! E este o variabil! aleatoare, atunci se determin! funciile necunoscute
din condiia ca valoarea medie a lui E s! fie optim!.
n majoritatea modelelor de stocare, intrarea n stoc (reaprovizionarea) se face
la momente discrete de timp t
0
< t
1
< .... Intervalele de timp t
i+1
t
i
= T
i
, i = 0, 1, 2, ...
se numesc cicluri de reaprovizionare. ntr-un interval de timp [0, T] pot avea loc mai
multe reaprovizion!ri (mai multe cicluri de reaprovizionare).
Variaia stocului S(t) este determinat! de intr!ri, ie$iri $i de rata cererii.
Ciclurile de reaprovizionare T
i
, i = 0, 1, 2, ... pot fi egale sau nu.
n unele modele de reaprovizionare se pune problema determin!rii lotului
optim de reaprovizionare $i a ciclului optim de reaprovizionare.
Lotul de aprovizionare nu intr! n stoc n momentul cnd a fost lansat, ci dup!
un interval de timp L, numit timp de avans.
Comanda se lanseaz! n momentul cnd stocul a atins un nivel P, numit nivel
de reaprovizionare $i este strict legat! de timpul de avans.
Momentul lans!rii comenzii este momentul cnd nivelul stocului scade la
valoarea nivelului de reaprovizionare.
Totalitatea elementelor care definesc mecanismul de reaprovizionare
constituie ceea ce se nume$te politic! de reaprovizionare. O astfel de politic! poate s!
urm!reasc! loturile de reaprovizionare, ciclurile de reaprovizionare, nivelul de
reaprovizionare, timpul de avans etc. Politica este optim! dac! elementele ce o
caracterizeaz! conduc la eficin! optim! pe intervalul de timp dat.

Modelele de teoria stocurilor se pot clasifica astfel:
1. dup! evoluia n timp (timpul intervine explicit sau nu ), modelele pot fi:
- dinamice,
- statice. .
2. dup! natura aleatoare a elementelor (care nu sunt elemente de decizie), modelele
pot fi:
- stochastice,
- deterministe.
3. dup! domeniile de valori posibile ale unor variabile care intervin n aceste modele,
pot fi:
- cu cerere continu!,
- cu cerere discret!.
Cele mai interesante $i mai apropiate de realitate sunt cele dinamice $i
stochastice.

Modelele de teoria stocurilor sunt asem!n!toare cu cele de teoria a$tept!rii;
sosirile n firele de a$teptare corespund intr!rilor n stoc, iar serviciile corespund
ie$irilor din stoc.
Deosebirea ntre cele dou! tipuri de modele const! n aceea c! sosirile $i
servirile sunt variabile aleatoare cunoscute, n timp ce n teoria stocurilor se cunoa$te
69
numai cererea (care poate fi variabil! aleatoare sau nu) $i se caut! s! se determine o
politic! optim! de reaprovizionare a stocului.

Model de simulare pentru stocarea unui produs

Se pune problema obinerii unor variante privind:
- momentul lans!rii comenzilor
- momentul intr!rii comenzilor
- cheltuielile aferente procesului de reaprovizionare $i meninere a stocului
pentru un singur produs.

Se introduc notaiile:
CS - costul stoc!rii unei unit!i de produs pe unitatea de timp;
CL - costul lipsei produsului din stoc;
CLC - costul lans!rii unei comenzi de reaprovizionare;
TCS - costul total al stoc!rii;
TCL - costul total al lipsei de stoc;
TCLC - costul total al lans!rii de comenzi;
TC - cheltuieli totale legate de procesul de reaprovizionare $i meninerea
stocului;
T - momentul intr!rii comenzii n stoc;
R - cererea din stoc pe unitatea de timp;
NCS - nivelul curent al stocului;
Q - m!rimea optim! a comenzii;
P - m!rimea nivelului de reaprovizionare, astfel nct stocul s! fie suficient
pe perioada timpului de avans;
TA - timpul de avans al lans!rii comenzii;
CEAS - ceasul simul!rii;
NIS - nivelul initial al stocului;
TS - timpul de simulare.

Date de intrare:
- costul stoc!rii CS;
- costul lipsei de stoc CL;
- costul lans!rii unei comenzi CLC;
- m!rimea optim! a comenzii Q;
- m!rimea nivelului de reaprovizionare P;
- nivelul iniial al stocului NIS;
- durata simul!rii DS;

Variabile aleatoare cu repartiii cunoscute (se introduc parametrii):
- cererea R;
- timpul de avans al lans!rii comenzii TA.

Rezultatele simul!rii:
- costul total al stoc!rii TCS;
70
- costul total al lipsei de stoc TCL;
- costul total al lans!rii comenzii TCLC;
- cheltuieli de reaprovizionare $i meninerea stocului TC;
- nivelul curent al stocului NCS.

Iniializ!ri:
TCS = TCL = TCLC = TC = 0.
NCS = NIS, CEAS = 0.

Algoritm de simulare pentru un model cu p"strarea cererii neonorate:
0. Intr!ri. Iniializ!ri.
1. Genereaz! o cerere Q.
CEAS * CEAS + 1.
2. Dac! CEAS > TS transfer la Pas 9.
3. T = CEAS ;
NCS * NCS + Q.
4. NCS * NCS R.
5. Dac! NCS < 0 atunci TCL * TCL NCS * CL.
altfel TCS * TCS + NCS * CS.
6. Dac! P < NCS transfer la pasul 1.
7. Dac! T ) CEAS transfer la pasul 1.
8. TCL * TCL + CLC ;
Genereaz! TA
T = CEAS + TA.
Transfer la pasul 1.
9. TC = TCS + TCL + TCLC
10. Calculeaz! statistici. STOP.

Algoritm de simulare pentru un model care nu p"strez" cerererea
neonorat":
0. Intr!ri. Iniializ!ri.
1. Genereaz! o cerere Q.
CEAS* CEAS + 1
2. Dac! CEAS > TS transfer la pasul 9.
3. T = CEAS ; NCS * NCS + Q.
4. NCS * NCS R
5. Dac! NCS < 0 atunci TCL * TCL NCS*CL;
NCS = 0.
6. TCS * TCS + NCS*CS ;
7. Dac! P < NCS transfer la pasul 1.
8. Dac! T ) CEAS transfer la pasul 1.
9. TCL * TCL + CLC;
Genereaz! TA;
T = CEAS + TA.
Transfer la pasul 1.
10. TC = TCS + TCL + TCLC
11. Calculeaz! statistici. STOP.

71
Exemplu: Model de simulare pentru evitarea lipsei de stoc
Presupunem c! o ntreprindere are dificult!i n a obine un produs sau un
grup de produse. Din acte reiese c! un produs are o frecven! distribuit! astfel:

Cererea zilnic! n
unit. de produs
1 2 3 4 5
Frecvena cererii
n procente
10% 20% 30% 20% 10%

Statistic s-a stabilit c! o comand! la furnizori este satisf!cut! cu o ntrziere
de la 3 pn! la 5 zile. ntrzierea are frecvena distribuit! astfel:

ntrzierea zilnic! la
livrare
3 zile 4 zile 5 zile
Frecvena ntrzierii n
procente
27,5% 50% 22.5%

ntreprinderea poate are dou! posibilit!i:
1. Fixarea unui stoc minimal care dac! este atins s! se declan$eze o
comand! de aprovizionare. Cantitatea ce urmeaz! a fi comandat! este
egal! cu suma cererilor pe ultimele 4 zile (media de ntrziere).
2. +tiind c! media zilnic! este de 3 unit!i $i c! ntrzierea este de 4 zile.
Cantitatea ce se cere este de 3*4=12 unit!i, iar lansarea comenzii se face
cnd nivelul minim al m!rfii este de 12 unit!i.

Rezolvare punctul 1.
Pentru a simula cererea zilnic! n vederea studierii comport!rii stocului la
posibilele rupturi de stoc atribuim cererii valori aleatoare.
Consider!m urm!torul $ir de numere aleatoare: 73, 67, 69, 30, 71, 09, 02, 72,
43, 95, 22, 92, 47, 99, 02, 31, 33, 74.

Cererea Frecven'a Val. nr. asociate
1 10% 01-10
2 20% 11-30
3 40% 31-70
4 20% 71-90
5 10% 91100

Aceste variabile aleatoare determin! cererile:
734 cereri 955 cereri
673 cereri 222 cereri
693 cereri 925 cereri
302 cereri 473 cereri
714 cereri 995 cereri
091 cereri 021 cereri
021 cereri 313 cereri
724 cereri 333 cereri
433 cereri 744 cereri
72

Pentru a simula ntrzierea la livrare vom considera $irul de variabile
aleatoare: 432, 167, 100, 241, 058.

ntrzieri n livrare Frecvena Val nr. Asociate
3 zile 27,5% 1-275
4 zile 50% 276-776
5 zile 22,5% 777-1000

4324 zile
1673 zile
1003 zile
2413 zile
583 zile

Avnd asociate valorile variabilelor aleatoare cererea $i ntrzierea n livrare,
se face studiul rupturii stocului.
Vom considera c! stocul minimal este fixat la 10 unit!i $i c! la nceperea
studiului stocul avea 20 unit!i.

Ziua Cererea Nivelul stocului Valoarea comenzii
- 5 20
1 4 16
2 3 13
3 3 10 3+3+4+5=15 4 zile
4 2 8
5 4 4
6 1 3
7 1 2+15=17
8 4 13
9 3 10 3+4+1+1=9 3 zile
10 5 5
11 2 3
12 5
-2 (ruptura de
stoc)


Deci stocul minim de 10 unit!i este mic.
Noul stoc minim va fi 10+|-2|=12, iar algoritmul se reia.

73

5.4 Simularea proceselor de a(teptare

Teoria a$tept!rii sau teoria firelor de a$teptare se ocup! cu studiul evoluiei
sistemelor care prezint! aglomer!ri (sisteme de a$teptare).
A$teptarea este intervalul de timp dintre momentul cnd a fost solicitat!
servirea $i nceputul procesului de servire.
Studiul unui sistem de a$teptare se face cu ajutorul unui model, care se noteaz!
prescurtat astfel:
ASC: (L; d)
unde:
- A este repartiia timpului de servire dintre dou! sosiri consecutive;
- S este repartiia duratei de serviciu;
- C este num!rul de staii de serviciu;
- L este lungimea maxim! a cozii;
- d este disciplina de serviciu.
Disciplina de serviciu poate fi:
FIFO (primul venit, primul servit);
LIFO (ultimul venit, primul servit);
PS (servire prioritar!);
RA (servire aleatoare).

De exemplu, modelul de a$teptare
Weib(-)Exp(.)1: (/, FIFO)
este caracterizat de sosiri cu repartiie Weibull de parametru -, serviri cu repartiie
exponenial negativ! cu parametru *, sistemul are o singur! staie care asigur! sosirea
clienilor care intr! n sistem, firul de a$teptare poate cre$te indefinit (L = /), iar
regula de servire este primul venit, primul servit.

Sistemele de servire pot fi:

Monocanal

0

Cereri de servire Staie Unit!i servite
(unit!i n firul de a$teptare) (flux de ie$ire)


Serie (sta&iile sunt dispuse succesiv sau n cascad")


Cereri de servire Staii Flux de ie$ire


U U U U U U S
U U U U U U S1 S2 S3 S
N
74
Paralel








Sistemul de a$teptare este complet specificat dac! se cunosc toate elementele.
Pentru un sistem specificat se poate calcula intensitatea traficului pe care-l asigur!
acesta
+ = M(s) / M(,)
unde s reprezint! durata servirii, iar , este intervalul de timp dintre dou! sosiri
consecutive.
Pentru sistemele monocanal prezint! interes gradul de utilizare al staiei de
servire, timpul mediu de servire, num!rul unit!ilor servite pn! la un moment dat $i
starea staiei (liber! sau ocupat!) n orice moment.
Pentru sistemele cu staii n paralel sau serie prezint! interes num!rul mediu de
staii ocupate, gradul de ocupare al fiec!rei staii de servire, timpul mediu de a$teptare
n fiecare staie, num!rul staiilor ocupate la un moment dat.
Pentru firele de a$teptare prezint! interes lungimea curent! $i lungimea
maxim! a cozii, timpul mediu de a$teptare n fir.
Dac! * reprezint! num!rul mediu de sosiri, iar - este num!rul mediu de serviri,
atunci intensitatea traficului este + = * / - .
O problem! dificil de rezolvat const! n validarea modelului.
O metod! simpl! const! n a testa modelul ntr-un caz particular n care soluia
este cunoscut!.
O alt! metod! const! n a compara datele furnizate de model cu rezultatele
obinute prin observarea situaiilor reale similare. Dac! diferenele se ncadreaz! n
limite acceptate, atunci modelul poate fi validat.
n cazul n care ie$irile modelului sunt stochastice se impune aplicarea unor
teste statistice adecvate.
Aplicarea simul!rii pentru studiul sistemelor de a$teptare se recomand!
datorit! elementelor aleatoare care intervin: timpul de sosire, timpul de servire, etc.

n cele ce urmeaz! ne propunem s! simul!m un model de a$teptare de forma:
1 11: (/, FIFO)

Se vor prezenta dou! metode: una bazat! pe ceas variabil, iar cealalt! bazat!
pe ceas constant.
U U U
U
U
U
S1
S2
S
N

75

Modelul cu ceas variabil

Introducem urm!toarele notaii:
ITSC intervalul de timp (aleator) dintre dou! sosiri consecutive;
DS durata servirii (variabil! aleatoare);
TAC timpul de a$teptare al unui client oarecare n fir;
TNS timpul de neocupare al staiei de serviciu de la terminarea unui
serviciu la nceperea altui serviciu;
TTAC timpul total de a$teptare al clienilor;
TTNS timpul total de neocupare al staiei de serviciu;
NS num!rul total de servicii ce trebuie simulate;
CONTS contor care num!r! serviciile.

Variabilele ITSC $i DS sunt variabile de intrare; repartiiile lor se presupun
cunoscute, iar parametrii acestor repartiii sunt parametrii de intrare. NS este de
asemenea parametru de intrare.
Variabilele TAC $i TNS sunt variabile aleatoare de ie$ire, ca $i TTAC, TTNS.
De aici se pot calcula:
- timpul mediu de a$teptare
NS
TTAC
MTAC =
- timpul mediu de neocupare a staiei
NS
TTNS
MTTNS =
La momentul iniial (momentul nceperii simul!rii) sunt satisf!cute
urm!toarele condiii iniiale:
TAC = 0, TNS = 0, TTAC = 0, TTNS = 0, CONTS = 0.
Presupunem c! pentru ITSC $i DS dispunem de generatori care pot fi apelai n
programul de simulare.

Algoritm de simularea unui model cu ceas variabil:
0. Iniializ!ri. Introducerea parametrilor de intrare.
1. Genereaz! ITSC.
2. ITSC * ITSC - TAC.
3. Dac! DS ) ITSC atunci TAC = 0;
TNS = ITSC DS;
TTNS * TTNS + TNS.
Transfer la pasul 6.
4. Dac! DS 2 ITSC atunci TNS = 0;
TAC = DS ITSC;
TTAC * TTAC + TAC.
5. Dac! CONST ) NS transfer la pasul 1.
6. Calculeaz! statisticile.


76

Modelul cu ceas constant

n acest caz, modelul, pe lng! parametrii $i variabilele utilizate n modelul cu
ceas variabil va folosi $i alte variabile $i anume:
TTS - timpul total al sosirilor;
MTS - momentul termin!rii ultimului serviciu;
CEAS - ceasul simul!rii;
C - constant! cu ajutorul c!reia se avanseaz! ceasul;
L - lungimea curent! a cozii (variabil! de tip ntreg);
DS - durata simul!rii (simularea se termin! cnd CEASDS) - aici
nu se folose$te CONST.
n aceste condiii se fac urm!toarele iniializ!ri:
TTAC = 0
TTNS = 0
TTS = 0
MTS = 0
CEAS = 0
L = 0.

Algoritm de simularea unui model cu ceas constant:
0. Iniializ!ri.
Introducerea parametrilor de intrare.
1. Genereaz! ITSC.
2. TTS * TTS + ITSC.
3. CEAS * CEAS + C.
4. Dac! TTS ) MTS atunci L * L + 1;
TAC = MTS TTS;
TTAC * TTAC + TAC.
altfel Transfer la pasul 7.
5. Dac! CEAS ) TTS atunci CEAS * CEAS + C.
6. Genereaz! ITSC;
TTS * TTS + ITSC
Transfer la pasul 9.
7. Dac! L = 0 atunci TNS * TNS MFS;
TTNS * TTNS + TNS;
MTS = TTS.
altfel L * L 1.
8. Dac! CEAS ) MTS atunci CEAS * CEAS + C.
altfel Genereaz! DS; MTS * MTS + DS.
9. Dac! CEAS ) DS atunci transfer la pasul 4.
10. Calculeaz! statistici.

77

5.5 Simularea fiabilit$'ii

No&iuni de baz"

Fiabilitatea
- este un parametru principal al calit!ii oric!rui produs;
- se calculeaz! pe baza comport!rii sistemelor studiate n exploatare.
Controlul de calitate apreciaz! calitatea produsului finit n momentul livr!rii
c!tre beneficiar.
Fiabilitatea apreciaz! comportarea n timp a utiliz!rii produsului.

Definiia fiabilit"&ii (conform Comisiei Electronice Internaionale) este
urm!toarea: o caracteristic! a unui sistem (dispozitiv, produs etc.) exprimat! prin
probabilitatea cu care el ndepline$te o funcie necesar! n condiii date, pe o durat! de
timp dat!.

Definiia defec&iunii: pierderea parial! sau total! sau modificarea acelor
propriet!i ale sistemului care diminueaz! n mod esenial sau conduc la pierderea
complet! a capacit!ii de funcionare.
Momentul apariiei unei defeciuni, timpul de funcionare pn! la apariia unei
defeciuni sau ntre dou! defeciuni sunt variabile aleatoare.

Tipuri de fiabilitate:
- fiabilitate previzional" (proiectat!, precalculat!) este fiabilitatea imprimat!
unui sistem pe baz! de calcule de c!tre proiectant n etapa de concepie a
acestuia, pornind de la caracteristicele componentelor, utilizare, solicit!ri
etc.;
- fiabilitate experimental" (tehnic") determinat! n urma experiment!rii, n
condiii de laborator, a funcion!rii sistemului (produsului) n conformitate
cu normele prev!zute n documentaia tehnic!;
- fiabilitatea opera&ional" (la beneficiar) determinat! n condiii reale de
exploatare, cu luarea n considerare a factorilor interni $i externi;
- fiabilitatea nominal" este prescris! n standarde, norme interne etc.


5.5.1 Indicatori de fiabilitate

Pentru studierea fiabilit!ii unui sistem f!r! rennoire este suficient s! se ia n
considerare durata scurs! de la punerea n funciune a sistemului pn! la defectarea
acestuia, durat! care este o variabil! aleatoare.
Caracteristicile numerice ale variabilei aleatoare se numesc indicatori de
fiabilitate ai sistemului.
Fie T durata de funcionare pn! la defectare a unui sistem $i F(t) funcia de
repartiie a acestei variabile aleatoare.
Probabilitatea ca la momentul prescris s! aib! loc o defectare a sistemului este
78
F(t) = P(T ) t)
Probabilitatea funcion!rii f!r! defeciuni a unui sistem fiabilitatea lui este
dat! de
R(t) = P(T > t)
Funciile R(t) $i F(t) reprezint! probabilit!ile unor evenimente
complementare n sensul teoriei probabilit!ilor.
Comportarea sistemului n jurul unui moment dat este descris! de viteza
instantanee de defectare:
f(t) = dF(t) / dt = dR(t) / dt
care este de fapt densitatea de probabilitate a timpului de funcionare.

Pentru a descrie pericolul de defectare n jurul unui moment dat al unui sistem
aflat n bun! stare la acel moment, se define$te un alt indicator numit rat" de
defectare, definit astfel:
) ( / ) ( ] ) ( /[ )] ( ) ( [ lim ) (
0
t R t f t t R t F t t F t r
t
= + =


sau
) ( / ) ( )] ( 1 /[ ) ( ) ( / ) ( ) ( t R t R t F t F t R t F t r = = =
Integrnd, cu condiia iniial! R(0) = 1, se obine:
R(t) = e

1
0
) ( du u r


Fiabilitatea unui sistem poate fi descris! $i prin caracteristicile numerice ale
variabilei aleatoare timpului de funcionare pn! la prima defectare:
- media timpului de funcionare
m =

0
) ( dt t tf =

0
) ( dt t R
- dispersia timpului de funcionare
D =

0
2
) ( ) ( dt t f m t
- abaterea medie p!tratic! a timpului de funcionare
m = D
- cuantila timpului de functionare

= ) (t F , 0 < . < 1
Media $i dispersia timpului de funcionare pot fi determinate $i experimental.


79
5.5.2 Func&ii care descriu uzura sistemelor

Cele mai multe sisteme se uzeaz! n timp. n teoria fiabilit!ii, uzura include
orice alterare n timp a caracteristicilor sistemului.
Pe baz! experimental! s-a constatat c!, n general, orice sistem parcurge n
evoluia sa trei stadii:
- defectarea timpurie, cnd caracteristicile sale de fiabilitate se mbun!t!esc n
timp;
- durata util! de via!, cnd performanele sistemului r!mn constante;
- uzura, cnd se constat! o sc!dere rapid! a caracteristicilor de fiabilitate.

O exprimare matematic! a uzurii poate fi dat! n termenii ratei de defectare a
unui sistem.
Defini&ie. Un sistem are uzur" pozitiv" dac! funcia sa de fiabilitate este
descresc!toare, ceea ce nseamn! c! fiabilitatea scade n timp.
Defini&ie. Un sistem are uzur" negativ" dac! funcia sa de fiabilitate este
cresc!toare, ceea ce nseamn! c! fiabilitatea cre$te cu vrsta.
Se observ! c! rata de defectare a unui sistem cu uzur! pozitiv! este
cresc!toare, iar rata de defectare a unui sistem cu uzur! negativ! este descresc!toare
n timp.

Nota&ii. Sistemele cu uzur! pozitiv! se noteaz! cu IFR (Increasing Failure
Rate), iar cele cu uzur! negativ! DFR (Decreasing Failure Rate).

Defini&ie. Se nume$te sistem cu uzur" medie pozitiv", sistemul pentru care
funcia
R t
1
ln
1
este cresc!toare n timp $i se noteaz! IFRA (Increasing Failure Rate
Average).
Defini&ie. Se nume$te sistem cu uzur" medie negativ", sistemul pentru care
funcia
R t
1
ln
1
este descresc!toare n timp $i se noteaz! cu DFRA (Decreasing Failure
Rate Average).


5.5.3 Simularea fiabilit"&ii

Problema realiz!rii unor sisteme cu fiabilitate ridicat! n general, $i a
sistemelor tehnice n special este o condiie de prim! importan! n procesul de
proiectare $i fabricaie.
Utilizarea simul!rii ne ajut! la detectarea rapid! a elementelor cu fiabilitate
sc!zut!, care contribuie la defectarea sistemului, determinnd sc!derea siguranei n
funcionare.
Simularea permite estimarea cantitativ! a fiabilit!ii sistemului, rezultatele
fiind de mare importan! n stabilirea structurii $i fiabilit!ii precalculate a
componentelor sale.
80
Descrierea matematic! a fiabilit!ii unui sistem poate fi f!cut! la nivel global,
ignornd structura sistemului, sau la nivel structural, lund n considerare elementele
sistemului $i relaiile dintre ele.
Studiul fiabilit!ii la nivel structural are ca scop s! stabileasc! o relaie ntre
fiabililitatea sistemului $i fiabilitatea componentelor sale.
Pentru a fi mai u$or de studiat, adeseori sistemul se reprezent! sub forma unui
graf.
Nodurile sau vrfurile reprezint! elementele sistemului, iar arcele grafului
reprezint! leg!turile ntre elemente.
Elementele sistemului pot fi conectate ntre ele n serie, paralel, punte sau
combinaii ale acestora.

n cele ce urmeaz! vom considera c! avem un sistem cu n componente $i vom
nota cu R
i
, (i = 1, 2,..., n) funcia de fiabilitate a componentei i, iar cu R
S
funcia de
fiabilitate a sistemului.
Pentru simplificarea exprim!rii vom asocia fiec!rei componente i,
(i = 1, 2,..., n) o variabil! binar! x
i
(i = 1, 2,..., n).

=
z! functionea nu elementul dac! 0,
z! functionea elementul dac! , 1
i
x
X = (x
1
, x
2
, , x
n
) este vectorul de stare

p
i
= P(x
i
= 1), q
i
= P(x
i
= 0)
q
i
= 1 - p
i
= n i q p
i i
, 1 , 1 = =

S = starea sistemului

=
za functionea nu sistemul daca 0,
za functionea sistemul daca 1,
S

R = P(S=1) = fiabilitatea sistemului (realiability)
F = P(S = 0) = failure

Leg!tura dintre starea sistemului $i starea componentelor este dat! de o funcie
boolean! numit! func&ie de structur": S = 3 (x
1
, x
2
, ..., x
n
).

Fiabilitatea sistemului depinde fiabilitatea componentelor.
Leg!tura dintre fiabilitatea sistemului $i fiabilitatea componentelor este dat! de
funcia R = h(p
1
, p
2
, ..., p
n
).

81
Deosebim 3 tipuri de sisteme:

1. Sisteme serie: sistemul funcioneaz! dac! $i numai dac! toate
componentele funcioneaz!.

Funcia de structur! este: 3 (x) =
n
x x x K
2 1
= min{x
1
, x
2
, ..., x
n
}.
Funcia de fiabilitate a sistemului: R = P(S = 1) = ( )

= =
= =
n
i
i
n
i
i
p x P
1 1
1 .

2. Sisteme paralele: sistemul funcioneaz! dac! $i numai dac! cel puin
una din componentele sale funcioneaz!.

Funcia de structur! este: 3 (x) =
n
x x x K
2 1
= max{x
1
, x
2
, ..., x
n
} care
se poate reduce ca cazul precedent prin negarea variabilei de stare:
n
n
x x x x x x S = = K K
2 1
2 1

ceea ce nseamn! c! sistemul nu funcioneaz! dac! nici una din componentele
sale nu funcioneaz!.
De aici se poate deduce probabilitatea de defectare a sistemului notat! cu F :
( ) ( )

= =
= = = = =
n
i
i
n
i
i
q x P S P F
1 1
1 1 , unde q
i
= 1 - p
i
.
( )

=
= =
n
i
i
p F R
1
1 1 1

3. Sisteme complexe (sisteme punte)


82
5.5.4 Propriet"&i structurale ale sistemelor coerente

Defini&ie: Un sistem este coerent dac! funcia sa de structur! este cresc!toare
$i fiecare component! este important!.

Defini&ie: Componenta i a unei funcii de structur! este nensemnat" dac! 3
este constant! n
i
x , adic!:

3(1
i
, X) = 3(0
i
, X),

unde
(0
i
, X) = (x
1
, x2, , x
i-1
, 0, x
i+1
, , x
n
)

Propozi&ie: Fie un sistem coerent cu n componente avnd funcia de structur!
3, atunci:

n
x x x K
2 1
3(X) ) x
1
x
2
. . . x
n
, x
i
{0,1}

Aceast! propoziie subliniaz! faptul c! performana unui sistem coerent este
m!rginit! inferior de performana sistemului serie $i superior de performana
sistemului paralel.

Propozi&ie: Fie 3 funcia de structur! a unui sistem coerent. Atunci au loc
inegalit!ile:
) ( ) ( ) ( Y X Y X
dac! structura sistemului este de tip paralel $i
) ( ) ( ) ( Y X Y X
dac! structura sistemului este de tip serie.

Propozi&ie: Fie 3 funcia de structur! a unui sistem cu n componente. Atunci
are loc urm!toarea identitate:

3(X) = x
i
3(1
i
, X) + (1 - x
i
)3(0
i
, X), i = 1, 2, , n

Not!m cu C = {1, 2, ..., n} mulimea componentelor sistemului.

Defini&ie: Se nume$te drum, un vector X pentru care 3(X) = 1 $i i corespunde
mulimea C
1
(X).
Un drum minim este o mulime minim! de elemente a c!ror funcionare
asigur! funcionarea sistemului.

Defini&ie: Se nume$te t"ietur", un vector X pentru care 0 ) ( = X $i i
corespunde mulimea C
0
(X).
O t!ietur! minim! este o mulime care conine un num!r minim de elemente a
c!ror defectare cauzeaz! defectarea sistemului.
83
Not!m:
( ) { }
( ) { }drum 1 |
taietura 0 |
1
0
= =
= =
i i
i i
x x X C
x x X C


1) La sistemele serie avem t!ieturi:
( ) { } { } { }
n
x x X C , ,
1 0
K = = n t!ieturi
2) La sistemele paralele avem t!ieturi:
( ) { }
n
x x X C , ,
1 0
K = =1 t!ietur!
3) La sistemele complexe avem t!ieturi:
( ) { } { } { } { } { }
2 5 3 4 5 1 4 2 3 1 0
, , , , , , , , , x x x x x x x x x x X C =

4) La sistemele serie avem drumul:
( ) { }
n
x x X C , ,
1 1
K = drum minim
5) La sistemele paralele avem drumurile:
( ) { } { } { }
n
x x X C , ,
1 0
K = = n drumuri.
6) La sistemele complexe avem drumurile:
( ) { } { } { } { }{ } { }
2 5 3 4 3 4 5 1 4 2 3 1 1
, , , , , , , , , , x x x x x x x x x x x x X C =

( )
( )
( )
2 5 3 4 5 1 4 3 2 1 5 1
2 1 1
2 1 1
, ,
, ,
, ,
x x x x x x x x x x x x
x x x x x
x x x x x
c
n n p
n n s
=
=
=
K
K K
K K


O evaluare numeric! aproximativ! a funciei de fiabilitate a sistemului poate fi
realizat! n asemenea situaii printr-o metod! experimental! , care const! n generarea
unor st!ri posibile ale sistemului (cunoscnd funciile de fiabilitate ale
componentelor) $i evalund de fiecare dat! performana sistemului.
Raportul dintre num!rul situaiilor n care sistemul funcioneaz! $i num!rul
total de simul!ri reprezint! o estimaie a funciei de fiabilitate a sistemului.
Precizia estim!rii depinde de num!rul de simul!ri realizate.

Pe baza acestor consideraii, a noiunilor introduse mai sus $i presupunnd
independena componentelor sistemului din punct de vedere al defect!rii, algoritmul
de simulare se prezint! astfel:
84

Algoritm de simulare:
0. Iniializare RNG.
Iniializare algoritm pentru generarea fiabilit!ii componentelor.
Intrare parametri.
1. Calcularea funciei de structur! a sistemului cu algoritmul FIAB1.
2. Generarea fiabilit!ilor componentelor p
i
, i = 1, 2, ..., n cu algoritmul
FIAB2.
3. Calcularea fiabilit!ii sistemului cu algoritmul FIAB3.


Algoritmul pentru calculul func&iei de structur" a sistemului

Sistemele a c!ror structur! nu poate fi, n general, redus! la combinaii de tip
serie sau paralel (structuri elementare) le numim sisteme complexe.
n cazul sistemelor complexe, determinarea funciei de structur! devine o
problem! dificil!. Un asemenea algoritm, pe care l-am numit FIAB1, pentru un sistem
cu n componente reprezentat sub forma unui graf cu k noduri, se prezint! astfel :

Algoritm pentru calculul func&iei de structur" (FIAB1):
0: Intrare matrice asociat! sistemului (matricea conexiunilor) [C]
kk
.
1: Se adun! la matricea C matricea identitate de ordinul k.
2: Se nl!tur! prima coloan! $i ultima linie a matricei obinute.
3: Calculeaz! det D
k-1
asociat matricei r!mase folosind operaiile de sum!
$i produs boolean.
3 = D
k-1



Algoritmul pentru calculul fiabilit"&ii componentelor

Pe baza datelor obinute n urma ncerc!rilor de durat!, pe componente,
privind variaia parametrilor acestora cu solicitarea $i timpul, se determin! densit!ile
de probabilitate asociate componentelor sistemului.
Cunoscnd funciile de fiabilitate ale componentelor, algoritmul de generare,
denumit FIAB2, se prezint! astfel :

Algoritm pentru calculul fiabilit"&ilor componentelor (FIAB2):
0: Iniializare RNG.
Iniializeaz! algoritmii pentru generarea fiabilit!ii componentelor.
Intrare parametri corespunz!tori funciilor de fiabilitate ale
componentelor.
1: Genereaz! numere aleatoare uniforme pe (0,1).
2: Genereaz! o valoare de selecie p
i
(i = 1, 2, ..., n) corespunz!toare
componentei i.


85
Algoritmul pentru calculul fiabilit"&ii sistemului

Calculul fiabilit!ii unui sistem complex este o problem! dificil! care conduce
la un volum mare de munc! $i este greu de algoritmizat. n asemenea cazuri, o
evaluare numeric! a funciei de fiabilitate poate fi realizat! printr-o metod! Monte
Carlo, cu ajutorul calculatorului.
n ipoteza independenei defect!rii componentelor sistemului, fiecare
component! poate fi n una din cele dou! st!ri: funcioneaz! sau este defect!, iar
algoritmul, denumit FIAB3, se prezint! astfel

Algoritm pentru calculul fiabilit"&ilor sistemului (FIAB3):
0: Iniializeaz! RNG.
Iniializeaz! algoritmul pentru calculul funciei de structur! 3.
Iniializeaz! algoritmii pentru generarea fiabilit!ilor componentelor
p
i
(i = 1, 2, ..., n)
Intr!ri: parametri densit!ilor de probabilitate corespunz!toare
componentelor sistemului.
k * 1
1: Calculeaz! funcia de structur! 3 cu algoritmul FIAB1.
2: Genereaz! p
k
cu algoritmul FIAB2 .
3: Genereaz! U
k
~ U(0,1)
4: dac! U
k
< p
k
atunci x
k
= 1, altfel x
k
= 0
5: k * k +1 dac! k n trece la pasul 2, altfel trece la pasul 6.
6: S = 3(x
1
, x
2
, , x
n
)


Fiabilitatea sistemului se obine ca fiind:
N
S
R
n
i
i
=
=
1

unde N depinde de precizia cerut! $i reprezint! num!rul de simul!ri efectuate cu
algoritmul de mai sus.


Aplica&ii ale teoriei bayesiene n fiabilitate

Funcionarea unui sistem este influenat! de o mulime de factori. Influena
acestor factori este diferit!. De mare importan! pentru funcionarea unui sistem este
cunoa$terea factorilor care au o influen! semnificativ! asupra sistemului.
Obinerea unor informaii privind influena unor factori asupra funcion!rii
sistemului nainte de efectuarea unor ncerc!ri de fiabilitate se poate realiza folosind
metode bayesiene.

n contextul teoriei fiabilit!ii se pune problema estim!rii bayesiene a
parametrilor legii de repartiie a timpului de funcionare sau a indicatorilor de
fiabilitate dac! nu exist! o lege de repartiie a timpului de funcionare.
86

Teorema lui Bayes.
Dac! A
1
, A
2
, , A
n
formeaz! un sistem complet de evenimente, atunci pentru
orice eveniment A, avem:
) ( ) / ( ... ) ( ) / ( ) ( ) / (
) ( ) / (
) / (
2 2 1 1 n n
i i
i
A P A A P A P A A P A P A A P
A P A A P
A A P
+ + +
= ,
pentru i = 1, 2, , n.
Demonstra&ie.
Aplicnd formula de nmulire a probabilit!ilor, se obine:
) / ( ) ( ) ( A A P A P A A P
i i
=
) / ( ) ( ) (
i i i
A A P A P A A P =
De aici rezult! c!

) (
) / ( ) (
) / (
A P
A A P A P
A A P
i i
i
=
Aplicnd formula probabilit!ii totale, se obine:
) ( ) / ( ..... ) ( ) / ( ) ( ) / ( ) (
2 2 1 1 n n
A P A A P A P A A P A P A A P A P + + + =
care nlocuit! mai sus conduce la formula lui Bayes.


Observa&ie. Dac! se cunosc probabilit!ile P(A
i
) $i P(A / A
i
) unde A este un
eveniment oarecare, atunci probabilitatea evenimentului
i
A , $tiind c! A s-a realizat
este dat! de formula lui Bayes.


n locul evenimentelor A
i
vom considera cauze (ipoteze) notate cu H
i
,
constituind un model adecvat pentru o situaie practic!.
Evenimentul A este interpretat ca realizarea unei situaii practice, iar
probabilit!ile P(H
i
) sunt cunoscute $i se numesc probabilit!i apriori ale diferitelor
ipoteze.
Pe de alt! parte, cauza H
i
realizeaz! evenimentul A cu probabilitatea P(A / H
i
),
aceste probabilit!i fiind $i ele cunoscute.
+tiind c! evenimentul A s-a produs, formula lui Bayes permite calcularea lui
P(H
i
/ A), care se numesc probabilit!i aposteriori.
Cu alte cuvinte, $tiind c! evenimentul A s-a produs, care este probabilitatea ca
acest fapt s! se datoreze cauzei H
i
.

Exemplu.
Defeciunile unor arbori de transmisie sunt datorate n 25% din cazuri
cuplurilor aplicate $i n 75% aceste defect!ri se datoreaz! montajului. Printre
defect!rile datorate cuplurilor foarte puternice, 20% antreneaz! ruperea arborilor, n
timp ce doar 5% dintre defectele de montaj au aceea$i consecin!. Constatnd o
ruptur! de arbore, se poate determina probabilitatea ca ea s! se datoreze unei
suprasolicit!ri ?
Solu&ie:
87
Pentru rezolvare se noteaz! cu
A = evenimentul care const! n ruperea arborelui
$i cu
H
1
prima cauz! (cuplurilor aplicate suprasolicit!rii)
H
2
a doua cauz! (gre$elilor de montaj) a ruperii.
Cum
P(H
1
) = 0,25
P(H
2
) = 0,75
P(A / H
1
) = 0,20
P(A / H
2
) = 0,05
$i se obine
571 , 0
) / ( ) ( ) / ( ) (
) / ( ) (
) / (
2 2 1 1
1 1
1
=
+
=
H A P H P H A P H P
H A P H P
A H P
ceea ce nseamn! c! este mai mare probabilitatea ca ruperea s! se produc! datorit!
primei cauze, care const! n suprasolicitare.


88
ANEX

IMPLEMENTRI C/ C++



n acest anex prezentm implementri C/C++ ale algoritmilor prezenta#i n
capitolele anterioare.


1. Generarea numerelor aleatoare

# include <iostream.h>
# include <conio.h>
# include <math.h>
# include <iomanip.h>
# include <stdlib.h>
float x[5000];
int n;
void scrie( float x[],int n){
for (int i=0;i<n;i++)
cout<<"x["<<i<<"]="<<x[i]<<endl;
}

void testhi2() {
int l=13,nr[14];
float hi2=0,hi2t=3.841;
for (int i=1;i<=l;i++)
nr[i]=0;
for (i=0;i<n;i++)
{ int k=1;
while ( x[i]>=k/float(l) )
k++;
nr[k]++; }
for (i=1;i<=l;i++)
hi2 += (nr[i]-n/float(l))*(nr[i]-n/float(l));
hi2 /= n/float(l);
cout<<"Statistica hi2="<<hi2<<endl;
if (hi2<hi2t)
cout<<"TESTUL ESTE CORECT"<<endl;
else
cout<<"TESTUL ESTE GRESIT"<<endl;
getch();
}

float F(float x) {
if (x<=0) return 0;
else
if(x>1) return 1;
else return x;
}
float max(int n,float x[ ]) {
float m=0;
for (int i=1;i<=n;i++)
89
if (m<x[i])
m=x[i];
return m;
}

void gen1() //metoda patratului din mijloc
{int a=1,b=10;
float media=0,dispersia=0;
x[0]=69;
for (int i=0;i<n-1;i++)
x[i+1]=floor(x[i]*x[i]/pow(b,a))-
floor(x[i]*x[i]/pow(b,3*a))*pow(b,2*a);
for (i=0;i<n;i++){
x[i]/=pow(b,2*a);
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<"Metoda patratului din mijloc:"<<endl;
//scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();
testhi2();
}

void gen2() {
//metoda generatorului multiplicativ congruential
float media=0,dispersia=0,a=125,M=2796203;
x[0]=314159;
for (int i=0;i<n-1;i++)
x[i+1]=fabs(a*x[i]-M*floor(a*x[i]/M));
for (i=0;i<n;i++) {
x[i]/=(float)M;
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<endl<<"Metoda generatorului multiplicativ
congruential:"<<endl;
//scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();
testhi2();
}
void gen0() //generatorul sistemului
{float media=0,dispersia=0;
int m=100;
randomize();
for (int i=0;i<n;i++)
{
90
x[i]=random(m)/float(m);
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<endl<<"Folosind generatorul sistemului:"<<endl;
//scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();testhi2();
}
void main() {
clrscr();
cout<<"Numarul de generari: ";
cin>>n; cout<<endl;
gen1();
gen2();
gen0();
}


2. Generarea variabilei exponen#ial negative prin metoda invers$

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
/*algoritm
0.Initializare RNG();
Intrare v=2;
1.Genereaza U uniform pe (0,1);
2.X=-ln(U)/l;*/
float x[5000],media,disp;
int n,i;

float RNG() {
return (random(999)+1)/1000.0;
}

float Exp_neg(float l) {
float U=RNG();
return -log(U)/l;
}

void main(){
clrscr(); randomize();
cout<<"n=";cin>>n;
for(int i=0;i<n;i++)
x[i]=Exp_neg(1);
//calculez media si dispersia
for(i=0;i<n;i++)
media+=x[i];
media/=n;
91
for(i=0;i<n;i++)
disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
getch();
}


3. Generarea variabilei Weibull prin metoda invers$

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

/*algoritm
0.Initializare RNG();
Intrare v=2;
1. Genereaza U uniform pe (0,1);
2.X=pow(-ln(U),1/v);*/

float x[5000],media,disp;
int n;

float RNG() {
return (random(999)+1)/1000.1;
}

float Weibull(float v) {
float u=RNG();
return pow(-log(u),1/v);
}

void main() {
clrscr(); randomize();
cout<<"n=";cin>>n;
for(int i=0;i<n;i++)
x[i]=Weibull(2);
//calculez media si dispersia
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++)
disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
getch();
}

92

4. Generarea variabilei Binomial$ prin metoda invers$

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

int x[5]={0,0,1,2,3};
float p[5]={0,0.421875,0.421875,0.140525,0.015725},F[5];
int v[5000],n;
float media,disp;

float Rng(){
float r;
do r=random(100)/100.0; while (r==0);
return r;
}

int Bin_inv() {
int j=0;
//F[0]=0;
for (int k=1;k<=4;k++)
for (int i=1;i<=k;i++)
F[k]+=p[i];
float U=Rng();
do {
j++;
} while (F[j]<U);
return x[j];
}


void main() {
clrscr(); randomize();
cout<<"Nr. generari: "; cin>>n;
for (int i=0;i<n;i++) {
v[i]=Bin_inv();
media+=v[i];
}
media/=n;
for (i=0;i<n;i++)
disp+=(v[i]-media)*(v[i]-media);
disp/=n;
cout<<"Media de selectie este "<<media;
cout<<"\nDispersia de selectie este "<<disp;
getch();
}

93

5. Generarea variabilei N(0,1) prin metoda respingerii

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

float x[5000],media,disp;
int n;

float RNG() {
return (random(999)+1)/1000.0;
}

float Norm(){
float U,Y;
do{
Y=-log(RNG());
U=RNG();
}
while (U>exp(-Y*Y/2+Y-0.5));
if (RNG()<0.5)
return Y;
else
return -Y;
}

void main(){
int i;
clrscr(); randomize();
cout<<"n=";cin>>n;
for(i=0;i<n;i++)
x[i]=Norm();
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++)
disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"media="<<media;
cout<<endl<<"dispersia="<<disp;
getch();
}


94

6. Generarea variabilei aleatoare N(0,1) prin metoda polar$

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

float x[5000],media,disp;
int n;

float RNG() {
return (random(999)+1)/1000.1;
}

float normala() {
float v1,u1,v2,u2,Us,Vs,R;
u1=0;u2=1;
v1=-sqrt(3/M_E);v2=sqrt(3/M_E);
do
{
Us=u1+(u2-u1)*RNG();
Vs=v1+(v2-v1)*RNG();
R=Vs/sqrt(Us);
}while(log(Us)+(R*R)/3>0);
return R;
}

void main() {
clrscr(); randomize();
cout<<"n=";
cin>>n;
for(int i=0;i<n;i++)
x[i]=normala();
//calculam media si dispersia
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++)
disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
}

95

7. Generarea vectorilor aleatori uniformi prin metoda invers$

# include <stdlib.h>
# include <math.h>
# include <iostream.h>
# include <conio.h>

float x[5000],y[5000],a,b;
int n;

float Rng();
void Vect(float a, float b, float &X, float &Y);

void main() {
clrscr(); randomize();
a=1; //cout<<"a=";cin>>a;
b=1; //cout<<"b=";cin>>b;
n=5000;
float media_x=0, media_y=0, dispersia_x=0,
dispersia_y=0, X,Y;
for (int i=0;i<n;i++){
Vect(a,b,X,Y);
x[i]=X;
media_x+=x[i];
y[i]=Y;
media_y+=y[i];
}
media_x/=n;
media_y/=n;
for (i=0;i<n;i++) {
dispersia_x+=(x[i]-media_x)*(x[i]-media_x);
dispersia_y+=(y[i]-media_y)*(y[i]-media_y);
}
dispersia_x/=n;
dispersia_y/=n;
cout<<"Media generarilor:
("<<media_x<<","<<media_y<<")"<<endl;
cout<<"Dispersia generarilor:
("<<dispersia_x<<","<<dispersia_y<<")"<<endl;
getch();
}

float Rng() {
float r;
do {
r=random(100)/(float)100;
} while (r==0);
return r;
}

void Vect(float a, float b, float &X, float &Y) {
float U;
U = Rng();
X = (-b+sqrt(b*b+4*U*a*(a+b)))/2/a;
96
U = Rng();
Y = (-a*X+sqrt(a*a*X*X+U*b*(2*a*X+b)))/b;
}


8. Calculul integralei duble ( )

+
D
dxdy y x
2 2
prin metoda Monte Carlo

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

int N=5000;
float I;

float F(float x,float y){
return x*x+y*y;
}

float RNG() {
float r;
do {
r=random(1000)/1000.;
} while (r==0);
return r;
}
void main() {
clrscr(); randomize();
float x,y;
for (int i=1;i<=N;i++){
x = RNG();
y = RNG();
if ((x>=0.5)&&(x<=1)&&(y>=0)&&(y<=2*x-1))
I += F(x,y);
}
cout<<"Valoarea aproximativa a integralei este "<<I/N;
getch();
}

9. Calculul integralelor definite ( )

b
a
dx x f prin metoda Monte Carlo

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

int N=5000;
float I,a=1,b=M_E;

float F(float x) {
return log(x);
}

97
float RNG() { float r;
do {
r=random(1000)/1000.;
} while (r==0);
return r;
}

void main() {
clrscr(); randomize();
float x;
for (int i=1; i<=N; i++) {
x=a+(b-a)*RNG();
I+=F(x);
}
cout<<"Valoarea aprox. a integralei este "<<I*(b-a)/N;
getch();
}


10. Simularea stocurilor

# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
# include <iomanip.h>

int c[101], s[101] ;

int Cerere();
int Intarziere();

void main() {
clrscr(); randomize();
int nz=20,stoc_min=13,i,j,k,com;
s[0]=20;
int cant=0; //ziua in care vine comanda anterioara
cout<<endl<<"Ziua Cerere Nivel stoc";
cout<<endl<<"--------------------------";
cout<<endl<<" -- -- "<<s[0];
for (i=1; i<=nz; i++) {
c[i]=Cerere();
s[i]+=s[i-1]-c[i];
if ((s[i-1]<=stoc_min)&&(i>cant)) {
k = Intarziere(); com=0;
if (i>=4) for (j=i; j>=i-3; j--) com+=c[j];
else {
for (j=i; j>=1; j--) com+=c[j];
for (j=1; j<=4-i; j++)
com+=Cerere();
}
cout<<" Intarzie "<<k<<" zile "<<" o comanda de
"<<com<<" produse";
s[i+k]+=com;
cant=i+k;
}
98
cout<<endl<<setw(3)<<i<<" "<<c[i]<<" "<<s[i];
if (s[i]<0) { cout<<endl<<"Lipsa de stoc -> trebuie
modificat stocul minim";
getch(); exit(1); }
}
getch();
}

int Cerere() {
int i=random(100)+1;
if ((i>=1)&&(i<=10)) return 1;
if ((i>=11)&&(i<=30)) return 2;
if ((i>=31)&&(i<=70)) return 3;
if ((i>=71)&&(i<=90)) return 4;
return 5; }

int Intarziere(){
int i=random(1000)+1;
if ((i>=1)&&(i<=275)) return 3;
if ((i>=276)&&(i<=775)) return 4;
return 5;
}


11. Generarea variabilei aleatoare Pearson XI

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

int n;
float x[5000],media,disp;

float RNG(){ return (random(999)+1)/1000.0; }

float Pearson(float miu) {
float Lambda;
Lambda=-1/miu*log(RNG());
return -1/Lambda*log(RNG());
}

void main() {
int i;
clrscr(); randomize();
cout<<"n=";
cin>>n;
for(i=0;i<n;i++) x[i]=Pearson(1);
for(i=0;i<n;i++) media+=x[i];
media/=n;
for(i=0;i<n;i++) disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"media="<<media;
cout<<endl<<"dispersia="<<disp;
getch(); }
99

12. Generarea variabilei Weibull folosind metode particulare

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

float media,disp;

float RNG() {
float r;
do { r = random(1000)/1000.0; } while(r==0);
return r;
}

float weibull(float niu) {
float u1,u2,v1,v2,R,Us,Vs;
u1=0;
u2=pow((niu-1)/niu,(niu-1)/(2+niu))*exp(-(niu-
1)/(2*niu));
v1=0;
v2=pow((niu+1)/niu,(niu+1)/(2*niu))*exp(-
(niu+1)/(2*niu));
do {
Us = u1+(u2-u1)*RNG();
Vs = v1+(v2-v1)*RNG();
R=Vs/Us;
}
while(log(Us)+0.5*pow(R,niu)-0.5*log(R)>0);
return R;
}

void main() {
int i,n;
float x[10000],abat;
clrscr();
cout<<"Cate numere generam ? "<<endl;
cin>>n;
for(i=0;i<n;i++) x[i]=weibull(2);

//se calculeaza media&dispersia
for(i=0;i<n;i++) media += x[i];
media/=n;
for(i=0;i<n;i++)disp += (x[i]-media)*(x[i]-media);
disp/=n;
abat=sqrt(disp);
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
cout<<endl<<"Abaterea:"<<abat;
getch();
}
100

BIBLIOGRAFIE



1. Barbu Gh., Modele de simulare cu aplicaii n fiabilitate, Editura Tehnic,
Bucure#ti, 1992.
2. L.Devroye, Non-Uniform Random Variate Generation, Springer-Verlag,
New York, 1986.
3. Gorunescu F., Prodan A., Modelare stochastic! $i simulare, Editura
Albastr, 2001.
4. Ra&iu Camelia-Suciu, Modelarea $i simularea proceselor economice,
Editura Didactic #i Pedagogic, Bucure#ti, 1995.
5. Rdceanu Eduard, Limbaje de simulare, Editura Militar, Bucure#ti, 1981.
6. Vduva Ion, Modele de simulare cu calculatorul, Editura Tehnic,
Bucure#ti, 1977.
7. Vduva Ion #i al&ii, Simularea proceselor economice, Editura Tehnic,
Bucure#ti, 1983.
8. K. Velten, Mathematical Modeling and Simulation, John Wiley and Sons,
New York, 2009.
9. Ziegler P.B., Theory of Modelling and Simulation, John Wiley and Sons,
New York, 2000.

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