Sunteți pe pagina 1din 4

Facultatea de Matematică şi Informatică USM

Specialitatea Informatică

Lucrarea de laborator nr. 1


la Probabilități și Statistică

”Aplicarea metodei Monte Carlo la calcularea


valorii medii și a probabilității unui eveniment
aleator.”

Efectuat: ________ Butnaru Oleg grupa I21

A verificat:_________ Topala Oleg

Chişinău 2015
1.Continutul lucrarii:

Această lucrare are ca tematică modelarea variabilelor aleatoare şi aplicarea metodei


Monte Carlo la calculul valorii medii, probabilităţii şi a integralei definite.
Sarcinile individuale ale lucrării conţin o problemă cu o variabilă aleatoare şi un
eveniment aleator pentru care urmează a fi calculate valoarea medie, respectiv probabilitatea
şi o integrală definită. Pentru calculul valorii medii se vor modela n valori ale variabilei
aleatoare, iar pentru calculul probabilităţii se va modela de n ori evenimentul aleator dat (şi
experimentul respectiv).
Fiecare lucrare de laborator care presupune îndeplinirea unei variante concrete se va încheia cu
prezentarea dării de seamă, ce va include:
1. Formularea problemei (varianta concretă).
2. Expunerea succintă a metodei (testului, algoritmului) aplicate.
3. Textul programului ce realizează metoda aplicată elaborat într-un limbaj algoritmic.
4. Rezultatele testării programului.
5. Rezolvarea teoretică a problemei (cel puţin pentru unele cazuri particulare).

2.Enuntul problemei:

Se aruncă doua zaruri până apar doi de 6 de trei ori.  - numărul aruncări-lor . A = { >100 }

3.Explicarea Metodei Monte Carlo:

Metoda Monte Carlo se bazează pe calculul valorilor medii. Astfel apare problema
preciziei formulei
1 n
M   xi
n i 1

(x1, x2, …, xn sunt n realizări obţinute în urma modelării lui ):

pentru ce n cu o probabilitate nu mai mică decât  are loc inegalitatea

1 n
 xi  M  
n i 1

( > 0, (0, 1))?

Astfel, fiind daţi  > 0 şi (0, 1), se cere să determinăm acea valoare a lui n care satisface
relaţia:

 1 n 
P  xi  M      sau
 n i 1 

2
 n
  n

 x i  nM   x i  nM 
P        P  
n n 
i 1
 i 1
 
 n   D nD D 
   
   

În virtutea teoremei limită centrale pentru variabile aleatoare independente identic


repartizate (x1, x2, …, xn sunt atare variabile), ultima egalitate devine

 n  .
2Ф0   

 D 

 n  
Astfel trebuie să rezolvăm ecuaţia Ф0     , adică

 D  2

n  
  Ф01  . (6)
D 2

Mărimea Ф01    , pe care o notam prin x , o găsim în tabelul valorilor funcţiei


2
x u2
1 
Ф0 ( x)  e 2
du. De exemplu, pentru =0.95 găsim x = 1.96, adică Ф01  0.95   1.96.
2 0  2 

D  x 2
Rezolvând ecuaţia (6) obţinem n . (7)
2

 D  x2 
Astfel, dacă n     1 , precizia  este asigurată.
 
2


4.Textul programului :

#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
int main(){
int z1, z2, k, m, n, y, i, x;
float p;
x=0; k=0; n=0;
srand(time(NULL));
for (i=0; i<1000000; i++){
n=n+k;
if (k>=100) x++;
k=0;
for (m=0; m<=3; m++){
do{
z1=rand()%6+1;
z2=rand()%6+1;
3
k=k+1;}
while (z1!=6 || z2!=6);}}
p=(float)x/1000000;
y=n/1000000;
cout<<"Numarul mediu de aruncari pina se optine 3 de 6 este: B="<<y<<"\n"<<endl;
cout<<"Probabilitatea ca E>=100, P(A)="<<p<<endl;
getch();}

5.Rezultatele programului :

6.Concluzie

In lucrarea data am efectuat un experiment prin medota Monte Carlo si l-am realizat in limbajul
de programare C++.Probabilitatea evenimentului :P(A)=0.703