Académique Documents
Professionnel Documents
Culture Documents
Prof. Maria Colonnese liceo Classico De Bottis Torre del Greco - Marzo 2017
Abstract
Nel seguito mostreremo:
Introduzione
Il metodo di Montecarlo un metodo numerico molto utile a verificare la stima ottenuta con procedimenti
di calcolo delle probabilit, disponendo di teoremi e formule, oppure per ottenere una stima nei casi di
problemi complessi, con molte variabili in gioco, in cui non semplice disporre di una formula.
Il metodo risale al Progetto Manhattan degli anni '40 e fu ideato da tre big della scienza: Enrico Fermi,
Paul Von Newmann e Stanislaw Mancin Ulam.
Il metodo Montecarlo si pu formalizzare in vari modi ma la sua idea semplice: se si vuole sapere la
probabilit di un evento A, essa il rapporto tra la frequenza dell'evento A e gli N tentativi totali.
Con questo semplice coltellino svizzero numerico si possono risolvere molti tipologie di problemi.
Vediamo qualche esempio, in modalit semplice. Per gli approfondimenti sul Metodo di MonteCarlo, le
varie tipologie di campionamento e la stima dellerrore vedi [1].
Problema determinazione di
Se vogliamo avere una stima di pi greco, possiamo immaginare di usare un cerchio di centro [0,0] e raggio
1.
Il cerchio sappiamo che soddisfa all'equazione 2 + 2 = 1. L'area del cerchio data da 2 = , questo
perch r=1.
Un punto [x,y] o cade nel cerchio o nel quadrato circoscritto ad un quarto di cerchio. Quindi, per le
ipotesi fatte, l'area di un quarto di cerchio /4.
Montecarlo e pi greco
Se generiamo, casualmente, un insieme di punti di coordinate [x,y] con 0 < x < 1 e 0 < y < 1 i punti per cui
2 + 2 < 1 cadono nel cerchio mentre gli altri no.
Il rapporto dei punti che cadono nel cerchio rispetto al totale, se il totale abbastanza grande,
rappresenta una buona approssimazione di /4.
Se si indica con Nx il numero di volte che l'ago intersechi una linea, con N il numero di tentativi totali, se
N sufficientemente grande allora
N / Nx = /2.
Se un gruppo di persone amanti del golf tirano in modo aleatorio X palle verso il terreno dove c' anche il
lago, si avr che N palle finiranno fuori del lago e X-N nel lago.
2
Montecarlo e la superfice di un lago
Per cui:
Area terreno/Area del lago = X/(X-N)
da qui
Area lago = Area terreno * (X-N) / X= b*h*(X-N)/X
Ovviamente stimare una superfice equivale anche a stimare larea sottesa da una curva in un intervallo
(a,b), quindi un integrale definito:
Id = ()
Integrale definito
Se si indica con A=(b-a)*h larea del rettangolo, con Ns i punti sotto la funzione e N i punti totali, allora
una stima dellintegrale della funzione di prima dato da:
Id = (Ns/N)*A
Un altro esempio particolare dell'utilizzo del Metodo Montecarlo l'impiego del metodo nell'analisi
scacchistica per determinare se una mossa e, quindi, una posizione (disposizione dei pezzi bianchi e neri)
forte oppure debole.
Negli ultimi anni alcuni programmi scacchistici in commercio implementano delle opzioni d'analisi che
utilizzano "Montecarlo analisi".
Per valutare una posizione, si fanno giocare al computer migliaia di partite partendo dalla posizione da
analizzare, facendo eseguire al PC delle mosse "random" (una scelta casuale tra le mosse che il programma
giudica pi logiche).
La media dei risultati ottenuti in queste partite un'indicazione plausibile della mossa migliore.
- ingegneria
- fisica
- elettronica
3
- quantistica
- matematica
- giochi
- Machine Learning e DeepMind
Alcune applicazioni di Machine Learning che lo usano sono AlphaGo (per il gioco del go) del Deep
Learning di Google.
Il metodo molto potente se usato in combinazione con altri metodi non parametrici come il resampling.
http://www.sunearthtools.com/dp/tools/pos_earth.php?lang=it
4
2) Definire unarea esterna, abbastanza grande da contenere il Vulcano abbondantemente.
Nell esempio :
Coordinate Rettangolo esterno DD
[X,Y] ALTO - SINISTRA
40.8360939 14.4121802
[X,Y] ALTO - DESTRA
40.8358775 14.4444466
[X,Y] BASSO - SINISTRA
40.8095073 14.4128609
[X,Y] BASSO - DESTRA
40.8092474 14.4447899
Google Map ci suggerisce unarea 1013 km2 che ci servir come controprova di quanto
andremo a stimare attraverso il metodo di Montecarlo
5
Coordinate Rettangolo interno DD
[X,Y] ALTO - SINISTRA
40.8246870 14.4198991
[X,Y] ALTO - DESTRA
40.8249467 14.4329453
[X,Y] BASSO - SINISTRA
40.8165028 14.4331169
[X,Y] BASSO SINISTRA
40.8163729, 14.4205856
4) Scriviamo un programmino (i sorgenti sono in Appendice) che, per numero di tentativi elevato (es.
100mila), deve:
Generare randomicamente delle coordinate di un punto P=[X,Y] allinterno dellarea esterna, quindi
tale che 40.8092474 <= x <= 40.8360939 e 14.4121802 <= y <= 14.4447899
Verificare, poi, se ogni P=[X,Y] cade nell'intervallo
40.8145207 <= x <= 40.8261361 e 14.4198990 <= y <= 14.4348335
Se s, allora il punto cade sulla superfice del vulcano
Contare i punti che cadono sulla superfice del vulcano (NIntArea)
Calcolare larea con la formula AreaV = (NIntArea/TENTATIVI) * 1. * AREA;
\r c:\MC.txt
MC()
Google Maps valuta larea del Vesuvio 2 1525. Il metodo di Montecarlo d lo stesso risultato. Una buona
stima si ottiene con centomila punti (dichiarati nel programma).
Ovviamente lerrore tanto pi grande quanto pi basso il numero di tentativi fatti, perch il tutto
basato sulla Legge dei grandi numeri. Il tempo di esecuzione ovviamente dipender dal numero di
tentativi: con centomila punti occorrono solo 180 ms circa.
6
Commento su alcune istruzioni del programma
Commentiamo qualche istruzione per renderla pi comprensibile.
Il programma ha una prima parte dati nel file dati.gp che definisce le costanti delle coordinate dellarea esterna AE, AI,
AREAESTERNA, NOMEAREAINTERNA.
Si vede che usa una funzione del linguaggio PARI GP che random. Essa stata impostata con un massimo di 2^6=64 perch le
coordinate al massimo arrivano a 41. Random(2^&) mi d un possibile valore tra 0 e 2^6-1.
Come faccio ad avere valori tra XEMIN=40.8092474 e XEMAX=40.8360939 ?
Intanto XEMIN sommato perch random() pu dare 0 e quindi il risultato almeno deve dare XEMIN.
Vogliamo che il risultato sia tra 30 e 70, allora se uso il modulo 40 =70-30 ci riesco
X = XEMIN + random() * XEMAX % (XEMAX-XEMIN);
X = 30 + random()%40
7
Se random() d 1 allora X=31
Se random() d 2 allora X=32
.
Se random() d 40 allora 40%40=0 quindi X=30
Se random() d 41 allora 41%40=1 quindi X=31
Con la trasformata di Radon, ad esempio, si pu fare, in ambito medico, una tomografia (TAC) su un corpo
umano, mandando raggi X verso di esso.
Unidea simile fu usata con i muoni, particelle dello spazio, per avere:
Oggi con tale tecnica possibile studiare linterno di un Vulcano come il Vesuvio, facendone una radiografia
della densit del materiale (principalmente rocce). Il progetto Mu-RAY (vedi [5][6]) uno dei progetti
promossi dallUniversit di Napoli, a cui partecipa Vulcanologia e Fisica delle particelle (INFN), con la
collaborazione di altre universit del mondo. Per video astroparticelle vedi [7].
Il principio semplice. Dal cosmo arrivano radiazioni ad
alta energia che, a contatto con latmosfera, si riducono
in molti tipi di particelle: elettroni, neutroni, protoni,
positroni (antiparticella elettrone - antimateria), raggi
gamma , neutrini, pione o mesone, muoni .
8
Il Vesuvio collocato allinterno dei resti della caldera di un vulcano molto pi grande, il Monte Somma.
Inoltre, alla sommit del Vesuvio, c un cratere largo 500 m e profondo 300 m: ci significa che, per
guardare sotto il fondo del cratere, i muoni devono penetrare in profondit nella montagna, attraverso
quasi 2 chilometri di roccia, per raggiungere i rilevatori sul versante opposto del vulcano.
Solo i muoni di energia estremamente elevata che viaggiano in direzioni suborizzontali sono in grado di
passare attraverso tutta questa roccia, cos il loro flusso ai rilevatori molto debole, rendendo
limaging estremamente difficile. Questo spiega perch il progetto e lo sviluppo della radiografia a muoni
una sfida molto impegnativa.
9
Luniversit ha messo a punto un particolare telescopio di muoni Mu-RAY a 3 pannelli. Con esso si ottiene
un imaging 3D del vulcano, una radiografia tridimensionale. Immaginate una stampante 3D che crea un
vulcano di vetro e disegna punti di colore diverso, in modo da farci vedere cosa succede allinterno. Per
ottenere ci occorre posizionare almeno tre telescopi attorno al vulcano.
Nel seguito mostriamo delle immagini: la prima riga mostra le immagini dellattrezzatura: i tre pannelli
scintillatori (o telescopi) e il materiale di cui costituito. Lattrezzatura si pu alimentare a pannelli solari.
La seconda e terza riga delle immagini mostra che la miglior disposizione dellattrezzatura quella che
riceve i muoni a basso angolo, ovvero sub-orizzontale, perch i muoni ad alta energia riescono a fare un
percorso maggiore.
Lultima riga delle immagini una radiografia interna del vulcano: le parti in rosso sono le parti del
vulcano a maggior densit, in blu a minor densit. Il principio semplice: rocce pi dense assorbono
maggiore quantit di muoni.
10
Il progetto Mu-Ray usa molto la simulazione di Montecarlo al computer per:
11
Anche per tematiche di ottimizzazione il Metodo di Montecarlo pu trovare ancora uno spazio per le
simulazioni al computer: Metodo del Simplesso, General Reduced Gradient, Metodi evolutivi del Vulcano
etc.
Conclusioni su Mu-Ray
Una tecnica del genere, se messa a punto, permette di sapere cosa succede nel vulcano (il Come) e
imparare a prevedere la sua evoluzione; ma non permette ancora di capire il Quando avviene un evento
pericoloso. Tuttavia un grosso passo avanti.
Per avere una idea dellimaging 3D come una radiografia tridimensionale, facciamo vedere, con gnuplot,
che se si dispone di sufficienti dati possibile ad esempio ottenere una immagine 2D del Vesuvio e una
tridimensionale che qui simulata con una funzione matematica, quindi non la vera radiografia del
vulcano ma serve a dare unidea..
Nella figura di sopra la mappa 2D del Vesuvio con i dati simulati del Metodo di Montecarlo. La parte blu
larea esterna, la parte rossa la parte interna stimata.
12
APP MUON FLUX
Un semplice rilevatore di flusso di muoni si pu scaricare su smartphone dal Play store: Muon Flux.
13
Simulazioni con MU FLUX
Con tale APP si possono fare vari test di rilevazioni e trarre delle conclusioni:
Test A: fissato il tempo, settare laltezza a livello del mare del posto (es. 0 m), appoggiare lo
smartphone sul piano di una scrivania e rilevare flussi di muoni e proseguire col Test B.
Test B: fissato il tempo, settare laltezza a livello del mare del posto (es. 0 m), mettere lo
smartphone nel cassetto della scrivania a rilevare flussi di muoni. Perch minore il numero di
muoni?
Test C: fissato il tempo, settare laltezza ad un valore maggiore del Test A (es. 1000 m), appoggiare
lo smartphone sul piano di una scrivania e rilevare flussi di muoni. Perch leggermente simile
(non molto distante) al Test A?
Test D: fissato il tempo, variare i parametri: incidenza del flusso, ad esempio prima 90, poi 45, poi
20, poi 0). Quando aumenta il numero di muoni?
Test E: fissato il tempo, variare i parametri: energia del flusso, aumentarla a 3GeV e poi diminuirla a
2 GeV, poi a 1 GeV. Quando aumenta il numero di muoni?
Test F: fissato il tempo, variare la superfice da 10 cm2 a 60 cm2. Quando aumenta il numero di
muoni?
Appendice
Listati MC.gp e dati.gp
Le aree sono individuate su Google Maps da quattro punti e messe nel dati.txt in un vettore di vettori.
Nel seguito sono indicate con:
AE - Area Esterna scelta
AI - Area Interna Vesuvio scelta
Esempio formato
AE=[ [LAT NO, LONG EST], [LAT NO, LONG EST], [LAT NO, LONG EST], [LAT NO, LONG EST]];
Mentre la variabile AREAESTERNA larea che indica Google Maps ad esempio 8005 2 per l'esempio.
Il programma MC.gp di carattere generale, cio il Metodo di Montecarlo per stimare larea di un qualsiasi oggetto.
Programma dati.gp
AE=[[40.8360939, 14.4121802],[40.8358775,14.4444466],[40.8095073,14.4128609],[40.8092474,14.4447899]];
AI=[[40.8260824,14.4198990],[40.8261361,14.4341469],[40.8145207,14.4202423],[40.8151703,14.4348335]];
AREAESTERNA=8005;
NOMEAREAINTERNA="Vesuvio";
Programma MC.gp
read("c:\\dati.txt");
TENTATIVI=100000;
/* Precisione desiderata per le coordinate */
\p 10
14
/* Per rilevare il tempo di esecuzione */
#
X=XEMIN+random(2^6)*XEMAX%(XEMAX-XEMIN);
Y=YEMIN+random(2^6)*YEMAX%(YEMAX-YEMIN);
CoordXY[1]=X;
CoordXY[2]=Y;
return(CoordXY);
{VerificaPuntoXY(CoordXY)=local();
if( CoordXY[1]<=XVMAX & CoordXY[1]>=XVMIN & CoordXY[2]<=YVMAX & CoordXY[2]>=YVMIN,
return(1);
)
return(0);
}
15
{MC()=local(Check=0, NIntArea=0);
global(XEMIN=0,YEMIN=0,XEMAX=0,YEMAX=0,XVMIN=0,YVMIN=0,XVMAX=0,YVMAX=0);
/* Metodo Montecarlo */
for(i=1,TENTATIVI,
CoordXY=GenRandom();
Check=VerificaPuntoXY(CoordXY);
if(Check==1, NIntArea++);
/* pulizia variabili nel ciclo */
Check=0;
CoordXY[1]=0;
CoordXY[2]=0;
);
AreaV = (NIntArea/TENTATIVI) * 1. * AREAESTERNA;
print("Area Stimata Km^2 = ", AreaV);
}
External.txt
External.txt pu essere prodotto da MC() e conterr i dati generati dal Metodo di Montecarlo per visualizzarli con gnuplot.
Per ottenere quindi una mappa 2D del Vesuvio occorre modificare MC.gp e mettere TENTATIVI a 10000 (altrimenti si hanno troppi
punti da far caricare a gnuplot) e FileWrite=1. Dopo aver ottenuto il file External.txt si rimette di nuovo TENTATIVI=100000 e
FileWrite=0.
Load.txt un programmino scritto da noi per visualizzare con gnuplot i dati prodotti dal Metodo di
Montecarlo dando una vista 2D dellarea del Vesuvio prendendo i dati da External.txt
LOAD.txt
set title 'Vesuviuo Radiografia da alto simulata' # plot title
set xlabel 'Latitudine Nord' # x-axis label
set ylabel 'Longitudine Est' # y-axis label
set xrange [40.805:40.84]
set yrange [14.41:14.45]
plot "External.txt" using 1:2 title "External Area" lt rgb "blue","Internal.txt" using 1:2 title "Vesuvius" lt rgb "red"
Load2.txt programmino scritto da noi per fare una simulazione con una funzione matematica e che
produce un esempio 3D di vulcano.
LOAD2.txt
16
set title 'Vesuvio Radiografia 3D simulata' # plot title
set xlabel 'X' # x-axis label
set ylabel 'Y' # y-axis label
set xrange [-2:2]
set yrange [-2:2]
set pm3d
splot exp(-2*x*x)*exp(-2*y*y)
[1] http://idefix.mi.infn.it/~palombo/didattica/Lab-TNDS/CorsoLab/LezioniFrontali/Lezione6-Metodi-
MonteCarlo.pdf
Astroparticelle e Relativit
[2] http://www.astroparticelle.it/muon-time-relativity.asp
[3] http://www.lafisica.info/i_muoni_.html
[4]
https://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjKo
uX0mq3SAhVHBSwKHdVAC4sQFggaMAA&url=http%3A%2F%2Fwww.infn.it%2Fthesis%2FPDF%2Fgetfile.ph
p%3Ffilename%3D10735-Amoruso-triennale.pdf&usg=AFQjCNEJVKLflK3b15Rr-
E243u7psbSjPA&bvm=bv.148073327,d.bGg
Mu-Ray
[5] http://mu-ray.fisica.unina.it/
[6] http://www.infn.it/csn5/docs/presentazioni/settembre08/muray_strolin.pdf
[7] https://www.youtube.com/watch?v=UFSbiX9npfg
17