Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab....
Transcript of Applicazioni : Metodo Monte Carlowebusers.fis.uniroma3.it/.../lezioni07_08/undici0708.pdf2 Lab....
![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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/3.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/4.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/5.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/8.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/9.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/10.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/11.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/12.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/13.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/14.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/15.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/18.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/20.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/21.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/23.jpg)
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 pseudorandom.
![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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/24.jpg)
24Lab. Calc. AA2007/08
Numeri pseudorandom
• 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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/25.jpg)
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 pseudorandom 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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/26.jpg)
26Lab. Calc. AA2007/08
generazione di numeri pseudorandom 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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/27.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/28.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/29.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/30.jpg)
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*(ba)+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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/31.jpg)
31Lab. Calc. AA2007/08
Generazione di numeri gaussiani
• Numeri pseudorandom 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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/32.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/33.jpg)
33Lab. Calc. AA2007/08
Uso dei numeri pseudorandom
• alcune applicazioni dei numeri pseudorandom– Calcolo di integrali– Simulazione di eventi discreti– Simulazione della risposta di uno strumento
• I numeri pseudorandom 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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/34.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040801/5e37aefa3f910a0a8f1f0ac1/html5/thumbnails/35.jpg)
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.