8
F. Ambrosino Analisi Dati in Fisica Subnucleare A.A. 2005-2006 1 Analisi dati in Fisica Subnucleare Introduzione al metodo Monte Carlo (N.B. parte di queste trasparenze sono “riciclate” da un seminario di L. Lista) “Gli autori minori fanno citazioni. I grandi artisti copiano” (I. Strawinsky) F. Ambrosino Analisi Dati in Fisica Subnucleare A.A. 2005-2006 2 Il metodo Monte Carlo È una tecnica numerica che si basa su sequenze di numeri casuali per calcolare le probabilità associate a determinati eventi. Può essere considerato come un metodo per effettuare esperimenti virtuali (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 Subnucleare A.A. 2005-2006 3 Numeri (pseudo)casuali Come 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 n n x f x = + Il valore x 0 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 Subnucleare A.A. 2005-2006 4 Esempio di transizione al caos ) 1 ( 1 n n n x x x = + λ 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 ( = = x x x x

13 MonteCarlo

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!)