Upload
don-donnola
View
215
Download
1
Embed Size (px)
DESCRIPTION
introduzione al metodo di montecarlo
Citation preview
1F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
1
Analisi dati in Fisica Subnucleare
Introduzione al metodoMonte Carlo
(N.B. parte di queste trasparenze sonoriciclate da un seminario di L. Lista)
Gli autori minori fanno citazioni. I grandi artisti copiano(I. Strawinsky)
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
2
Il metodo Monte Carlo una tecnica numerica che si basa su sequenze di numeri casualiper calcolare le probabilit associate a determinati eventi.
Pu essere considerato come un metodo per effettuare esperimentivirtuali (simulazione) in quanto riproduce le caratteristiche fluttuazioni statistiche di un esperimento reale.
In generale, dal punto di vista strettamente matematico, pu essere considerato come una tecnica di integrazione numerica, particolarmente utile per integrali in molte dimensioni.
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
3
Numeri (pseudo)casualiCome osservato la base del metodo Monte Carlo la possibilit di avere a disposizione una sequenza di numeri casuali. Tale sequenza pu essere genuinamente casuale (come nel caso dei tempi di decadimento di una sostanza radioattiva, o del risultato del lancio di 32 monete, per definire i 32 bits che rappresentano un dato numero) o, molto pi spesso, essere un sequenza pseudo casuale (cio in realt perfettamente deterministica !!!) di numeri:
)(1 nn xfx =+Il valore x0 che innesca la sequenza viene detto seme (random seed) della sequenza. Ma come pu una sequenza perfettamente deterministica sembrare casuale ?
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
4
Esempio di transizione al caos
)1(1 nnn xxx =+ Consideriamo ora la sequenza:
La successione avr comportamenti diversi a seconda del parametro Se per certi valori di essa risultasse convergente, per n che tende a infinito x varrebbe:
1)1( == xxxx
2F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
5
Comportamento stabile
xn
n > 200
Infatti, per sufficiente piccolo, partendo da:
x0 = 0.5
la successione converge
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
6
Biforcazione
xn
n > 200
Per superiore a 3la serie non converge, ma oscilla tra due valori:
xa = xb (1 xb)xb = xa (1 xa)
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
7
Biforcazione II
xn
n > 200
La biforcazione si ripete al crescere di Ci sono sequenze di 4, 8, 16 etc. valori che si ripetono
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
8
Comportamento caotico
xn
200 < n < 100000
Per ancora pi grande, la sequenza caotica.
Per esempio per =4 i valori riempiono densamente lintervallo [0, 1]
3F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
9
Generatore lineare congruenzialeUn semplice ma utile generatore che fornisce numeri distribuiti in modo uniforme fornito dal seguente algoritmo:
mcxax nn mod )(1 +=+I parametri interi a, c vanno scelti in modo da massimizzare ilperiodo, il cui valore massimo possibile proprio m. I numeri generati sono in generale compresi fra 0 ed m-1. Per ottenere numeri reali uniformi in [0,1) si effettua banalmente la trasformazione:
mxx nn
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
10
Un esempioAd esempio la funzione di libreria standard del C, drand48() si basa su un generatore lineare congruenziale con
Il generatore lineare congruenziale ha alcuni difetti:I bit meno significativi sono meno casuali di quelli pi significativiEsistono sequenze correlate: una successione di n numeri pseudocasuali vincolata ad un iperpiano n-1 dimensionale se vista in n dimensioni, ed esistono m1/d di questi iperpiani (effetto Marsaglia)
m = 248
a = 25214903917
c = 11
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
11
Generatori FibonacciUna variante interessante, alla base del diffusissimo generatoreRANMAR, utilizzato in fisica delle particelle per moltissimi anni il metodo alla Fibonaccci in cui ciascun elemento della serie non funzione solo del precedente ma di pi di un elemento della serie stessa.
mxfxfx qnpnn mod))()(( =Risultati migliori in termini di periodo ed effetto Marsaglia si possono ottenere combinando pi generatori, ad esempio usando un generatore per ordinare in modo casuale le sequenze generate da un altro generatore etc.
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
12
Generatore Gaussiano
Una volta ottenuto un buon generatore uniforme, possibile generare punti secondo una generica distribuzione di probabilit. Una maniera per ottenere in modo molto semplice eventi distribuiti secondo una Gaussiana fare la media di n numeri distribuiti uniformemente: il teorema del limite centrale allora garantir che nel limite di n infinito la media sar distribuita normalmente. In pratica infinito pu essere un numero abbastanza piccolo
4F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
13
Distribuzione di 1/ni=1,n ri
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
14
Confronto con la Gaussiana
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
15
Trasformazioni lineari
interessante notare che, una volta che si dispone di un generatore uniforme in [0, 1] o di un generatore che genera secondo la distribuzione normale N(0,1) facile ottenere numeri distribuiti uniformemente in [a,b] o secondo una Gaussiana arbitraria G(,). Basta applicare le trasformazioni lineari:
),G( come distr. N(0,1) come odistribuit b][a,in unif. )([0,1]in uniforme
rqrrabaqr
+=+=
Distribuzione angolare uniformeUna maniera estremamente rapida per generare direzioni uniformemente nello spazio, senza nessuna chiamata a funzione a parte quella per generare i numeri casuali uniformi la seguente:
1. Genera r1,r2 uniformi in (0,1)2. Calcola v1=2r1-1 (uniforme in (1,1))3. Calcola R2 somma dei quadrati di v1 ed r24. Se R2>1 torna al passo 15. Calcola
6. Genera un terzo numero r3 e poni cos = 2r3 17. Il versore dato da (sin cos , sin sin, cos)
2
22
21
221 cos ;2sin
Rrv
Rrv ==
5F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
17
Generare una distribuzione nota (1)
xPxf
dd)( =
=x
xdxfxF )( )(
Vogliamo ora generare punti secondo una generica (ma nota!) densitdi probabilit:
Ricordiamo che la distribuzione cumulativa data da:
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
18
Generare una distribuzione nota (2)
Se nota linversa della distribuzione cumulativa, la variabile x definita come:
x = F 1( r )
distribuita secondo la distribuzione f (x) se r distribuita uniformemente tra 0 e 1
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
19
Dimostrazione
)(dd xf
xF
dxdr ==
)(dd
dd
dd
dd xf
rP
xr
rP
xP ==
Siccome r = F (x ), allora
Quindi, se consideriamo la densit di probabilit per la variabile casuale x (considerata come funzione della variabile casuale r) si ha:
Se r ha una distribuzione uniforme, allora dP/ dr = 1, e quindi si ha dP/ dx = f (x ) c.v.d
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
20
Distribuzione esponenzialexexf
xP == )(
dd
[ ]
)1ln(1)(
)1ln(11
1d )()(
1
00
rrFx
rxrere
eexxfxF
xx
xxxx
xx
=====
===
==
)ln(1)(1 rrFx ==1-r e r hanno sempredistribuzione uniforme
tra 0 e 1
Distribuzione esponenziale:
6F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
21
Distribuzioni discreteLa logica la stessa della generazione secondo una distribuzione continua nota linversa della cumulativa:
1) Estrai r uniformamente in (0,1)2) Detta P(k) la somma delle probabilit della
distribuzione cercata per i valori da 0 fino a k (con P(0) = 0 ) trova il k tale che P(k) < r P(k+1)
3) I k cos ottenuti saranno distribuiti secondo la distribuzione cercata.
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
22
Distribuzione di PoissonNella pratica per la distribuzione di Poisson, per molto grandi lesponenziale e contenuto in P(k) pu essere al di l della precisione floating point della macchina. Si preferisce allora sfruttare il fatto che al limite per m che tende a infinito la Poissoniana tende ad una Gaussiana generando z come N(0,1) ed effettuando poi la trasformazione:
])[,0max( zk +=
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
23
Distribuzione multinormaleSe si deve generare secondo una distribuzione multinormale con n variabili e matrice di covarianza V di dimensione n X n, a partire da n variabili N(0,1) indipendenti z1, zn si pu utilizzare un cambio di variabile da z a x in modo che x risulti correlato. Inpratica data:
)121exp(
)2(1)( 2/ zzzf
Tn =
il problema (supposto il vettore dei valori medi identicamente nullo) trovare la trasformazione x(z) tale che
)21exp(
)2()det()( 2/
2/1
WxxWxf Tn = F. Ambrosino Analisi Dati in Fisica Subnucleare
A.A. 2005-200624
Distribuzione multinormale (2)Risulta utile allora la cosiddetta decomposizione di Cholesky : supponiamo di aver costruito una matrice triangolare R (radice quadrata) tale che V = RTR. Allora si ha:
zRxxRzzzxRRxxRRxWxx
TT
TTTTTT
=====
1
111
)(1)()(
Lo jacobiano della trasformazione di variabili fornisce poi il fattore det(W)1/2 che completa la trasformazione. In definitiva se i valori medi sono diversi da zero la trasformazione
zRx T+=
7F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
25
Decomposizione di CholeskyLa matrice R si ottiene attraverso un procedimento iterativo a partire da V(0) = V. Si costruiscono in successione le matrici:
1,...1
,...1,con
)1(
)1(
)1()(
===
+==
nkR
VR
VR
nkjiRRVV
ii
kij
ij
kiiii
kjkik
ijk
ij
La decomposizione di Cholesky molto usata quando si devono effettuare inversioni di matrici di covarianza con errori molto grandi, come nei primi steps di un filtro di Kalman.
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
26
Decomposizione di Cholesky (2)Per n = 2 con fattore di correlazione si ha:
=
=
=
==
22
21
22221
)1(
21
2221
2121)0(
10
)1(00
00
R
V
R
VV
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
27
Distribuzione binormalePer quanto appena detto per ottenere una distribuzione binormalecorrelata a partire da due numeri z1 e z2 distribuiti secondo N(0,1) si esegue la trasformazione:
)1( 22
1222
1111
zzx
zx
++=+=
F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
28
Hit or miss Monte Carlo
x
f(x)
a b
m
hit
miss
Per riprodurre una distribuzione:
1. x estratto unif. Tra a e b2. Viene calcolato f=f(x)3. Viene estratto r tra 0 e m,
dove mmaxx(f(x))4. Se r>f ripeto lestrazione di x,
se r
8F. Ambrosino Analisi Dati in Fisica SubnucleareA.A. 2005-2006
29
Campionamento per importanza
xa0 a3
1
2
3
a1 a2
Il metodo pu essere ripetuto per regioni:1. x estratto in una delle
regioni (1), (2), o (3) con prob.proporzionale allarea della regione
2. Viene applicato il metodo hit-or-miss limitatamente alla regione scelta
In questo modo, la densitdei valori estratti prop. a f(x), ma si estrae un numerominore di numeri casuali(il programma pi veloce!)