Crea sito

Metodo Montecarlo

I Metodi Monte Carlo sono un'ampia classe di metodi computazionali basati sul campionamento casuale per ottenere risultati numerici. 

Sfruttando uno di questi metodi è possibile generare, con dei numeri casuali, il valore del PI-Greco.

Calcolo del PI-Greco con il metodo Monte Carlo

 

In questo programma utiliziamo la funzione

srand(time(NULL));

che genera il seme casuale e la funzione

rand();  

che genera il numero casuale.

La funzione srand per poter essere utilizzata ha bisogno dell'inclusione della libreria , inoltre bisogna includere anche la libreria per utilizzare l'orologio del computer.

 

Il metodo Monte Carlo permette di calcolare il numero PI-Greco con la seguente formula

Area_Cerchio/Area_Quadrato=(PI_reco*raggio*raggio)/(2*raggio)^2= PI_Greco/4

Infatti l'area del cerchio è data dal quadrato del raggio per PI-Greco mentre l'area del quadrato di lato uguale a due volte il raggio è data da (2*raggio)^2; il rapporto di queste due aree dà quindi

PI-Greco/4

Facendo la formula inversa si ha che:

PI_Greco=4*(Area_Cerchio)/Area_Quadrato) 

La funzione random quindi genera dei numeri casuali esterni alla circonferenza e interni al quadrato; se contiamo i punti generati fuori dal cerchio, ma interni al quadrato incrementiamo di uno il numero dei punti all'interno del ciclo for.

Questo avviene con l'istruzione 

......

       if(x*x+y*y<1)       //cioè se il punto è dentro la circonferenza di raggio unitario

       ++dentro;           //      incrementa i punti che stanno dentro altrimenti non incrementare

......

dopo il ciclo for calcoliamo il valore di PI-Greco con la formula

pi=4*dentro/(double)tanti;

Quando proviamo a lanciare questo programma il valore di PI-Greco è quasi uguale a quello voluto, ma naturalmente si avranno valori diversi per ogni lancio del programma, in quanto il metodo utilizzato è di tipo casuale, cioè random.

Programma completo del metodo Monte Carlo in Dev C

L'output del programma sarà il seguente