+ All Categories
Home > Documents > Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab....

Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab....

Date post: 17-Jan-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
35
1 Laboratorio di Calcolo I Applicazioni :  Metodo Monte Carlo
Transcript
Page 1: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

1

Laboratorio di Calcolo I

Applicazioni : Metodo Monte Carlo

Page 2: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

2Lab. Calc. AA2007/08

Monte Carlo

• Il metodo di Monte Carlo è un metodo per la risoluzione numerica di problemi matematici che utilizza numeri casuali.

• Si applica sia a problemi che coinvolgano processi statistici che nella risoluzione di diversi problemi matematici quali la determinazione di un'area (integrale).

Page 3: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

3Lab. Calc. AA2007/08

Ago di Buffon

• Il primo Monte Carlo data della fine del XVIII secolo e serviva per la determinazione statistica del numero π:

• Si lascia cadere un ago di lunghezza d su una superficie sulla quale si siano tracciate righe parallele a distanza d l'una dall'altra... 

Page 4: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

4Lab. Calc. AA2007/08

Ago di Buffon

Page 5: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

5Lab. Calc. AA2007/08

Ago di Buffon

Page 6: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

6Lab. Calc. AA2007/08

Ago di Buffon

Page 7: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

7Lab. Calc. AA2007/08

Ago di Buffon

Page 8: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

8Lab. Calc. AA2007/08

Ago di Buffon

Page 9: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

9Lab. Calc. AA2007/08

Ago di Buffon

Page 10: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

10Lab. Calc. AA2007/08

Ago di Buffon

Page 11: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

11Lab. Calc. AA2007/08

Ago di Buffon

Page 12: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

12Lab. Calc. AA2007/08

Ago di Buffon

• La probabilità che l'ago incroci una linea è data da P = 2/π

• Se l'ago viene lanciato N volte, indicando con Nx il numero di volte che l'ago incrocia una lineaNx/N tende a P all'aumentare di Ne quindi

   2 N/Nx tende a π

Page 13: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

13Lab. Calc. AA2007/08

Misura di un'area

• Sia una generica superficie A completamenta contenuta in un quadrato di lato unitario

1

0 10

Page 14: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

14Lab. Calc. AA2007/08

Misura di un'area• estraiamo una coppia di numeri casuali (x,y) tra 

loro indipendenti e compresi tra 0 e 1 e li rappresentiamo come un punto nel piano xy

1

0 10

Page 15: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

15Lab. Calc. AA2007/08

Misura di un'area

• Procediamo estraendo altre coppie

1

0 10

Page 16: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

16Lab. Calc. AA2007/08

Misura di un'area

1

0 10

Page 17: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

17Lab. Calc. AA2007/08

Misura di un'area

1

0 10

Page 18: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

18Lab. Calc. AA2007/08

Misura di un'area

1

0 10

Page 19: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

19Lab. Calc. AA2007/08

Misura di un'area

1

0 10

Page 20: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

20Lab. Calc. AA2007/08

Misura di un'area

• La densità di punti geometrici estratti sarà uniforme...

1

0 10

Page 21: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

21Lab. Calc. AA2007/08

Misura di un'area

• Quindi la probabilità che il punto (x,y) estratto capiti all'interno dell'area che vogliamo misurare è esattamente uguale all'area stessa.

• Se estraiamo N coppie di numeri e N' è il numero di punti che cadono all'interno della figura il rapporto N'/N tende al crescere di N all'area della figura.

Page 22: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

22Lab. Calc. AA2007/08

Sequenze di numeri casuali

• Sequenze di numeri casuali possono essere generate– Utilizzando un sistema caotico, la cui 

evoluzione è deterministica ma che dipende criticamente dalle condizioni iniziali: il lancio di un dado, l'estrazione di un numero al lotto o con la roulette etc...

– Utilizzando un processo che sia intrinsecamente casuale, come il decadimento radioattivo di un nucleo, il rumore termico, il tempo di arrivo dei raggi cosmici sulla terra...

Page 23: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

23Lab. Calc. AA2007/08

Sequenze di numeri casuali

• Ma anche– Ricorrendo a numeri random raccolti in tavole 

contenenti vari milioni di numeri, spesso insufficienti per molte applicazioni

– Ricorrendo a dei generatori di numeri che sono algoritmi in grado di produrre sequenze di numeri riproducibili che simulano una successione di numeri casuali. Si parla in questo caso di numeri pseudo­random.

Page 24: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

24Lab. Calc. AA2007/08

Numeri pseudo­random

• Vantaggi– Si ottengono mediante algoritmi semplici– Occupano poco spazio nella memoria del calcolatore– La serie è riproducibile e la sua qualità è controllabile

• Svantaggi– Possono esserci delle correlazioni – La serie di numeri è comunque limitata

Page 25: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

25Lab. Calc. AA2007/08

Il generatore 

• Nelle librerie C associate al compilatore gcc da noi usato troviamo le funzioni rand() e random().

• Per sapere come si usano basta dare il comando                       man random o man rand• Per usarle basta includere il file <stdlib.h>• I numeri pseudo­random prodotti sono interi (a 

32 bit) distribuiti uniformemente tra 0 e RAND_MAX (2 alla 31 meno 1=2147483647). 

Page 26: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

26Lab. Calc. AA2007/08

generazione di numeri pseudo­random tra 0 e 1 (listato 5.6)

#include <stdlib.h>#include <stdio.h>#define MAX 1000                                                                                main() {   double x[MAX];   int i;   for (i = 0; i < MAX; i++) {      x[i] = (double)rand()/RAND_MAX;/* dividere per RAND_MAX+1. se non si vuole includere 1 */      printf("%lf\n",x[i]);   }}

Page 27: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

27Lab. Calc. AA2007/08

inizializzazione

• l'algoritmo di generazione dei numeri casuali deve essere inizializzato

• rand() ha un'inizializzazione di default che fa si` che venga generata sempre la setssa sequenza di numeri partendo da 1

• srand(int seed) permette di inizializzarla ad un seme (seed) diverso da 1

• utilizzando sempre lo stesso seme si riottiene sempre la stessa sequenza. Per variarlo in modo arbitrario si puo' utilizzare il tempo in second i misurato dall'orologio del computer (time(0) o tramite gettimeofday).

Page 28: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

28Lab. Calc. AA2007/08

Distribuzioni non uniformi

• Il calcolatore genera una sequenza di numeri distribuita uniformemente su un certo intervallo. 

• Per molte applicazioni abbiamo bisogno di numeri distribuiti secondo una generica funzione di distribuzione f(x).

• Vediamo alcuni metodi utilizzabili a questo scopo. 

Page 29: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

29Lab. Calc. AA2007/08

Metodo diretto per variabili continue

• Per estrarre una variabile aleatoria secondo la funzione di distribuzione f(x) (normalizzata a 1) osserviamo che la funzione di probabilità integrata, F(x) (integrale da ­∞ a x della f(x) ),  è a sua volta una variabile aleatoria distribuita uniformemente tra 0 e 1

• Ne consegue che se si riesce ad esprimere la variabile aleatoria x in funzione della variabile aleatoria F, estraendo quest'ultima tra 0 e 1, si ottiene una variabile x distribuita secondo f(x). 

Page 30: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

30Lab. Calc. AA2007/08

Metodo della reiezione

• Per simulare la funzione di distribuzione f(x) sull'intervallo [a,b], noto il valore massimo assunto dalla funzione nell'intervallo, fmax, è sufficiente– Estrarre una variabile x distribuita uniformemente tra 

a e b    ( se r varia tra 0 e 1 x si ottiene come x=r*(b­a)+a )– Estrarre una variabile y distribuita uniformemente tra 

0 e fmax– Se  y > f(x) si ripete l'estrazione della coppia (x,y)– Se  y < f(x) si accetta il valore di x che è una variabile 

aleatoria distribuita secondo la f(x)

Page 31: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

31Lab. Calc. AA2007/08

Generazione di numeri gaussiani

• Numeri pseudo­random con funzione di distribuzione gaussiana possono essere anche generati sfruttando il teorema del limite centrale che afferma che:

• La somma di un numero N  di variabili aleatorie con valori medi e varianze finite ha una distribuzione che per N tendente all'infinito tende ad una gaussiana di valor medio "somma dei valori medi" e varianza "somma delle varianze" delle distribuzioni di partenza

• Partendo da distribuzioni uniformi già per N=12 si ottengono delle gaussiane praticamente perfette

Page 32: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

32Lab. Calc. AA2007/08

Page 33: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

33Lab. Calc. AA2007/08

Uso dei numeri pseudo­random

•  alcune applicazioni dei numeri pseudo­random– Calcolo di integrali– Simulazione di eventi discreti– Simulazione della risposta di uno strumento

• I numeri pseudo­random sono molto utilizzati anche per simulare fenomeni fisici di natura statistica.

Page 34: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

34Lab. Calc. AA2007/08

Eventi discreti• Esempi:

– Lancio di una moneta (distribuzione di probabilità binomiale con p=q=0.5)

– Lancio di un dado (distribuzione di probabilità binomiale p=1/6 q=5/6 se si studia il numero di lanci che diano 6)

– Estrazioni del lotto (distribuzione di probabilità binomiale p=1/90 se si studia un numero in particolare)

– Sondaggio di opinione con due sole risposte, SI e NO (distribuzione binomiale)

– Sondaggio di opinione con più risposte ammesse (distribuzione multinomiale)

Page 35: Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab. Calc. AA2007/08 Monte Carlo • Il metodo di Monte Carlo è un metodo per la risoluzione

35Lab. Calc. AA2007/08

Simulazione di eventi discreti

• Per simulare l'esito di eventi discreti che abbiano probabilità a priori p1, p2, p3...pn (con Σ pi =1!) si estrae un numero r distribuito uniformemente tra 0 e 1– Se r < p1 si considera l'evento di tipo 1– Se p1 < r  < (p1+p2) si considera l'evento di tipo 2– Se (p1+p2) < r  < (p1+p2+p3) si considera l'evento di 

tipo 3– Etc...

• Si otterranno frequenze di eventi dei vari tipi che, se calcolate con N estrazioni con N tendente a infinito, tenderanno alle probabilità a priori.


Recommended