Sunteți pe pagina 1din 21

I.

Repartifii discrete

in modelarea
unorproblemepracticeintervinfrecventvariabilealeatoarecu repartilii
caresuntdedusefie pe calelogic6,fie ca urmarea verificirii uneiipotezeprivind concordanfa
dintre repartiqiaempiricl gi cea teoretici. in continuarevom prezentac6tevadin cele mai
frecventintdlniterepartifii?naplicaliileeconomice,
industriale,
frziceqi studiul fenomenelor
naturii.

1.1. Generareo numerelor uleatoore dapd o reparti(ie binomiald


Definilia 1.' Spunem-'cA'bvariabildateatoare
X areo distribufieLrincmialacu
parametriin qip dacdpentruoricefr: 0,1,2,... , n, avem:
r(x = t)= cl - po -qo-r,
in care,r esteun intregpozitiv,0 < p < 1 $i q : | - p.
Seconstatlc[ variabilaaleatoareXsepoatescriesubforma:
-a o,
X =LX
t= l

unde,

(t
Xr=l

o \

variabilaaleatoarecare ia valoareaI cdnd s-a


l, X* rcprezentdnd
\p t- P )
realizatevenimentulI gi 0 in cazcontrar.
qi P(AD- p, k: 0,1, 2, ... , n iarX
Dacd,
41,42, ... ,lo suntevenimente
independente
reprezinti numirul evenimentelor
carese realizeazl"atunciX are distrbu{iebinomialdcu
parametrin $i p. in particular,dacl I esteun evenimentlegat de o anumitdexperientl
aleatoaregi probabilitatea
ca A si se produci cdndefectuimo singurl dati experienfaeste
:
P(A) p, atunci numlrul X al realiz6rilorlui A chndefectudmde r ori experienla are
distribu{iebinomialdcu parametriin Sip.
DacI o variabilf,aleatoare
X aredistribufiebinomialdcu parametriin qi p atunci
gi
valoareamedie dispersialui Xsunt:

M(E: np,d(n : npq.


Definilia2.'Spunemcd o variabili aleatoare
Xare o distribu{iebinornialdcu exponent
negativcu parametriim gi p dacdpoatelua valorilem, m + l, ... $i probabilitateaca sd se
producievenirnentul
{X= *} estedati derelafia:
f(X = k) = Ci-r'' p'' qo-^,k )- m,
i nca r e nresteunintregpozitiv,0<
:
pI <$ iq : l- p .
pdn6la ceade a m-a realizarea unui evenimentI legatde
O experien{ise'efectueazd
ea.Dacdprobabilitatea
acestuieveniment
cdndsefaceo singuridat[ experientaestep, atunci
numdrul X de efectulri ale experien{eieste o variabili aleatoarecare are o distributie
binomiali cu exponentnegativcu parametriim Sip.

Intr-adevi"evenimentul
a doui evenimente:,, in primele
{X: *} sescrieca intersecfia
fr- I efectulri ale experien{eievenimentull seproducede m - I ori" gi ,, ?na fr-aefectuarea
experienfeise produce1". Probabilitatea
primuluidin acestedoudevenimenteeste(conform
schemeilui Bernoulli):

cir' ' P'-' 'q'-' ,


iar probabititatea
celuide al doileaestep.Deci:
f(X = k)= p.Cirt - pn-t -qr-' = Ci-rt. p^ .qr ^
Daci o variabili aleatoareX are distribufiebinomiali cu e.\pcltsnt negotiv cu
parametriim $ip atuncivaloarea
luiXsunt:
mediegi dispersia

f' n'(x)=#

u(x)=

Legeade reparti{ieBINOMLALAreprezintlschemabilei revenitea cdrei func{iede


reparti{ieareforma:

Ar): cifq" ,
unde: z: reprezintinumlrultotalde bile;
;r = reprezintiinumdrulde bile albe;
q : reprezintlprobabilitatea
de a extrageo bil6 albd;
p: binomialareprezintiprobabilitatea
de a extrageo bil5 neagri.
Dac[ se genercazlun numir I e [0,1] uniform repartizatatuncivom avea:
P{risP): P: xlnAceastiirelafiene permitesi stabilimo analogiein procesulde generarea numerelor
aleatoarecu reparti{iebinomiald.
\
Algoritmul
Pasull-' Seintroducparametriinecesari
simulf-riigi anume:
- N- numdrulde generiri(lungimeagiruluigenerat);
- parametrulru (numdrultotal de bile din urni);
- parametrulp(probabilitatea
de a extrageo bil6 alb[).
Pasul 2.. Se genereazirn numerealeatoare4 e [0,1], ,' : l, 2, -.. , m, uniform
repartizatein [0, l];
Pasul -3.' Se compari fiecare numir generatri cu probabilitatea evenimentului
favorabilp,iar rczultatulcompaririise adun[ la variabilar, carereprezintlnumdrulgenerat,
astfel:
- dacl rispatuncid:l;
- dacd4>patuncid:0;
- se facesuma.r: x * d.
Pasul 4-' Variabilageneratlx1: x;

\
Posul 5.' Se testeaz5daci procesulde generares-a terminat: daci k < ,M se reia
s-aterminat.Cu alte cuvinte,se
algoritmulde la pasul2,\n cazcontrarproc-sulde generare
qirului
generat(ltr).Evidentci in
repettrpaqii2, 3 gi 4 pdn[ cind se atingelungimeadoriti a
=
fiecareiterafiek: l, 2,..., N, variabilageneratixl x.
Funcfiacarerealizeazigenerarea
de numerealeatoarecu repartifie BINOMIALA are
urmitoareaform[ (func1iaesterezolvattr?nlimbajul C++):
void0
,{
int k,n,i,d,m,x;
float r,p;
print("\nGENERAREANUM ERELORALEATOARE CU REPARTJTIEB INOM IA LA ") ;
print("\n");
print('\nDati numarultotaldebile din urna:");
scanf("Yod",&m);
print('\nDati probabilitatea
dea extrageo bila alba:");
/
scanf("o/of',&p);
printf("\nDatinumarulde simulari:");
scan("oZd",&n);
print(l'\r X generatBinomiala");
print('\n");
for(k:l;k<:n;k++)
(
\:
x:0;
fo(i--O;i<m;ii-r)
{
r-(float)(rand0 % I 00)/l 00;
if (r>p)d:0;
.,
lsed:l;
x+:di

print("\n %ol0.5f',r);
printf("o/oI0d",x);

getch0;
clrscr{);
)
girurilorde numerealeatoare
Schemalogici pentrugenerarea
dup[ o repartifieBINOMIALA
esteprezentatiin figura l.

1.2. Generareanumereloraleotoaredupdo repartiyiePoisson

1 2
k "'\
variabilaateatoare
discretdx,(0
P* "')
\Po Pr Pz
de parametruludac\funcyiasa defrecvenldarc formaurmdtoare:

u'" o reparti{iePoisson

= o,l,2,3,...
pt = p(x - *)=
i. "-^,t
Func{iade reparti{iepentrudistribu{iaPoissonareforma:

P(x. *)=7.4' r-^^F(-r)=


"^- kl
Sepoateconstata
cu ugurin{lcI mediagi dispersia
variabileiPoissonsunt:
girespectiv
E(X): l,,
f 1;g:7t.
RepartifiaPoissonesteconsideratd
repartiliaevenimentelbr
rare qi aparefrecventin
modelarea
unorproblemepractice,
cumar fi: procesele
de servirein mas[, firele de a$teptare,
studiul uzurii echipamentelor
etc. Mai precis,X reprezintdnumdrulde evenimenterare care
aparpe unitateade timp (deexemplu,numdrulde sosiriintr-unsistemde a$teptare).
Sepoate
ardtacd intervolulde timp r dintre apartliile consecutive
a doui astfel de evenimenteesteo
variabild exponenlialnegativd de parametru1,. Deci pentru a generaX trebuie sZ,generfury.intervalede timp de sosirer astfelincdt sumalor sd acopere'
intervalul de timp egal cu
unitatea;numdrul/r al acestorvariabileva fi o valoarede selecliea variabilei Poisson.in
concluziet satisface
condilia:
f

l+l

, l.Lr,
Lr,
j=t
j=r
prin inversare
DacI linem seamade formulade generare
a vdriabileiexponenfialede
parametru1,,deducemci parametrul/r satisfacecondilia:
*

*+l

,
llnu
, > -). >llnu,
j=r
j=r
sau,
t

[+l

j=t

j=l

lIu, , e-^>ffu, ,
undea; e(0,1)suntuniformdistribuite.
in concluzie,generareavariabilei aleatoarePoissondiscreteX, de parametru1,, se
poatefacecu urmltorul algoritm,bazatpemetodamultiplicdrii/??/ Yaduva
Algoritm
generatorul
Pasul l.'Se inilializeazd
in (0,1).Se introduceparametrul
G de numerealeatoare
l" qi se calculeazd
L: e'o.SeinilializeazAk:0,P: l;
Pasul2.' Segenere
azdur,e (0,1)qi se ia P : P . up;
Pasul3: DacdP 2 L seia k= k+ I gi setrecela pasul2, in cazcontrarsetrecela pasul4;
Pasul 4: Yaloareavariabilei PoissongeneratdesteX : t. Se repeti pagii 2 qi 3 pdnd se
genereazd
lungimeadoritii a qiruluide valori distribuitePoisson.
Algoritmulesteeficientcdndl, estemic, iar cdndl. estemaregi deciL: e-zestemic,
algoritmulconvergefoartelent(cu probabilitatea
I).

Alte metode??????????
Metodadirectdc,onsti.inumrltoarele:se introducenotatia:

r, =f r(x=r),
k=l

qi se genereazio variabili aleatoareluniform repartizatd,


pe [0,1]. Daci o realizarey a
verificd rela{ia:
P r_r3y<P 1,
atuncidecidemci s-a realizatevenimentul
(X= n).
Metoda asimptoticd

Se introduce probabilitatea p*=T

de-a se produceun evenirnentA Ia prima

incercare.Evident aceasti probabilitatedepindede numdrul de incercdri fixat. Se poate


demonstra
probabilitatea
ci pentruk---+cc
ca evenimentul
I sdserealizezede n ori estedat de
fegeafui Paisson.Simularease faceacumgener6nd
o succesiune
y,,12,...,!t de numere
aleatoareuniformrepartizate
pe [0,1] gi se comparlfiecareli cupr.Dacd.1y<p1 decidernc6
s-a realizatevenimentul
A, iar numirul de realizdrialeevenimentului
I estechiar valoarea
variabilei aleatoarePoisson.
Metodorepartilie i exponenliale
Aceastiimetodi sebazeazd
pe faptulc5 daci 11:\,...,xk,... sunt realizdriale unei
variabileexponential
negativegi daci x* k =l,n reprezintd
morhentele
de aparilieale unui
evenimenf atuncinumirul de realizlri ale evenimentuluipe unitateade timp. se repartizeazd
Poisson.De aici se poatededuceprocedeulpracticpentrugenerareaunei variabile Poisson,
careconstiiin verificareadubleiinegalitili:
l-+l

.Ir.,Z','2
j=r
j=l

Nurnf;rul.Ereprezintiio realizarea variabileialeatoare


X repartizatdPoisson.Evident
procedeulserepeti pentrua obfineo succesiune
de realizlri.
Metoda transformatei i rwerse
In generalreparti{iaexponen{ialiesterepartifiaintervalelorde timp dintre apariliile
succesiveale unor evenimenteintdrnpldtoareindependenterare gi prin urrnare existl o
dualitateintrerepartifiaexponenfialide parametrul, qi repartiliaPoissonde parametru1..
Bazatpe aceastiiobservafiese pot generavalori ale unei variabile aleatoarediscrete
distribuitePoissonde parametrul, utilizdndmetodstransformateiinverse.
GenemtorulpentrudistribufiaPoissoneste:
I

xo= -)-tn(t -y* ),y* . (o,t)nzrrr????????


A

Func{iacare realizeazi generareade numerealeatoarecu repartifie POISSON are


urmdtoareaformd(func{iaesterezolvatlin limbajulC+r):

void poisonQ
{int k,n;floatlan;
doublex,ui;
print("\nGENERAREANUMERELORALEATOARECU REPARTITIEPOISSON") ;
print('\n");
printf("\Dati lambda:");
scanf("o/of
',&lan);
printf("\nDatinumarulde simulari:");
scan("o/od",&n);
printf("\nUi generatPoisson');
print("\n");
for(k:1;k<:n;k++)
(
I

ui: (double)(randQ
%100)ll00;
print("\n % I 0.5f',ui);
x:-log(I -ui)t l/lan;
print("%l0.5lf',x);
)
getchQ;
clrscrQ;
)
I

Schemalogicdpentrugenerarei!
qirurilorde numerealeatoare
dupdo reparti{iePOISSONeste
prezentatiin figtra2,
????????????2???

v'

i
I

L3. Generarea numerelor aleatoare dupd repartigia Hipdtrat


O variabilialeatoare,Yare
distribufia 72 cu n gradede libertatedaci densitateasa de
repartilieeste:
-I
'e 2 p e n t rux > 0 .

Uneori,densitatea
dereparti{ieseia mai general,de forma:

,l

,*,

={

,x

--l

-x2 .e2o'pentru.r>0.

z|.o..t;)

in acestcazdistribufiaaredoi parametri
n gi o (o > 0). Pentruo : I se oblinedefinitia
anterioar[.
DacSo variabilSaleatoare
Xare distribufiadin defini1ie,
atuncivariabilaaleatoareo?
aredistributiaj(r) gi reciproc,dac[ o variabil[aleatoare
f aredistribu{ial(x), atunci \ . ,
o'
aredistribuliadin definifie,;(r).
Valoareamedie gi dispersiacorespunzdtoare
distribu\iei y2 cu n grade de libertate
sunt respectivr gi 2n. Legdturadintre distribu{iaI' ,i distributianormaldeste datd de

+T1fft;.t"il#""ari abitaxoare
dishiuu
o",ro.nu,.(n > l) atunci
liaz' cun grade
densitatea
dereparti{ie
a variabileiI:
x;"
v, :-

'

",8'

tinde cdtredensitatea
de repartifienormali cu parametri0 gi l.
Teorema2.Daci fiecaredin variabilele
aleatoare
independente
X1,X2,...,X, aredistribulie
normal5cu parametri
0 gi l, atuncivariabilaaleatoare
Y -- Xi + Xl +...+ X: are distribu{ia
I'

cu n gradede libertate.

Pentru a generanumrealeatoaredupl o repartifie Z.' cu n gradede libertate gi


abateremediepdtraticio : I sepoateporni,bazatpeteorema2, de la propietateacd un astfel
de numir esteo sum[de z numererepartizate
normalN(0,1),ridicatela pdtrat.
Conformacesteiproprietifi generatorulva fr:
r - \t - t

-rk -

n
\.lt
LLir .i
i=l

e.nr(o,t).

Posul I: Se genereaziz nurnerezi distribuitenormalNe(0,1), i:


abateremedie pitraticl l.
Pasul2: Segenereazd
x* cu generatorul:

1,2,...nde medie 0 qi

xr =lzl .
j=l

I'

in acestcaznumirul.r* astfelcalculat,esteun numdraleatorav6ndlegeade repartifie


cu n gradede libertategi abateremediepatratic[ l.

Func{iacarerealizeazdgenerarea
de numerealeatoare
cu repartifie 7' areurmdtoarea
formd(func{iaesterezolvatiiin limbajulC+-r):
void hipatratQ

t
int i;
float s,y,z;
int k,n;
print('\nGENERAREANUMERELORALEATOARECU REPARTITIEHIPATRAT");
print("\n");
printf('\nDati numarulde simulari:");
scan("7od",&n);
printf('\n Y generat Hipahat");
print("\n");
,/
for(k:l;k<:n;k++)
{'
s:0.;
for(i:0;i<n;i++)
{ z{float)(rand0 % 100/100;
s+:pow((double)a2.);
)
print("\n o/ol0.5f',2);
printf("%10.5f',s);
)
getch0;
clrscr$;)
Schemalogic[ pentrr.lgenerareagirurilor de numerealeatoaredupd o repartilie X2
esteprezentatdin figura3.

l0

rr.

Repartifii continue

11.1"Generareanumerelor aleatoaredupdreportigiaCauchy
O variabil[aleatoareXrepartizath
Cauchyarcdensitatea
dereportiyre
deforma:

.f(*) = n(l+

x2)'

de unde rezultd cdfunclia de repartilie este:


-\

'I'c dt
l(
.F(x )=["ft1a,=: h= = _ la r c t g x * * l= y .
rr_Ll+t- z \
z)
_@

Deoarecefuncfiade repartilieCAUCHY esteo func{ieinversabild,pentrua genera


giruri de numerealeatoarecu aceastiirepartifiese folosegtemetodatransformatei inverse.
Astfel, dac[ se genereazl,
un gir fup] uniform repartizatin [0,1], atunciexisti un numdr.rT
caresatisface
relafia:
F(xr): y*, pentruunyr fixat.
Din ultima egalitate,oblinemgenerotorul:
*r =E\n

-:)

",k

e N' .

in funcqiede dimensiunilemodeluluianalizatgi de ,"oput simuldrii, se va fixa


numirul termenilorsubgiruluifolositin simulareanumericd.
Funcfia care realizeazdgenerureade numere aleatoarecu repartitie Cauchy are
urm[toareaforml (func{iaesterezolyatiin limbajul C++):
void cauchyQ
{
int k,n;doubley,x;
printf("\nGENERAREA
NUMERELORALEATOARECU REPARTITIECAUCH Y") ;
print("\n");
print("\nDati numarulde simulari:");
scanf("%od",&n);
print("\nNumerelegeneratesunt :");
for(k:l;k<:n;k+r)
{
% I 00)/100;
5 (double)(randQ
x:tan(y-l 12.)*3.I 4 I 59;
o/o7.5lf',x);l
print("Vr
getch0;
clrscrQ;
)

T2

Generareanumereloroleatoaredupd reportilia
Variabila aleatoareX arereparti{iaBETA de parametria Ei b, notatd $(a,b), dacd,
densitateaso de repartilre estede forma:

l'-f.-..."-'(r
" - *)o-',0<x <l ,
"r(')--lob,r)'
in rest

[0,
unde:

I-q).
a > o.&> o.
Bb.bj-_(?)'

r(a +D)
iar func\iagantmaf(v:) estedefinit[derelalia:
f(v) =

[*'-'

.e-'dx .

Sepoateardtad C(x)=;J,

O'(X)=

n(x).a

(a + b + t ). (a + b )
Observalie:Estesuficientsi se genereze
independent,
valorile a douf,variabile aleatoareZ.
SiZnderepartifie
T2,respectivcumgingradedelibertate,pentruaoblineprinrelafia:

X_

z^

Z. + Zn'
valorile variabileialeatoare
X repartizateBETA.
Teoremi: DocdXr SiX2 sunt respectivvariabilegommaf(0,1,a), f(O,t,a), atunci variabila
X =-Xt-

Xr+ X,

esteo variabild BETA de parantelri a Si b.

Din aceastiteoremi rezultiicd repartiliaBETA esteinruditi cu repartifia gamma,iar


generareavariabilei aleatoareBETA se reducela generareavariabilei gamma. Deoarece
generarea
variabilelorde tip gammaXr$i X2reprezintd
o problemicomplicatI,s-auconstruit
metodemai simplepentrugenerarea
variabileiBETA. in continuarevom prezentacdteva
astfelde metode.
Metodo1-a: Generarea
variabileiBETA de parametriintregi,o,beN*
Aceastl metodi sebaze,azd
pe urmdtoarea
teoremi.
:
Teoreml: Fie a, b e N* gi n a + b - I. Fie U1 U2,..., Unnumerealeatoare unifurntepe
(0,1), independenteSi notdm U6 S Up1
variabila aleatoareUyo1,
de rong o, are repartilia BETAdeparametri a Si b.
Din aceasti teoremi rezulti urmdtorulalgoritm de generarea variabilei BETA bazatl, pe
variabilauniformi deranga.
Algoritm:
Pasul 0. Se inifializeazdgeneratorulde numerealeatoareuniformepe (0,1). Se introduc
parametri
a,beN*. Secalculeazd
n: d + b - l.
(Jr, lJz,... , (Jn$i
Pasul /. Se genereazd
n numerealeatoare
uniformepe (0,1),independente,
se ordoneazicrescitoracestenumere.

T4

Pasul 2. Numirul generatcu reparti{iaBETA esteX = Up's,unde Uloyeste variabila de rang


egalcu a.
Pasul3. SerepetipagiiI gi 2 pdnecdndseoblinelungimeadoriti a girului generat.

MetodaII-a: Generarca
variabileiBETA de parametripozitivi subunitari a,be(0,1).
Aceastiimetod[ se bazeazlpeurmltoareateorem6.
Teoremi:Dacd0<a<lSi0<b<lriarUrgiUzsuntvoriabilealeatoareuniformepe(0,1)
independente
condisionard
Si dacd V =tlf , f =Ui atunci reportilia variabilei y : JV+T
de V + T < I esterepartrlia BETAdeparametri a Si h.
Algoritmul ce derivl din aceastiteorml pentrugenerarea
variabilei BETA cdnd ambii
parametrisuntsubunitariesteprezentatincontiunare.
Algoritm:
Pasul 0. Se inilializeazl,generatorulde numerealeatoareuniformepe (0,1). Se introduc
parametria,6e (0,I ).
Pasul 1. Se genereazdU6i U2 numerealeatoare
uniformegi independente
pe (0,1), qi se
11
calculeaz[
valorileV =Uf qi T =U! .
Pasul2. DacdV + T> I setrecela pasulL
PasulJ. Numdrulgeneratcu repartiliaBETA esteX =

V + T'

Pasul4.Serepetipagiil, 2 gi 3 pdnecdndseoblinelungimeadoritda qiruluigenerat.


MetodaIII-a: Generarea
variabileiBETA in cazul0 < a < I gi D > l.
d altdmetodi de respingerecarereducegenerareavariabileiBETA la generareavariabilei
uniformesebazeazd
pe urmdtoarea
teorem[.
Teoremi: Dacd Ut Si U2suntvariabilealeatoareunformepe (0,1) independenteSi 0 I a 1
tt

f.,.:

l,b> I,iarV =Uf , T=U!-' atwrcireportgiavariabileiVcondigionatddeV+


T< I este
o repartilie BETA deporametri a Ei b.
Algoritmul ce derivi din aceastiteormdpentrugenerarea
variabileiBETA in cazul 0 < a < I
9i6> I esteurmitorulAlgoritm:
Pasul 0. Se inilializeazilgeneratorulde numerealeatoareuniformepe (0,1). Se introduc
parametria gi b. Seia p : b - l.
Posul 1. Se genereazaUrli Uz numerealeatoareuniformeqi independente
pe (0,1), qi se

calculeazi
valorileV =Ui si r =u! .
Pasul2. DacdV + T> I setrecela pasull.
Pasul-?.Numirul generatcu repartifiaBETA esteX: V.
Pasul4.Serepetdpaqiil, 2 gi 3 p6nIcdndseoblinelungimeadoriti a giruluigenerat.
Eficienfaacestuialgoritmse poateexprimacu ajutorulprobabilit[1iide respingere(pasul2)
careeste:pr: | - a. p(a,b)

15

MetodaIV-a: Genercrea
variabileialeatoareBETA, in cazul c > I gi b > 1, se poatereduce
la generarea
unei variabilenormaleconformteoremeiurmdtoare.
.Teo r e mi.Fie a> l, b > l, A : a - l, B : b - | E i C = A * B : a * b - 2 . Da c d ,
/ r' \' /l -r' \'
\ l= :l l ' l +
f -,tlx

\A )

\B )

l ' c ' s i4 ( r )= s- 2.[(

"'2

\ - - +C/
l,

a tu n cil( x) sft1e( x)
[0,x
,t].

Deoareceli(x)esteproporfionallcu densitatea
de probabilitateBETA de parametria
gi b, iar ft1(.r)este propo(ionali cu densitateanormala tl(!,

^l-'1,
\c zJc
)

,"rulta ci pentru

generarea
variabileiBETA, putemaplica urmdtorulalgoritmbazatpe metodarespingerii,in
ca zu la>lqib>1.
Algoritm:
Pasul 0. Seinitializeazdgeneratorul
de numerealeatoareunifonnepe (0, I ). Secalculeazd:
A: a- l, B = b - | S iC: A + B , L= C. ln C, p = 4 ,

c'

o ={.

Pasul 1. Segenere
azdZ normalenf(O,I ).
Pasul2.SecalculeaziY: p* Z. o.
Pasul3. DacdY <0 sauI> l setrecela pasulI [Itrebuie saia valori pe (0,1)].
t'
Pasul4. Segener
eaz; Ilnormali N(0,1).Dac[ InU > A'"f-L"l * a.n(4\*
, ( B )
'2't'
\A)
respingeperechea(U,I) li se trecela pasul l.in caz contrarnumdrulgeneratcu repartifia
BETA esteX: L
Pasul5. Serepet[paqii1, 2,3 Si4 p6ndcdndseoblinelungimeadoriti a giruluigenerat.
Eficien,taacestuialgoritm se poateexprima prin numlrul mediu de incercdri din pasul 4
pentrua-obfinerea
uneivalori de selec{ieX, careesteaproximatde relalia:
A +B
*=
2-"lA -B
Obsewalie:
Acestalgoritmsepoateimbundtlfiin cazulreparti{ieiBETA simetrice(a: b), dac[ utiliz6m
urmdtoarealemi:
/

^ z\A

"2
.rT
LemE:Func{ia
q(r)=l t - j,
relafia:
,o = A-1, satisface
|
\ 2 -A )

o4

.s o

l (.s o

3
)'
l' - "
<aa fu
)<l
r-.t.--, o,
\-,
8 a _ t2 8 " { -t.[8 " _8 )
,.
z?

Dacda:6, atunciA: B, C = 2A gi testulde la pasul4 revinela U >(q.f .(t-f))^ .ut .


insi deoarece.Y=
revinelaU <q(Q,undefunc{iaqrestedfiniti de lem[.
lti- Z. 6, acesttest
Lemasimplificdtestarea
condilieiU> q(4, oblindndu-se
urmdtorulalgoritm.
Algoritm:
Posul0. Seinilializeazilgeneratorul
de numerealeatoare
uniformepe (0,1). SefixeazdI gi se
calculeazS:
A : a - | Sit : 2A.

t6

Pasull. SegenereazlZnormale
N(0,1)9i seia t =;

.i)
[t
Pasul2.DacL I< 0 sauI'> I setrecela pasulI [Itrebuie saia valoripe (0,1)].
Zo
PasulJ. Segenere
art IJ normalI
N(0,1).DacLU, | - = . setercela pasul6.
8 a -1^,
2'
Pasut4. Dacau ,l - =zo =-: (::l',
& a-B 2 [8d -8 /

," ..".. la pasult.

Pasul S; Dacd lnU> A-ln(4.f .(f -f))+


la pasulLin cazcontrarnumdrul
4, r"trece
generatcu reparti{iaBETA esteX: I/.
Pasul6.Serepet[pagiil, 2,3, 4 qi 5 pdndcdndseoblinelungimea
doritda qiruluigenerat.
RepartiliaBETA nesimetriclde parametria, b e R, a, b > 1 se utilizeazdin cazul
problemelorde tip PERT.Aici, se utilizeazd,de fapt
modelelorde simularepentrurezolvarea
va r ia b ilaW:B E TA -P E RT,definit id e re p a rt i{ ia ll/ : p + (q -p ). X , e > p , u n d e p a ra met r i
reali a gi & suntsupraunitarigi diferili.
L

Metoda V-a: Generarea


variabileialeatoare
X de reparti{ieBETA cu metodeaproximative.
Metodeleaproximativede generare
const[ in inlocuireape anumite
a numereloraleatoare
porfiuni/intervalea repartilieiconsiderate
cu o legede repartifiemai simpl5"foarte apropiati
de ceainitialE.
O astfelde metoddaproximativda fost utilizati de Clark pentru reparti{iaBETA.
Aceasti repartiliea fost folositi de CLARK penhuanalizadrumuluicritic. Pentruo repatilie
BETA de parametriia=Z+Jl
func{iade repartiliea fost aproximatdpe
$i F=2-Jr,
patru intervaleprin funcfii liniaresauprin func{iiradicalde ordinuldoi gi patru.in general
func{iilede repartiliepot fi aproximate
cu funcfii liniaresaudegraduldoi. Astfel numlrul x,
de repartifi" gefA de parametrii(z- J|,2*JZ),
r" genereaziin func{ie de valoarea
variabileialeatoare
a uniformrepartizate
in intervalul[0,1],cu ajutorulgeneratorului:
,ae[0-0,2825)
I\l: :

xp=

* 0,4gg5,u ef0,2825- 0,47)


*1.876
0,424-z + 0,55, u ef0,47- 0,96)

t-l;,re[0,e6-l]

Algoritmul:
Pasul l: Segenereazilun
numdraleatorz uniformrcpartizatin[0,1];
Pasul2; Se identifici intervalulin careapar{inenumdrulgeneratu, prin compararea
valorii
lui z cu valorile intervalelorconsiderate.Pentru identificarearapidd a intervalului, gi
respectiv,a funcliei asociate,sepoatefolosi un algoritmde cdutaresemilogaritmicd;
Pasul-l: Secalculeazn
intervaluluiidentificat.
xp, conformformuleicorespunzitoare

l7

Pasul4: Se repetilpagii l, 2 gi 3, carereprezintlde faptmetodatransformateiinverse, pdnd


cdnd se ob{ine lungimeadorit6 a qirului de numerealeatoaregeneratedup[ acest tip de
repartifie.
in continuare,prezentdm
succintun algoritmde cdutaresemilogaritmicda rangului
,' intervaluluiin care se glsegtenumdrulgenerat,pentrumetodatransformateiinverse,cazul
";. discret.
Presupunem
variabiladiscretEde forma:
( *,
X- . ,l
\P'

x)

x,)
" I, in care rp,,i=l,n

Qz

reprezintl frecventelerelative ale apariliei

Q,)

valorilor.q,sau
( * , x)
X- - :l
[p' Pz
valorilorxi.

x")
^ carepi reprezintd
" in
frecventele
absoluteale apari{iei(probabiltdfile)
p, )'l,

PaSii algoritmului de cdutaresemilogaritmicd:


Pasul 1:
o SeinigializeazdgeneratorulG
de numereuniformdistribuitein [0,1];
. Secitescvalorile:n,x1,p,,i =l,n;
o

Secalculeaztr
frecventele
relativecumulate:eo = 0, e,

< 0,5< po gi se considerdi : /c;


Sedetermini indicele&pentrucare(pk_t

Segenereazdu, e [Ql] cu generatorulG;

Dacdu, > 0,5 setrecela pasul7;

i:i-li

Dacl u, < e, sotrecela pasul5, ?ncazcontrarsetrecela pasul9;

i: i* l;

Daci ui ) e, setrecela pasul7;

x = ,tt.

\
Pasul 2:
Pasul3:
Pasul4:
Pasul5:

St

Pasul 6:
Pasul 7:

Pasul 8:
Pasul 9:

t8

l.

Cu ajutorul unui procedeude ciutare semilogaritmic[,prin care se asigurd


cregereavitezei de calcul, se gdsegterangul i al intervalului pentru care este
indeplinitdcondilia e,_rI ui < e, $i atuncivaloareacdutatdestex : ri ;

in algoritmul de generarea numereloraleatoaredup[ repartifia BETA, dupl


identificareaintervaluluiin carese afltr numIrul a generat,se identific[ qi forma
func1iei,asociatiiintervalului,dupdcareseva generanumdrulaleator xo1.
3.
Algoritmul funcfioneaziidentic ?n cazul variabileloraleatoarediscrete ?n care
suntdateprobabilitililede apariliealevalorilorvariabilei,inlocuind $,i cupi.
\
Funclia care realizeazdgenerareade numere aleatoarecu repartilie BETA are
unndtoareaformE(func{iaesterezolvatlin limbajulC++}:
2.

void BETAQ
{
int n,k;floatu;
printf('\nGENERAREA
N UMERELORALEATOARECU REPARTITIE B ETA") ;
printf('\n");
printf('\nDatinumarulde simulari:");
. scan("7od",&n);
print("\nNumerelegeneratesunt:");
for(k:l;k<:n;k++)
t
t

u=(float)(rand$
% I 00Vl00.;
i(u<0.2825)
printf('\n7o7.5lf',pow(0.25,u/
l .64));
else
{'
if(u<O.47)
print('\n yo7.5lf',ul| .876+0.499
5);
else
{
i(u<0.96)
print("\n 7o7.5lf',u*0
.424+0.55);
else
printf(\n%7.51f',1-sqrt((l-u)8.0);
r
J

t
t

getchfl;
clrscr0;
)
Schemalogicl a funcfiei citre genereaz[numerelealeatoarecu reparti{ie BETA este
reprezentatdin fi gura5.

l9

Generareanumereloraleoloaredupdo repartigienormald
A) Generarea numerelor aleatosre dupd o repartilie normold folosind teorema
Iimitrt centrald
AceastdmetodI sebazeazdpe
unnitoareaforml particularda teoremeilimit[ central[.
Teoremtr:Daci se dI o selecfieXr,...Xoefectuatiasupraunei variabilealeatoareX astfel
inciftE(X): p $ d(8:
o2,atuncivariabila:

Z_

fk=l x r - n ' l t
rt

o-{n
{, cdtreo reparti}ie
tirrdeasimptotic,cdndn ---+
normalbN(0,1).
ln cazulin careX: U (adicno variabil[ uniforml pe (0,1)),rezultl.ci daci U1,...,(Jn
esteo selecfieintdmplitoareasupralui U, atuncivariabilaY : Ut a...+U, are asimptotico
repartifienormal5cu media f(y)=I

9i dispersia O'(y)=J1, d.our.." g(U\=!


2122

qi

o'f t 1) = L .

l2
AceastEteoremlpoatefi folositi pentrugenerarea
uneivariabilenormaleN(0,1). S-a
constatat
cd dacl volumulselectieiz satisface
conditian> 10,atuncivariabila:
Y -n.|
=
-#,
Z
poateaproximabineo variabiliN(0,I ). O valoarea lui n convenabildeste

ln
1'tz

!,r1 l

evidentn: 12,deoarece
in acestcazD2(Y): I gi deciZ = (Jr+...+Up - 6.
Aceast[metoddde generare
a variabileinormaleN(0,1)este,aproximativd
dar destul
de rapid6. Existi gi alte metodg mai exacte,de generarea unei valori de selecfie
corespunzindunei variabileff(0,1) bazatepe teoremalimiti centrald,cum ar fi: metoda
polarS"metodalui Teichroew,metodalui Butcheretc.
Ca o consecinfia acesteiteoreineprin insumareaunui numdrrelativ mare de numere
repartizateuniform, seoblin numererepartizatenormal.
Dac[ se line seamade faptulci in cazul variabileloruniformedispersiaeste l:12,
rezulti facilitd{ide calculdaci seconsiderd
12 numereuniformrepartizatein [0,1]. Pentrua
generanumererepartizatenormal de medielz gi abateremediepitratic[ o, se poate folosi
urmitorulalgoritm:
Algoritm:
Pasul./.'Segenereazd12
numereunifonnrepartizatein
[0,1], u,, i =l)l

Pasul2.'SecalculeazimirimeaU, cu relatia:U =fu,-A.


PasuLS.'
Numdrul.ft generatdupi repartitria
normalil" .ul.ul.-I cu relafia:xk = nt + o .(J
Pasul4.'SerepetipaSiit, 2 gi 3 pdn6cdndse genereazdnumdrul
total de valori.4.
Observalie:
In codul progrmului,variabilaaleatoare
.r1generatd
estecodificatdale.

2l

Funcfiacarerealizeazi generarea
de numerealeatoarecu repartifienormal6,de medie
qi
pitraticd
m
abateremedie
o, N(moo), are urmitoareaforml (funcfia este rezolvatdin
limbajulC++):
void gauss$
{
float med,sigma,ale;
int n,k;
shortint i;
print("\n GENERAREANUMERELORALEATOARECU REPARTITIENORMALA ");
printf('\n");
printf("\Datimedia:");scanf("ohf
',&med);
printf("\n Dati sigma:") ;scan("ohf',&sigma);
printf("\nDatinumaruIde simulari:");scan("oZd",&n);
print("\nNumerelegenerate
sunt:");
for(k:1;k<:n;k++)
{ ale:0;
for(i=0;icl2;i++)
ale+:(float)(rand0% I 00)/l 00.;
ale:(ale-6.)*sigma+med;
printf('\n Yo7.5f",ale);l
getchQ;
clrscr$;
)

'l
J

i
ri

il
tt

'l

Schemalogici pentrugenerarea
numereloraleatoare
dupdrepartifianormalI N(m, o) este
reprezentatd,
in fi gura 6.

fii,:lt
\.ft

-/

22

Generareanumerelor aleatoaredupd o reparti$enormald N(t+d


Variabilaaleatoare
X areo reparti{ienormaliunidimensionalE,
de mediep gi dispersie
o'2,notatii.l(p,o), dacl areo densitatede repartilie de forma:
_G-il'
,
' = ., ,o' ,
"f(*)=
6- illr

de underezultl cd funcfiade re-partifie


este:
F(x)=

( t- p f

- J'

,^

o .i h ,

le

2"' dl

_'*

Seobservf,ci functiade repartifienu areo forml analiticdexpliciti. Se arat* uqorcI


E(X): pSiD2(11: o2.
Un rol important
reparti{iilenormate?l arerepartiliaN(0,1) a cdrer-func{iede
_printre
repartifieeste:
l,

F(,)= i * *kl). sign(z)


unde,
1

A(zl=

t.

-''

2dt,z>0

-le

't'zni

estefunc6r-a
Laplace.
RepartifiaN(0,1)are un rol deosebitde importantdeoarece
oricarear fi variabilaX
\ ..
normal5l(F"o) easebucurdde proprietatea:
.]{: c.Z * 14
din ca r erezultd
Z=X 'ts.
urlo,rl Potrivitacesteirelafii,lp"nt* ,.ooui pru"ti"" estersuficient
s6se
cunoasclrepartifiavariabileiZ, saua func{ieiLaplace.Astfel,mai int6i se genereazd
valorile
variabileinormale/(0,1) gi apoi cu proprietatea
de mai sus se oblin numere aleatoare
reoartizateN(,p,o)Avdnd in vedereaspectelepractice,reparti{ianormali poate fi consideratdcea rnai
importantddintrereparti{ii le neuniforme.
????2????????????
DUPA CE ALG????
/
voidnormQ
t
{
int n,k;
'/
doubleale,auxl,aux?;
float u,med,disp;
print('\nCENERAREANUMERELORA LEATOARECU REPARTITIE N ORMALA") ;
print("\n");
print('\Dati media:");
scan("7of',&med);
print('\n Dati dispersia
:");
scanf("o/of',&disp);
print('lnDati numarulde simulari:");

24

scan("Yod",&n);
print("\n U generat Normala");
print("\n");
for(k:l;k<:n;k#)
{
do u{float)(randQ% 100)i100.;
while (u:0.5);print("Vr % I 0.5f',u);
auxl:u-O.5;
ale:auxl/fabs(auxl);
ale*=disp;
auxI :fabs((double)(l -2* u));
auxl=log(auxl);
auxl*:-2:
auxl:sqrt(auxl);
1,2.);
aux2:2.5| 555l7*0.802853*auxI +0.0I 0328*pow(aux
auxZ| : | + 1.432788*auxI +0.I 89269* pow(aux1,2.)+0.00
I 308* pow(auxl, 3.);
ale*:(auxI -aux2);
ale+=ned;
printf(" Yol0.5f', (floatXale));
)
getch0;
clrscr0;
)
Schemalogic[ pentrugenerarea
numereloraleatoareOupere]]rtilia normal5N(m, o) este
reprezentat[?nfigura 7.
??2???????????2??

25

ri

11.1. Generarea numerelor olealoare dupd o repartftie exponen(ial negativd

)
rii

O variabil[ aleatoareX are distribufie exponenfialnegativ[ dac6 densitateasa de


repartifieestede forma:

[O Dentrux<0

f( x ) = 1^

l l -e -2 '',x>o '

iarfunc{iaderepartifie
exponen{ial
negativiareforma:

F(x)='lf Q)a,='[A. e-^'


dt = l-e -n ' ' = y , p b n t ru r>0 .
Seconstat[cu ugurinfdcd mediagi dispersia
arvalorile:

E(X

2,11\
ir- 'r I

)=j * D'(x)=+.

Deoarecefuncfia de repartifieEXPONENTIALA esteo func{ie inversabild,pentru a


generaqiruri de numerealeatoarecu aceastf,repartifiese poatefolosi metodatransformatei
inverse.Astfel,daci se genereazd
un numiryr ?n[0,1]cu derlsitatea
de probabilitatecontinu5,
(x) trebuiesd satisfaclrela{ia:
atuncinumdrulx1avdndfuncliade densitate
de probabilitate
F(x) : y, de undex : FI (y).
Din ultimaegalitate,oblinemgeneratorul:
I

x* =-*.tn (t-y*).
i

Rezultii cd pentru a genera numere aleatoarexo dup[ o repartilie exponenfial


y* e [0,1]gi si folosimultima rela{ie.
negativS,
estesuficientsdgener6m
numerealeatoare
Observalie:
Generareafiind aleatoare,uniform repartizatdpe [0,1], in practicd,pentru reducerea
durateide calcul,sepoateinlocuigirulde valorigenerate
{l - yn\cu girul de valori lt1,}, care
esteevidenttot un girde numerealeatoreuniformdistribuitepe [0,1].
in acestcaz, pentrua generanumerealeatoarex* dupd o repartitieexponen{ial
negativl se folose$egeneratorul:
ln yt
^*

- -----l-'
A

27

Func{ia care realizeazdgenerareade numere aleatoarecu repartilie exponen{ial


negativf,areurmdtoareaformi (func{iaesterezolvatd?nlimbajulC++):

void expon()
J

float A;int k,n;


printf("\TGENERAREA
NUMERELOR
ALEATOARE
EXPONENTIALA");
printf("\n");
pr'rnt('\Datilambda:");
scan("0/0fl'.&A);
printf("\nDatinumaruldesimulari:");
scanf("7od",&n);
print("\nNumerelegenerate
sunt:");
for(k:l;k<:n;k++)
printf("\n o 7.5f', ((float)(-I /A* |og(fl oat)(rand0 % 100)/r
00))));
getch0;
clrscr0;

CU

REPARTITIE

I
I

Schema logici a funcliei care genereazl numerele aleatoare dupi o repartifie


exponen{ialnegativ[ esteprezentatiiin figura6.

28

f' ,)

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