Lezioni: parte quinta Modelli numerici in Fisica
Metodo Monte Carlo per l’integrazione
Richiamo dei metodi di integrazione numerica
a b
∫=b
a
dxxfF )(
Approx. rettangolare
∑−
=
Δ=1
0)(
n
kkn xxfF
nabx −
=Δ
Lezioni: parte quinta Modelli numerici in Fisica
Regole del trapezio e di Simpson
Regola del trapezio
xxfxfxfFn
knin Δ⎥⎦
⎤⎢⎣
⎡++= ∑
−
=
1
10 )(
21)()(
21
Regola di Simpson
[ ] xbfxfxfxfafF nn Δ+++++= − )()(4)(2)(4)(31
121 K
Lezioni: parte quinta Modelli numerici in Fisica
Calcolo dell’errore
K+−′′+−′+= 2))((21))(()()( iiiii xxxfxxxfxfxf
K+Δ′′+Δ′+Δ=∫+
32 )(61)(
21)()(
1
xxfxxfxxfdxxf ii
x
xi
i
i
errore su ogni step 2)(21 xxf ii Δ′≈Δ
errore totalenn
abnxnn i1)(
22 ∝⎟
⎠⎞
⎜⎝⎛ −
=Δ=Δ
FFn −
Lezioni: parte quinta Modelli numerici in Fisica
Andamento dell’errore
Regola del trapezio 2
1n
∝Δ
Regola di Simpson 4
1n
∝Δ
La regola di Simpson va meglio delle altre
Verificare i risultati per Simpson
Lezioni: parte quinta Modelli numerici in Fisica
Errore in dimensione d
an1
∝ΔSe per un integrale unidimensionale vale
Per un integrale in d dimensioni valedan /
1∝Δ
4
1 1dn
∝Δ=
Regola di Simpson:
2
1 2dn
∝Δ= 3/4
1 3dn
∝Δ=
Integrazione Monte Carlo
d qualsiasiper 1n
∝Δ
Lezioni: parte quinta Modelli numerici in Fisica
Calcolo di π
M. Lazzarini 1901 (Buffon ‘800)Numero tentativi: Nt
Numero successi: Ns
( ) 42 2
2 ππ==
RR
quadrato Areacerchio Area
t
s
NN
quadrato Areacerchio Area
=R
t
s
NN4=π
Lezioni: parte quinta Modelli numerici in Fisica
Calcolo di π
Lazzarini: con 3407 lanci → 3.1415929 (?)
Versione moderna: si usa il computer
• si estraggono due numeri random in modo da avere un punto a caso –R< x <R –R< y < R
x
y
Con 107 tentativi
π=3.14173
Lezioni: parte quinta Modelli numerici in Fisica
Integrazione Monte Carlo hit and miss
a b
h
habA )( −=
Scelta random di h0 e ≤≤≤≤ ii ybxa
if )( ii xfy ≤ then hit else miss
nnAF S
n =
rabax )( −+=
Integrare e-x fra 0 e 1
Lezioni: parte quinta Modelli numerici in Fisica
Integrazione Monte Carlo basato sul metodo di sampling
Si sceglie un numero random x tale che bxa ≤≤
∑=
−>=<−=n
kkn xf
nabfabF
1)(1)()(
Come si stima l’errore ? FFn −
Usare il programma per l’integrazione M.C. di
Fra [0,1] il risultato è pi greco
214)( xxf −=
Lezioni: parte quinta Modelli numerici in Fisica
Calcolo dell’errore nell’integrazione M.C.
Si può pensare di stimare l’errore usando la varianza
222 ><−>=< ffσ
∑=
>=<n
kkxf
nf
1)(1
∑=
>=<n
kkxf
nf
1
22 )(1
Ma l’errore stimato risulta troppo grande: vedere l’esempio precedente confrontando σ con
π−nF
Lezioni: parte quinta Modelli numerici in Fisica
Stima dell’errore con run diversi
• Si effettuano vari run indipendenti della stessa lunghezza
• per ogni run si calcolano le medie e le varianze
αα run nel ottenuta media )(11∑=
=><n
kkxf
nf
∑=
><>=<m
fm
f1
1α
αSi calcola: ∑
=
><>=<m
fm
f1
22 1α
α
e quindi: 222 ><−>=< ffmσ
Lezioni: parte quinta Modelli numerici in Fisica
Stima dell’errore col metodo dei blocchi
• Si effettua un unico run di n step
• si divide il run in nb blocchi di m=n/nbstep
Valgono le formule di prima ma ora le somme vanno fatte sulle medie ottenute in ogni “blocco”
∑=
><=><bn
bb f
nf
1
1α
α
L’errore risulta essere da 222bbb ff ><−>=<σ
mbσ≈Δ
Lezioni: parte quinta Modelli numerici in Fisica
Importance sampling (1)
Per migliorare la convergenza del metodo M.C. si può cercare di migliorare il campionamento sui punti estratti random. Se dobbiamo calcolare:
∫=b
a
dxxfF )(
1)( =∫b
a
dxxp
[ ]∫=b
a
dxxpxpxfF )()()(
Possiamo introdurre una funzione generica p(x) che soddisfi
Trasformiamo l’integrale
Lezioni: parte quinta Modelli numerici in Fisica
Importance sampling (2)
[ ] ∑∫=
=≈=n
k k
kn
b
a xpxf
nFdxxp
xpxfF
1 )()(1)(
)()(
L’integrale può essere calcolato come
dove ora le xk sono distribuite secondo la funzione p(x) che deve essere scelta in modo opportuno.
La distribuzione che abbiamo usato finora è di tipo uniforme
abxp
−=
1)(
Lezioni: parte quinta Modelli numerici in Fisica
Distribuzioni non uniformi (1)
Generica p(x) tale che p(x)dx è la probabilità che ci sia un evento nell’intervallo x-x+dx, vogliamo che
Abbiamo usato finora una distribuzione uniforme e vogliamo passare ad una distribuzione generica.
∫ ∞−′′=
xxdxpxW )()( 1)( =+∞W
altrimenti10
0
)(<<
⎩⎨⎧
=rdr
drrpu
Distribuzione uniforme di numeri r con 0<r<1
1)(1
0
=∫ drrpu
dxxpdrrpu )()( =
per ottenerla definiamo
Lezioni: parte quinta Modelli numerici in Fisica
Distribuzioni non uniformi (2)
altrimenti10
0
)(<<
⎩⎨⎧
=xdx
dxxpu che dato
∫ ∞−′′=
xxdxpxW )()(
)(xpdxdW
= drrpdxxpdW u )()( ==
10 )()()(0
<<=′′=′′= ∫∫ ∞−rrxdxpxdxprW
r
u
r
u
Lezioni: parte quinta Modelli numerici in Fisica
Distribuzioni non uniformi (3)
rxdxpxWx
=′′= ∫ ∞−)()(
Si ottiene x distribuito secondo p(x) invertendo questa relazione e ricavando
)()1( rWx −=dove
WW di inversal' è (-1)
Lezioni: parte quinta Modelli numerici in Fisica
Distribuzioni non uniformi (riassunto)
A partire dai numeri random r distribuiti in modo uniforme 0<r<1
invertendo la relazione
rxdxpxWx
=′′= ∫ ∞−)()(
si possono ottenere numeri x distribuiti secondo una p(x)
)()1( rWx −=per avere
questa operazione non è sempre facile o possibile.
Lezioni: parte quinta Modelli numerici in Fisica
Esempio 1 (facile!)
Vogliamo x random distribuito uniformemente fra a e b
abxp
−=
1)(
abax
abdxxW
x
a −−
=−
= ∫)( rabax=
−−
rabax )( −+=quindi
Lezioni: parte quinta Modelli numerici in Fisica
Esempio 2 (meno facile)
Vogliamo x random distribuito in modo esponenziale
∞≤≤= − xexp x 0 1)( λ
λ
λλ
λxx x edxexW −− −== ∫ 11)(
0re x =− − λ1
quindi posso ottenere x con
rx logλ−=
Lezioni: parte quinta Modelli numerici in Fisica
Scegliere una p(x) per importance sampling
La p(x) va scelta in modo da minimizzare la varianza dell’integrando
∑=
=n
k k
kn xp
xfn
F1 )(
)(1
∑=
−=
n
kkn xf
nabF
1
)(
dovrebbe avere una varianzainferiore a
Lezioni: parte quinta Modelli numerici in Fisica
Esempio
21)( xxf −=
Provare ad integrarla con
)1()( xAxp −=
Naturalmente A deve essere tale da normalizzare la p(x) a 1
Lezioni: parte quinta Modelli numerici in Fisica
Lezioni: parte quinta Modelli numerici in Fisica
Prova con altra funzione p(x)
21)( xxf −=
usare ora
xAexp −=)(
si vedrà un notevole miglioramento
Lezioni: parte quinta Modelli numerici in Fisica
Lezioni: parte quinta Modelli numerici in Fisica
Ancora un esempio
2
)( xexf −=
842700793.021)1(
211
0
2
ππ ==∫ − erfdxe x
calcolare
Con normale integrazione MC e poi con importancesampling usando:
xAexp −=)(
Lezioni: parte quinta Modelli numerici in Fisica
Lezioni: parte quinta Modelli numerici in Fisica
Integrazione Monte Carlo col rejection methodMetodo proposto da Von Neumann
1. si calcola il massimo della p(x) : p0
2. si estrae un numero random r1
3. si ottiene x = a+r1*(b-a) e quindi p(x)
4. si estrae un secondo numero random r2
5. si calcola p1=p0*r2
Se p1 < p(x) si accetta
si rifiuta e si torna al 2
altrimenti
si calcola f(x)/p(x) e si torna al 2
Lezioni: parte quinta Modelli numerici in Fisica
Rejection method
p0
p(x)
Si riesce a mappare la funzione peso con una procedura di hit and miss
Lezioni: parte quinta Modelli numerici in Fisica
Esempio
xAexp −=)(
21)( xxf −=
Integrare la solita funzione
con
ma usando il rejection method