Metodi Computazionali della Fisica Secondo Modulo: C++

Documenti analoghi
Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

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

NUMERI CASUALI E SIMULAZIONE

Generazione di numeri random. Distribuzioni uniformi

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 9 Novembre 2015

Simulazione dei dati

Il campionamento e l inferenza. Il campionamento e l inferenza

Campionamento La statistica media campionaria e la sua distribuzione. Paola Giacomello Dip. Scienze Sociali ed Economiche Uniroma1

Numeri Random. D.E.I.S. Università di Bologna DEISNet

Algoritmi in C++ (prima parte)

Generazione di numeri casuali

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

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

Generatori di numeri casuali

ESAME. 9 Gennaio 2017 COMPITO B

Corso di Laurea in Ingegneria Informatica e Automatica (M-Z) Università di Roma La Sapienza

Teorema del limite centrale TCL

Metodi Computazionali. Generazione di numeri pseudocasuali

Esercitazione: La distribuzione NORMALE

2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme

LA DISTRIBUZIONE NORMALE o DI GAUSS

Se la funzione è analiticamente invertibile, estratto q, si può ricavare x = x(q).

Distribuzioni e inferenza statistica

Variabili casuali. - di Massimo Cristallo -

Il Corso di Fisica per Scienze Biologiche

DISTRIBUZIONI DI PROBABILITA

Teoria dei Fenomeni Aleatori AA 2012/13

Uso delle funzioni della libreria GSL

L indagine campionaria Lezione 3

STATISTICA (2) ESERCITAZIONE 2. Dott.ssa Antonella Costanzo

1) Entropia di variabili aleatorie continue. 2) Esempi di variabili aleatorie continue. 3) Canali di comunicazione continui. 4) Canale Gaussiano

Il Metodo Monte Carlo è basato sulla generazione di una molteplicità di iterazioni per determinare

Statistica Metodologica Avanzato Test 1: Concetti base di inferenza

RAPPRESENTARE CON UN COMPUTER FENOMENI CASUALI E UTILIZZARLI

Teoria della probabilità Variabili casuali

Serie storiche Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007

Variabili aleatorie. continue. Discreto continuo

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

Statistica. Lezione 4

Distribuzioni di probabilità

Variabili aleatorie gaussiane

LA DISTRIBUZIONE NORMALE o DI GAUSS

Generazione di Numeri Casuali- Parte 2

Confronto tra due popolazioni Lezione 6

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

Pr1: determinare il maggiore di n numeri interi n. Fondamenti di Informatica Prof. Vittoria de Nitto Personè

distribuzione normale

Sperimentazioni di Fisica I mod. A Statistica - Lezione 2

QUANTIZZAZIONE E CONVERSIONE IN FORMA NUMERICA. 1 Fondamenti Segnali e Trasmissione

BLAND-ALTMAN PLOT. + X 2i 2 la differenza ( d ) tra le due misure per ognuno degli n campioni; d i. X i. = X 1i. X 2i

Statistica. Esercitazione 4 17 febbraio 2011 Medie condizionate. Covarianza e correlazione

Il metodo Monte Carlo

Modulo Simulazione Parte 1. Simulazione ad Eventi Discreti: Concetti Base. Organizzazione del modulo

DI IDROLOGIA TECNICA PARTE III

Capitolo 10. La media pesata Calcolo della media pesata

Analisi della varianza

tabelle grafici misure di

Densità di probabilità del prodotto di due variabili casuali distribuite uniformemente

IL CRITERIO DELLA MASSIMA VEROSIMIGLIANZA

Laboratorio di Statistica 1 con R Esercizi per la Relazione. I testi e/o i dati degli esercizi contassegnati da sono tratti dai libri consigliati

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

PROBABILITA. Distribuzione di probabilità

STATISTICA: esercizi svolti sulle VARIABILI CASUALI

Gaussian processes (GP)

Sommario. Calcolo della radice quadrata. Calcolo della radice quadrata. y0 a rappresenta un approssimazione per eccesso dll della radice. y 1 a.

Laboratorio di Programmazione e Calcolo

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

SCHEDA DIDATTICA N 7

Processi di Markov. Processi di Markov

Probabilità e Statistica Esercizi

DISTRIBUZIONI DI CAMPIONAMENTO

Esercizi su variabili aleatorie discrete

Transcript:

Metodi Computazionali della Fisica Secondo Modulo: C++ Seconda Lezione Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 1 / 9

La lezione di oggi Obiettivo: implementare un generatore di numeri casuali; implementare una classe Data; verificare l equivalenza tra propagazione dell errore standard e quella con tecniche Monte Carlo. Contenuti: Linear Congruential Generators; teoremi della probabilità. Strumenti: la routine RAN0. Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 / 9

Generatori di numeri casuali Numeri casuali I numeri casuali fisici sono generati da processi fisici realmente casuali, quali, ad esempio, decadimenti radioattivi, rumore termico, la roulette,... La necessità di un generatore realmente casuale (ovvero non algoritmico) è fondamentale nel caso nel campo informatico (si veda, ad esempio, l uso della crittografia per le connessioni sicure tipo ssh). Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 3 / 9

Generatori di numeri casuali Numeri pseudo-casuali Caratteristiche: Ripetibilità: lo stesso valore iniziale (seed) deve produrre lo stessa sequenza di numeri casuali (fondamentale per il debugging). Casualità: i numeri casuali devono essere: uniformemente distribuiti - ad esempio, in [0, 1); non correlati (per quanto possibile). Lunga periodicità: qualunque generatore dopo un certo numero di chiamate produce le stesse sequenze. Indipendenza: periodo e casualità non devono dipendere dal seed iniziale. Velocità. Portabilità: gli stessi risultati devono essere prodotti su diverse macchine. Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 4 / 9

Generatori di numeri casuali Linear Congruential Generators (LCG) Sequenze di interi tra 0 ed m 1 possono essere generate con la seguente relazione: I i+1 = (ai i + c)modm dove a, c ed m sono costanti intere ed m è la periodicità del generatore. Numeri reali [0, 1) si ottengono dividendo per m: F i = I i /m. Le costanti a, c ed m non sono scelte a caso. Possibili valori sono: a c m 106 183 6075 9301 4997 3380 16807 0 147483647 110351545 1345 147483648 Esercizio 1: Implementare l algoritmo dell LCG Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 5 / 9

Propagazione degli errori Teoremi fondamentali della probabilità Legge grandi numeri: data una variabile casuale X con valore di aspettazione finito µ, al crescere del numero delle osservazioni x i la loro media aritmetica tende al valore di aspettazione x 1 + + x N lim N N = µ Teorema del Limite Centrale: data una variabile casuale X con valore di aspettazione finito µ e varianza σ, al crescere del numero delle osservazioni la loro distribuzione tende ad una gaussiana con media µ e varianza σ /N. Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 6 / 9

Propagazione degli errori Somma di due misure Nel caso in cui si abbiano due misure indipendenti x 1 e x distribuite secondo una guassiana: ( ) ( ) x P(x 1 ) exp 1 x σ1 P(x ) exp σ la distribuzione di probabilità della loro somma è data da [ P(x 1, x ) = P(x 1 )P(x ) exp 1 ( x 1 + x )] [ exp 1 da cui la regola di somma in quadratura degli errori σ 1+ = σ 1 + σ. σ 1 σ (x 1 + x ) σ 1 + σ ], Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 7 / 9

Propagazione degli errori Esercizio Implementare la classe definita dal seguente header file #ifndef _DATA_HPP #define _DATA_HPP #include <iostream> #include <cmath> #include <vector> #include <cstdlib> enum {NODIST,FLAT,GAUSS}; using namespace std; double get_mean(){return _mean;}; double get_sigmatot(){ double tmp=0.; for(size_t i=0;i<_sigma.size();i++)tmp+=_sigma[i]*_sigma[i]; return sqrt(tmp); }; private: double _mean; vector<double> _sigma; class Data { public: }; #endif Data(); Data(double,vector<double>); Data(const Data&); Data(const Data&,size_t); ~Data(){}; Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 8 / 9

Propagazione degli errori Esercizio 3 Utilizzare la classe Data per generare coppie di dati artificiali. Verificare che nel limite di grande N: media ed errore della somma di N coppie di dati equivalgono a quelle che si ottengono dalla somma in quadratura degli errori; il risultato diventa indipendente dal seed iniziale. Visuallizare con gnuplot la distribuzione gaussiana e confrontarla con quelle ottenute con N = 10, 100, 1000 e 10000. Andrea Piccione () Metodi Comptazionali della Fisica - Secondo Modulo: C++ Milano, 09/1/08 9 / 9