RAPPRESENTARE CON UN COMPUTER FENOMENI CASUALI E UTILIZZARLI

Похожие документы
Generazione di numeri casuali

Il Corso di Fisica per Scienze Biologiche

FISICA ( MODERNA ) E PROBABILITÀ

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Giorgio Pastore Maria Peressi

Variabili casuali ad una dimensione Testi degli esercizi. Variabili casuali ad una dimensione a.a. 2012/2013 1

Lanciando un dado, il tuo compagno esclama: uscirà 1, 2, 3, 4, 5 o 6 oppure: uscirà il numero 4. uscirà il numero 9

CALCOLO NUMERICO. Prof. Di Capua Giuseppe. Appunti di Informatica - Prof. Di Capua 1

Distribuzioni di probabilità. Un po' di teoria

NUMERI CASUALI E SIMULAZIONE

Tecniche di simulazione

Introduzione alla probabilità. Renato Mainetti

PROBABILITÀ SCHEDA N. 5 SOMMA E DIFFERENZA DI DUE VARIABILI ALEATORIE DISCRETE

Esercizi di Calcolo delle Probabilità

Analisi degli Errori di Misura. 08/04/2009 G.Sirri

- noise di conteggio ; f[m] è un numero intero che è la realizzazione di una variabile aleatoria con valor medio (valore atteso) f 0 [m].

Metodi Computazionali della Fisica Secondo Modulo: C++

Il metodo Monte Carlo. Esempio di transizione al caos. Numeri (pseudo)casuali. λ 1. Analisi dati in Fisica Subnucleare

A. Veneziani Statistica di due dadi verificata con un programma C#

PROBABILITÀ - SCHEDA N. 3 VARIABILI ALEATORIE CONTINUE E SIMULAZIONE

Calcolo delle Probabilità e Statistica Matematica Fisciano, 10/1/2012

Simulazione dei dati

2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme

Metodi Computazionali. Generazione di numeri pseudocasuali

Statistica Inferenziale

Generazione di numeri pseudo-casuali

Corso di Fondamenti di TLC Esercizi di Probabilitá

UNIVERSITÀ di ROMA TOR VERGATA

PROBABILITÀ SCHEDA N. 5 SOMMA E DIFFERENZA DI DUE VARIABILI ALEATORIE DISCRETE

ESERCIZI SU EVENTI E VARIABILI ALEATORIE DISCRETE

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

La simulazione con DERIVE Marcello Pedone LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE

Probabilità delle cause:

Lezione 2. La probabilità oggettiva : definizione classica e frequentistica e loro problemi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

LA DISTRIBUZIONE NORMALE o DI GAUSS

Generazione di numeri random. Distribuzioni uniformi

Esercizi su variabili aleatorie discrete

Matematica con elementi di statistica ESERCIZI: probabilità

Esercitazione del 31/01/2012 Istituzioni di Calcolo delle Probabilità

Транскрипт:

Fare scienza con il computer RAPPRESENTARE CON UN COMPUTER FENOMENI CASUALI E UTILIZZARLI Maria Peressi (peressi@ts.infn.it) Giorgio Pastore (pastore@ts.infn.it) 24 gennaio 211

- esempio semplice di fenomeno casuale: quale numero uscira dal lancio di un dado singolo?... impredicibile!

- altro esempio di fenomeno casuale: riprendiamo il biliardo a stadio: (v. programma biliardi per caso) se cambiamo di poco la condizione iniziale di una biglia, cosa possiamo dire della sua posizione finale? possiamo prevedere dove sara?... impredicibile! perche? forte dipendenza dalle condizioni iniziali (confronto: le traiettorie in un biliardo circolare, invece, sono regolari => la posizione finale della biglia e ragionevolmente predicibile)

L impredicibilita dello stato fisico puo essere codificata (quantificata) in un numero: esempio : in quale quadrante il prossimo impatto? (, 1, 2, 3?) => vedi file codifica.txt Facciamo n rimbalzi; sappiamo prevedere quale numero tra {, 1, 2, 3} verra al prossimo rimbalzo? => possiamo usare questo fenomeno fisico (rimbalzi in un biliardo a stadio) per generare una sequenza di numeri casuali

... ma questo e un metodo un po : - scomodo - lungo - non controllabile... c e qualche metodo migliore per generare numeri casuali? ma prima di preoccuparci di cio, precisiamo i termini della questione:

che cosa vuol dire casuale?

Cos e un numero casuale? 3 e un numero casuale? Numeri casuali

Numeri casuali Cos e un numero casuale? 3 e un numero casuale? NO!!! Non si puo dire nulla di un numero singolo

Cos e un numero casuale? 3 e un numero casuale? Numeri casuali NO!!! Non si puo dire nulla di un numero singolo (A) 1 2 3 4 5 6 7 8... (B) 4 8 6 7 2 1 5 3... La sequenza (B) ci appare casuale, (A) no... Una sequenza di numeri casuali e una sequenza di numeri che sembrano impredicibili, da cui non si riesce ad estrarre alcuna regolarita, pero...

Giochiamo con un dado Se lanciamo piu volte un dado a 6 facce (non truccato!) otteniamo una sequenza di numeri casuali tra 1 e 6 (...) I singoli risultati ci interessano poco, ma possiamo chiederci: istogramma delle frequenze? valore medio? cioe proprieta statistiche della sequenza

Proprieta statistiche dei numeri casuali Istogramma di frequenze Contiamo quante volte ogni numero e uscito: 1 2 3 4 5 6 esempio di distribuzione uniforme

Proprieta statistiche dei numeri casuali Valor medio dalla distribuzione uniforme di numeri interi in [1,6], calcolabile la MEDIA: <r> = 3 1 2 3 4 5 6 <r> Quindi: Una sequenza di numeri casuali e una sequenza di numeri che sembrano impredicibili ma che hanno ben definite proprieta statistiche

Dettagli: come generare numeri casuali metodi manuali: - lancio di dadi, di monete... - estrazione da urne, da tabelle... Ottime proprieta di casualita, ma... lunghi!!! praticamente inutilizzabili!!! - dispositivi elettronici ad hoc... NO! altri problemi... generazione con il computer: Generazione mediante metodi aritmetici

Generazione di numeri casuali (o meglio: pseudocasuali ) con il computer

Generazione al computer Un computer (deterministico!) non puo generare dei numeri rigorosamente casuali...... ma possiamo scrivere un algoritmo che generi una sequenza di numeri avente le stesse proprietà statistiche di una sequenza di numeri davvero casuali, con distribuzione uniforme e non correlazione tra i numeri generati: NUMERI PSEUDOCASUALI In pratica: stesso valore di una sequenza realmente casuale! Vantaggi: rapidita, possibilita di ricreare la stessa sequenza fornendo all'algoritmo lo stesso valore iniziale ( seme )

( middle square, John Von Neumann, 1946) Per generare una sequenza di numeri con 1 cifre: si parte da un numero, si eleva al quadrato e si prendono le 1 cifre centrali, etc. etc.. Esempio: 5772156649**2 = 333177923859499291 queste cifre centrali sono il prossimo numero NB: la sequenza non e veramente casuale, perche ogni numero e determinato dal precedente. Ma sembra casuale! Possibili problemi: altro esempio, brutto : 61**2 = 3721 21**2 = 441 41**2 = 1681 81**2 = 6561 un metodo possibile

un altro metodo: LCM (linear congruential method) x n+1 = resto intero di ( ) a xn + c x : valore iniziale ( seme o seed ) a, c, m : opportunatamente scelti a, c > o =, m> x, c, a Esempio brutto : a=c= x =7, m=1 : sequenza: {7, 6, 9,, 7, 6, 9,,...} m ( modulo )

Generazione al computer Tipicamente procedure intrinseche (migliori!) che generano numeri casuali tra [,1] con distribuzione uniforme

Giochiamo con un dado elettronico facciamo generare al computer un numero casuale tra 1 e 6 istogramma delle frequenze? valore medio? VariabileCasuale.java

Giochiamo con due dadi.. lancio simultaneo, e consideriamo la sequenza dei risultati ottenuti dalla somma dei 2 numeri istogramma delle frequenze: valore piu probabile? valore medio?... e con piu dadi... VariabileCasuale.java

Giochiamo con due dadi.. risultato degli esperimenti.18 mu=7.341, sigma 2 =5.94537.8 media=35.1322, varianza=29.248723.16.7.14.6.12.5.1.4.8.3.6.4.2.2.1 1 2 3 4 5 6 7 8 9 1 11 12 1 2 3 4 5 6 7 Dalla figura appare evidente come nel caso di due dadi (sinistra) il punteggio più probabile è 7 (probabilità 6/36 = 1/6) e quelli meno probabili 2 e 12 (probabilità 1/36). Inoltre all aumentare del numero dei dadi (destra) le frequenze tendono ad essere distribuite secondo una campana gaussiana corrispondente ad una distribuzione cosiddetta normale.

un occhiata a cosa c e dentro la scatola... Numeri random in Java - I In Java si puo utilizzare semplicemente la classe Math: // valore compreso tra e 1 double x = Math.random(); (da lo stesso risultato che Random nextdouble() descritto nella prossima diapositiva)

Numeri random in Java - II java.util.random: oppure la classe import java.util.random; // da scrivere all inizio del codice Costruttori Random Random r = new Random(); // per default il seme (seed)!!!!!!!!!! // viene preso dal clock della macchina Random r = new Random(long seed); //qui invece e fissato per!!!!!!!!!!!!!! //poter riprodurre una sequenza Metodi Random Tutti i seguenti metodi ritornano un numero random con distribuzione uniforme, tranne nextgaussian(). Qui x e un oggetto Random. type! chiamata! Descrizione int i =! r.nextint(int n)! da un random int tra e n int i =! r.nextint()! da un random int tra e 2**32 long l =! r.nextlong()! da un random long (full range) float f =!r.nextfloat()! da un random float tra e 1 double d =! r.nextdouble()! da un random double tra e 1 boolean b =!r.nextboolean() da un random boolean (true o false) double d =! xrnextgaussian() da un n. random, media e dev. st. 1

+)$#,&- ")-.& /(.-# import java.util.random; public class Dado { //costruttore che costruisce un dado // con s facce } public Dado(int s) { facce = s; generatore = new Random(); } public int lancia() { return 1 + generatore.nextint(facce); } private Random generatore; private int facce; // Questo programma simula 1 lanci del dado public class TestaDado { public static void main(string[] args) { Dado d = new Dado(6); final int LANCI = 1; for (int i = 1; i <= LANCI; i++) { int n = d.lancia(); System.out.print(n + " "); } System.out.println(); } }

Distribuzione non uniforme - I Riprendiamo i risultati dellʼesperimento con 2 dadi: Se consideriamo la somma di N variabili casuali uniformi, l'andamento della distribuzione della variabile somma non eʼ piuʼ uniforme ma, allʼ aumentare di N, approssima una distribuzione particolare dal caratteristico profila a forma di campana (distribuzione normale o gaussiana): f(x) = ( ) 1 exp x2 2πσ 2 2σ 2

Distribuzione non uniforme - II Che significato ha la somma di N variabili casuali uniformi? puoʼ rappresentare ad esempio la posizione finale di un ʻcamminatoreʼ che fa N passi a caso, a destra o a sinistra con equiprobabilitaʼ (ʻrandom walkʼ); simulazione ad esempio considerando i passi tutti di lunghezza uguale e generando una variabile intera casuale o 1 p = p =5%

Distribuzione non uniforme - III E facile calcolare analiticamente la probabilita per un random walk di passi di finire in un punto : si tratta di un triangolo di Pascal con degli zeri! numero di passi posizione x n \ x -5-4 -3-2 -1 1 2 3 4 5 1 1 1 1 2 2 1 2 1 2 4 4 4 1 3 3 1 3 8 8 8 8 4 1 16 4 16 6 16 4 16 1 16 5 1 32 5 32 1 32 1 32 5 32 1 32

La tavola di Galton distribuzione di probabilita della posizione finale di un random walk unidimensionale Biglie che partono da una stessa posizione centrale e cadono deviate da chiodi disposti secondo uno schema triangolare. Ogni volta che una sferetta colpisce un chiodo ha il 5% di probabilità di cadere a sinistra e il 5% a destra. Le palline si accumulano nelle scanalature collocate alla base della struttura, formando delle pile con una certa distribuzione. poche tante In questa simulazione le pile nelle scanalature sono la somma di N=8 variabili casuali, ma se si aggiungono più file di chiodi (cioè se si aumenta N, il numero di variabili casuali), l'andamento della distribuzione approssima quello della distribuzione normale.

Alcuni link: http://www.stattucino.com/berrie/dsl/galton.html http://webphysics.davidson.edu/applets/galton4/ galton_mean.html http://www.jcu.edu/math/isep/quincunx/quincunx.html

Possiamo fare della matematica o della fisica con i numeri casuali?

A cosa servono i numeri casuali? I numeri casuali servono : per calcolare aree... (e il π per simulare processi casuali... (VEDIAMO LA PROSSIMA VOLTA)...) (ORA VEDIAMO!)

Bersagli, freccette, aree e numeri casuali I numeri casuali servono : per calcolare aree... (e il...) quindi problemi di cui π vorremmo soluzione esatta! r=1 π = Area cerchio Area quadrato/4 = (vedi PiMonteCarlo.java) 4*# punti nel cerchio # punti nel quadrato

Scatole, palline, diffusione I numeri casuali servono : e numeri casuali per simulare processi casuali (approccio statistico) Gas in un recipiente diviso in due parti da una parete con sportellino apribile che mette in comunicazione le due zone del contenitore. Il gas inizialmente e concentrato tutto in una delle due parti. ParticelleNellaScatola.java DOMANDA interessante: come cambia nel tempo il numero di particelle nelle due parti? DOMANDA poco interessante : qual e con precisione la traiettoria di ogni particella?

Una volta aperto lo sportellino, il gas si espande gradualmente nell altra parte fino a che non e stata raggiunta una distribuzione uniforme del gas nell intero contenitore.

distribuzione uniforme nelle due parti della scatola osserviamo che il sistema raggiunge questo stato ma le fluttuazioni attorno a tale stato non diminuiscono nel tempo. Per diminuire tali fluttuazioni possiamo aumentare il numero di palline in ciascun urna oppure eseguire diverse simulazioni e calcolare delle medie dei risultati ottenuti. 1 Simulazione modello di Ehrenfest.9.8 frazione di palline nere nell urna A.7.6.5.4.3.2.1 5 1 15 2 25 3 35 4 45 5 t