Post on 21-May-2017
Simularea variabilei
Beta(a, b)
Nr.proiect 21
Mainerici Elena Isabela
Grupa 331
1.INTRODUCERE
Cuvantul “simulare” deriva de la latinescul “simulatio”, care inseamna
capacitatea de a reproduce, reprezenta sau imita ceva.
Simularea este o tehnica de realizare a experimentelor cu calculatorul, care implica utilizarea unor modele matematice si logice care descriu comportarea unui sistem real (sau a unor componente ale sale) de-alungul unor perioade mari de timp. Simularea se realizeaza pe baza unui model special, numit model de simulare. In procesul de modelare matematica, componentelor sistemului li se asociaza anumite variabile/parametri, unele cunoscute, numite variabile/parametri de intrare, altele necunoscute(necontrolabile), numite variabile/parametri de iesire. Legaturile si interactiunile dintre componentele sistemului sau legaturile sistemului cu exteriorul se transpun in modelul matematic prin relatii functionale(ecuatii si/sau identitati). Scopul modelului este de a exprima variabilele necontrolabile in functie de variabilele controlabile, astfel incat sa fie satisfacute criteriile de performanta. Uneori nu este posibil sa se exprime sub forma de ecuatii toate legaturile, conditionarile si interdependentele necesare, motiv pentru care unele dintre acestea se descriu prin conditii 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 buna. De aici rezulta ca modelul de simulare produce experimente asupra sistemului pe caresl simuleaza, ceea ce permite alegerea acelor valori ale variabilelor si parametrilor de intrare care conduc la performantele dorite.
Lucrarea de fata isi propune sa ilustreze realizarea a doua modele de simulare a
variabilei Beta(a,b) in cazurile 0<a<1,b>1 si 0<a<1,0<b<1. Vom stabili obiectivele
prin definirea problemei, urmata de colectionarea notiunilor necesare, tratate din
punct de vedere matematic. Odata stabilite reperele teoretice,vom elabora
algoritmii de simulare in concordanta cu obiectivele initiale,verificarea
corectitudinii algoritmilor si vom prezenta o varianta de implementare intr-un
program.
Formularea problemei „Construiti doua metode de simularea variabilei Beta(a, b), din care una sa includa cazul 0 < a < 1, b > 1.”
2.Definitii si notiuni necesare
2.1.Repartitia Uniforma
Una din repartitiile de probabilitate importante, dar care este naturala, este
repartitia uniforma pe un interval [a,b ] care are densitatea de repartitie de forma
iar functia de repartitie este
O variabila uniforma 0 – 1 notata cu U este o variabila uniforma pe [0,1].
Densitatea de repartitie si functia de repartitie a lui U sunt respectiv
2.2.Repartita Beta
Variabila X are repartitia Beta(a, b), a > 0, b > 0 daca densitatea sa de repartitie este
unde
Functia Gamma fiind definita astfel :
Simularea variabilei Beta poate fi facuta prin :
Teorema : Daca X1 Gamma(0, 1, a); X2 Gamma(0, 1, b), X1 independent de X2 atunci variabila
este o variabila Beta(a,b).
Deoarece aceasta formula presupune generarea prealabila a doua variabile
gamma, are o complexitate mai mare. In cazuri particulare exista teoreme,care nu
necesita simularea variabilelor gamma deci cu o complexitate mai mica. In acest
proiect vom prezenta doua din aceste cazuri particulare pentru simularea
variabilei Beta(a,b).
3.Tratarea matematica a problemei
Lucrarea curenta isi propune prezentarea a doua cazuri de simulare a variabilei
Beta(a,b).
Primul caz de simulare a variabilei Beta(a,b) este atunci cand 0< a <1 si b>1.
Urmatoarea teorma pune in evidenta acest lucru.
3.1.Teorema: Daca 0< a < 1, b>1 si U1,U2 sunt variabile aleatoare uniforme 0 – 1
si independente si daca V = U11/a , T = U2
1/b-1, atunci repartitia variabilei V
conditionata de V + T <1 este Beta(a,b).
Demonstratie:
Mai intai observam
de unde rezulta ca densitatea de repartitie a lui V este
si densitatea de repatitie de repartitie a lui T este
Rezulta ca densitatea comuna de repartitie a variabilelor V,T – independente este
iar
Deci densitatea comuna a variabilelor (V,T) , conditionata de V + T < 1 este
De aici rezulta ca densitatea lui V conditionata de V + T < 1 este
si teorema este demonstrata. Al doilea caz de simulare a variabilei Beta(a,b) este atunci cand 0<a<1 si 0<b<1.
Urmatoarea teorema pune in evidenta acest lucru.
3.2.Teorema: Daca 0<a<1, 0<b<1 si U1,U2 sunt variabile aleatoare uniforme 0 – 1
si independente si daca V = U11/a , T = U2
1/b , atunci repartitia variabilei X= 𝑉
𝑉+𝑇
conditionata de V + T < 1 este Beta(a,b) . Demonstratie: Mai intai observam ca
de unde rezulta ca densitatea de repartitie a lui V este
si densitatea de repatitie de repartitie a lui T este
h(y) = byb-1 , y ∈ [0,1].
Rezulta ca densitatea de repartitie a variabilei X = 𝑉
𝑉 + 𝑇 este
g(x,y) = axa-1 /(axa-1 + byb-1) iar
P(V + T < 1) = 𝑎𝑏
𝑎+𝑏B(a,b).
Deci densitatea variabilei X conditionata de V + T < 1 este q(x,y) = (a+b)(xa-1)/b(axa-1+byb-1)B(a,b). Si teorema este demonstrata.
4.Descrierea algoritmilor
4.1.Algoritmul pentru simularea variabilei Beta(a,b) unde 0<a<1 si b>1 este
Repeat
Genereaza U1 ,U2 uniforme 0 – 1 si independente;
V := U11/a;
T := U21/b-1;
Until V + T < 1 ;
Datele de intrare corespunzatoare : a si b
Datele de iesire corespunzatoare : Variabila Beta(a,b) V
Probabilitatea de acceptare a accestui algoritm este
Pa= a B(a,b);
4.2.Algoritmul de simulare a variabilei Beta(a,b) cand 0< a <1 si 0< b <1 este
Repeat
Genereaza U1 ,U2 uniforme 0 – 1 si independente;
V := U11/a;
T := U21/b;
Until V + T < 1 ;
Calculeaza X = 𝑉
𝑉+ 𝑇
Datele de intrare corespunzatoare : a si b
Datele de iesire corespunzatoare : Variabila Beta(a,b) X
Probabilitatea de acceptare a accestui algoritm este
Pa = 𝑎𝑏
𝑎+𝑏 B(a,b);
5.Validarea algoritmilor
Pentru validare, vom folosi doua metode specifice de validare a algoritmilor
desimulare asupra multimilor generate, si anume: verificarea aproximarii mediei
sidispersiei pentru seturile generate si aproximarea graficului densitatii de
probabilitatefolosind histograme construite clasic
5.1. Aproximarea densitatii de repartitie
O metoda de a verifica acuratetea rezultatelor obtinute in urma unui algoritm degenerare a unui set de date este de a analiza in ce masura histograma asociatasetului de date obtinut aproximeaza densitatea de repartitie a variabilelor generate.Imaginea de mai jos reprezinta histograma si densitatea de repartitie in urmagenerarii unui set de date de dimensiune 100 pentru o variabila Beta(0.5,0.5)
Graficul repartitiei Beta(a,b) unde a= 0.5 b= 0.5
Din acestea se observa faptul ca algoritmul prezentat produce rezultate ce
aproximeaza corect densitatea de probabilitate a tipului de variabilei Beta.
5.2.Verificarea mediei si a dispersiei
Observam ca dimensiunea multimii de selectie influenteaza rezultatele mediei sidispersiei aferente setului de date, in sensul ca le apropie foarte mult de valorileteoretice corespunzatoare tipului de date din multimea de selectie (o consecinta a legii numerelor mari). Astfel, in tabelul urmator vom exprima rezultatele obtinute pentru diferite dimensiuni ale multimii de selectie in comparatie cu valorile teoretice corespunzatoare.
Nr.Crt
Volum de selectie
Media obtinuta
Media teoretia
Eroare Dispersia obtinuta
Dispersia teoretica
Eroare
1 10 0.5938157 0.5 0.09381 0.086594 0.125 0.1
2 50 0.5135461 0.5 0.01354 0.121538 0.125 0.04 3 200 0.5132767 0.5 0.01327 0.124688 0.125 0.001
4 300 0.5051822 0.5 0.005 0.124956 0.125 0.001
Rezultatul acestor experimente confirma faptul ca media si disperia se apropie de
media si dispersia teoretica pe masura ce volumul de selectie creste.
6.Codul sursa
#include<iostream>
#include<math.h>
#include<time.h>
using namespace std;
// generare variabile aleatoare 0-1
double uniform()
{
return (double) ( rand() % 1001 ) / 1000 ;
}
// simularea variabilei Beta(a , b) cand 0 < a , b < 1;
double beta1 (double a , double b)
{
double U1, U2, V, T;
do
{
U1 = uniform();
U2 = uniform();
V = pow( U1 , 1 / a);
T = pow( U2 , 1 / b);
}
while (V + T >= 1); // conditionata de V + T < 1;
return V / (V + T); // variabila Beta(a , b);
}
// simulare variabilei Beta(a , b) cand 0 < a < 1 si b > 1;
double beta2 (double a , double b)
{
double U1, U2, V, T;
do
{
U1 = uniform();
U2 = uniform();
V = pow( U1 , 1 / a);
T = pow( U2 , 1 / (b - 1));
}
while (V + T >= 1); // conditionata de V + T < 1;
return V; // varabila Beta(a , b)
}
int main()
{
srand(time(0));
int i;
double a,b,B1[100],B2[100],s=0;
// citire a si b;
cin>>a>>b;
//cazul in care 0 < a , b < 1;
if( (a > 0) && (a < 1) && (b > 0) && (b < 1))
for(i = 1; i <=100; i ++)
{
B1[i] = beta1(a , b);
cout<< B1[i]<<" ";
s+= pow((B1[i]-0.5),2); // calcul pt dispersie;
}
cout<< s/100; //afisarea dispersiei
//cazul in care 0 < a < 1 si b > 1;
if((a > 0) && (a < 1) && (b > 1))
for(i = 1; i <=100; i ++)
{
B2[i] = beta2(a , b);
cout<< B2[i] <<" ";
}
system("pause");
return 0;
}
8.Bibliografie
[1] Ion Vaduva, „Modele de simulare cu calculatorul”, Editura Tehnica, Bucursti,
1977 [2] Ion Vaduva, „ Modele de simulare ”, Bucuresti, 2004
[3] Enciclopedia Wikipedia, Beta distribution
http://en.wikipedia.org/wiki/Beta_distribution