Analisi dei Processi Chimici e Biotecnologici – Matlab® Applicazioni con generatori di numeri casuali - Istruzioni per l’uso - Simulazione numerica di un esperimento - Generatori di numeri casuali: cenni sulla teoria - Generazione di numeri casuali: rumore di tipo uniforme - Generazione di numeri casuali: rumore gaussiano - Comandi avanzati generatori di numeri casuali Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Nelle attività di laboratorio svolte con Matlab® si intende affrontare in modo applicativo concetti relativi a – Teoria della probabilità – Stima dei parametri 2 Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 1 Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Matlab® dispone di una serie di pacchetti aggiuntivi, specifici per differenti applicazioni, che ne aumentano le potenzialità, rispetto alla versione base. • Purtroppo, i pacchetti non sono gratuiti. • Di seguito, si sfrutteranno due pacchetti (Toolboxes): – Il Toolbox Statistics – Il Toolbox Optimization • Saranno anche usati programmi predefiniti costruiti “ad hoc” per i problemi specifici • Le fonti dei programmi sono – Stixbox (pacchetto di file Matlab dedicato all’analisi statistica) • http://www.maths.lth.se/matstat/stixbox – Programmi disponibili dal sito di Matlab – Altro 3 Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Per evitare confusione tra i comandi disponibili nella versione base (utilizzabili quindi con qualunque versione di Matlab) e quelli previsti solo nei toolbox di statistica e ottimizzazione, si userà una legenda in fondo al lucido. • Quando si farà riferimento ai comandi tradizionali della versione base di Matlab®, sarà riportata sul lucido la scrittura “Matlab® base”, come nella presente diapositiva. Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 4 2 Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Quando si sfrutteranno comandi avanzati, relativi ai pacchetti aggiuntivi, sul lucido sarà indicata l’etichetta “Toolbox statistics” e/o “Toolbox optimization”, come nella diapositiva corrente. Toolbox statistics 5 Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Quando si sfrutteranno programmi forniti dal docente, sul lucido sarà indicata l’etichetta “Programmi WEB”, come nella diapositiva corrente. Programmi Web Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 6 3 Analisi dei Processi Chimici e Biotecnologici – Matlab® Istruzioni per l’uso • Nei lucidi di teoria, non relativi a comandi specifici di Matlab® sarà usata l’etichetta “Teoria”. • Questo tipo di visualizzazione sarà sfruttato anche nelle lezioni successive. 7 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Simulazione numerica di un esperimento • Si è visto come una misura connessa ad un esperimento sia inevitabilmente affetta da un errore legato a molteplici fattori che non possono essere controllati dallo sperimentatore. • Di conseguenza, il risultato di un esperimento non fornisce mai lo stesso risultato, ovvero il valore vero di una grandezza misurata. • Ogni esperienza è affetta da una deviazione dal valore vero che cambia ogni volta che l’esperimento è ripetuto. Teoria Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 8 4 Analisi dei Processi Chimici e Biotecnologici – Matlab® Simulazione numerica di un esperimento • Schema di un esperimento: Valore vero della quantità che si sta misurando. + Risultato della singola misura, affetto dall’errore sperimentale Errore nella misura che implica una deviazione dal valore esatto. Tale errore cambia di volta in volta nelle misure, per cui due esperienze diverse assumono valori differenti. 9 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Simulazione numerica di un esperimento • Come simulare con il computer l’errore sperimentale. • L’errore sperimentale può essere simulato con Matlab® usando un generatore di numeri casuali. • Il seguente comando genera un numero casuale compreso tra 0 e 1 >> rand ans = 0.8147 >> Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 10 5 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali – Cenni sulla teoria • Un computer non è in grado di generare dei numeri casuali • Esistono dei programmi che sono in grado di generare delle successioni di numeri che sono apparentemente non correlati tra loro. • I numeri così generati sono detti pseudo-casuali 11 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali – Cenni sulla teoria • Esempio di generatore di numeri pseudo-casuali cx r xi 1 mod i m • Dove la funzione mod (modulo) restituisce il resto di una divisione. 9.2 mod 1.2 4 • Una volta ottenuto il valore xi+1 questo viene utilizzato per calcolare xi+2 e così via. • Il valore x0 è chiamato seme Teoria Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 12 6 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali – Cenni sulla teoria • Esempi di valori comunemente usati (generatore di numeri casuali lineare): c = 16.807 r=0 m = 231-1 • Matlab® riparte sempre dallo stesso seme iniziale quando il programma è riavviato. 13 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali – Cenni sulla teoria • Dal grafico si può vedere come la successione dei numeri sia apparentemente casuale 1 0.9 0.8 0.7 risultato 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 12 14 esecuzioni generatore di numeri casuali Teoria Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 16 18 20 14 7 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali - Piccolo accorgimento • Per evitare che si ripetano gli stessi numeri casuali sui diversi computer si è creato un semplice m-file che ha lo scopo di generare dei numeri casuali partendo da un seme che (si spera) sia distinto per tutti gli studenti • Il file si chiama startran.m • Istruzioni: 1. Lavorare nella cartella in cui è stato copiato il file in questione 2. Digitare nella finestra di comando principale: >> startran Seguire le istruzioni riportate durante l’esecuzione 15 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generatori di numeri casuali – Applicazioni • I generatori di numeri casuali hanno molteplici applicazioni, ad esempio: • Nel criptare codici, ovvero associare ad una successione di numeri e/o simboli una altra successione apparentemente scorrelata (codici GSM, conto corrente, password di accesso etc. etc.). • Nelle simulazioni numeriche su scale microscopiche, in cui il numero casuale simula: – La casualità della struttura a livello molecolare – l’agitazione termica delle molecole – altro … • (metodi di Montecarlo). • Nella simulazione dell’errore sperimentale: – Per analizzare la performance di stimatori statistici – Nello studio dell’affidabilità di sistemi di controllo automatico di processi 16 Teoria • Altro Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 8 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali • Con Matlab® è possibile generare vettori di numeri casuali: >> y = rand(10,1); >> • Con questa scrittura si è scritto un vettore y di 10 righe per una colonna, di numeri casuali compresi tra 0 e 1. • È possibile rappresentare il vettore di numeri casuali >> plot(y); >> 17 Matlab® base Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Statistica descrittiva • È possibile calcolare il valore medio del vettore y con il comando mean: >> mean(y) ans = 0.5334 • Espressione analitica della media y y i N Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 18 9 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Statistica descrittiva • Si può valutare la dispersione dei dati con il comando var (varianza): >> var(y) ans = 0.0720 • Espressione analitica della varianza: n y i 2 s y 2 i 1 n 1 • È possibile anche calcolare la radice quadrata della varianza (ovvero la deviazione standard) con il comando std Matlab® base 19 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Statistica descrittiva • Il seguente comando: >> hist(y,5) >> • Restituisce un diagramma delle frequenze assolute, ovvero un istogramma in cui gli elementi di y sono suddivisi in 5 intervalli equispaziati e associa a ciascuno di essi il numero di elementi di y che cadono in ciascun intervallo • Esercizio: creare un vettore di numeri causali di dimensione 100×1 e ripetere i passi precedenti. A tal proposito si possono considerare 10 intervalli equispaziati. Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 20 10 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – descrittiva Statistica • Il seguente comando: >> histo(y,5) >> • Restituisce un istogramma in cui gli elementi di y sono suddivisi in 5 intervalli equispaziati e associa a ciascuno di essi il numero di elementi di y che cadono in ciascun intervallo • Esercizio: creare un vettore di numeri causali di dimensione 100×1 e ripetere i passi precedenti. A tal proposito si possono considerare 10 intervalli equispaziati. 21 Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Sintassi del comando histo histo(X, M, odd, scale) Variabile X che definisce il set di dati di cui si vuole rappresentare l’istogramma Numero di intervalli in cui si vuole rappresentare il campione di dati Variabile per il posizionamen to degli intervalli (per comodita’ si pone = 0) Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 L’ultimo argomento dovrebbe essere posto uguale a 1 per avere area unitaria sotto l’istogramma 22 11 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Da notare che all’aumentare delle dimensioni del vettore numeri casuali una struttura nell’istogramma risulta sempre più chiara. >> y = rand(10000,1); >> histo(y,15) >> • Si può intuire che il numero casuale è di tipo uniforme: la probabilità che esso assuma valori nell’intervallo [0, 1] è la stessa in tutto l’intervallo e non ci sono dei valori che sono più ricorrenti di altri. 23 Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Con la seguente scrittura si ottiene un diagramma di tale tipo: 1.4 >> y = rand(10000,1); >> histo(y,15,0,1) >> 1.2 1 0.8 0.6 L’area sottesa dall’istogramma e’ pari a 1 0.4 0.2 0 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 Esercizio: ripetere i comandi con differenti intervalli di campionamento. Dal punto di vista qualitativo che si osserva? Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 24 12 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • È possibile introdurre una funzione densità di probabilità (pdf) del rumore di tipo uniforme: 1.5 1 z 0,1 f z 0 altrove 1.0 0.5 0.0 0 a Y b 1 • L’area segnata in celeste rappresenta la probabilità che si osservi un numero casuale il cui valore sia compreso tra a e b. • Inoltre la pdf è una funzione normalizzata: 1 f z dz 1 Teoria 25 0 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Si può osservare che, all’aumentare del numero di prove, anche la media assume dei valori sempre più precisi >> y = rand(10,1); 0.51 >> mean(y) 0.5 0.2656 >> mean(y) 0.4805 >> y = rand(1000,1); >> mean(y) 0.5017 Media Stimata >> y = rand(100,1); 0.49 0.48 0.47 0.46 0.45 0.44 0.43 0.42 0 Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 200 400 600 800 Dimensione campione numeri casuali 13 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Lo stesso vale per la varianza: 0.095 >> y = rand(10,1); >> var(y) 0.09 >> y = rand(100,1); >> var(y) Stima Varianza 0.0720 0.085 0.08 0.0737 >> y = rand(1000,1); >> var(y) 0.075 0 100 0.0889 200 300 400 500 600 700 800 Dimensione Campione Numeri Casua li 900 1000 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Si può osservare che, all’aumentare del numero di prove, anche la media e la varianza assumono dei valori sempre più precisi >> mean(y) ans = 0.5006 ≈ 0.5 >> var(y) ans = 0.083 Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 ≈ 1/12 28 14 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme • Il rumore di tipo uniforme non risulta essere adeguato per la simulazione del rumore sperimentale. • È plausibile, in un esperimento, che siano più ricorrenti piccole deviazioni dal valore vero, mentre errori significativi siano via via meno frequenti allontanandosi dal trend centrale. 29 Matlab® base Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo uniforme Esercizio: • Si consideri il caso della somma di due rumori di tipo uniforme: Z=Y1+Y2 • A tal proposito si generino due vettori di numeri casuali (di dimensioni notevoli, in modo da descrivere le proprietà asintotiche) e si faccia la media di ciascuna coppia degli elementi dei vettori y1 e y2 Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 30 15 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Somma di rumori di tipo uniforme • Quale è l’intervallo in cui z può assumere valori? • Ci aspettiamo una distribuzione dei valori ottenuti di z ancora uniforme? • Si analizzi il vettore Z risultante. • In particolare si valuti: – La media – La varianza – L’istogramma delle frequenze (si considerino 20 intervalli equispaziati) 31 Matlab® base Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Somma di rumori di tipo uniforme 1.4 • Risultati: • La variabile z assume valori compresi tra 0 e 2 • La distribuzione assume una forma triangolare. 1.2 1 0.8 0.6 0.4 0.2 0 -0.5 >> mean(z) ans = 0 0.5 1 1.5 2 2.5 >> var(z) m Z mY 1 mY 2 1.0046 ans = 0.1659 Matlab® base - Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 s Z2 s Y21 s Y2 2 32 16 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Somma di rumori di tipo uniforme Esercizio: • Ripetiamo la stessa procedura nel caso della somma di più numeri casuali • Si consideri il caso della somma di otto rumori di tipo uniforme: Z=Y1+Y2+Y3+Y4+Y5+Y6+Y7+Y8 • Si generano otto vettori di numeri casuali (di dimensioni notevoli, in modo da descrivere le proprietà asintotiche) e si faccia la somma dei vettori. • Ancora, quale è la media del nuovo campione di dati? Quale è la varianza? 33 Matlab® base Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Somma di rumori di tipo uniforme • L’istogramma che si dovrebbe osservare è il seguente: 0.5 0.45 Tale distribuzione, al tendere del numero di esperienze ad infinito, tende ad una curva a campana, che prende il nome di Gaussiana 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 7 8 Matlab® base - Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 34 17 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Somma di rumori di tipo uniforme • Si è appena visto un caso particolare del Teorema del Limite Centrale “se le sorgenti di errore sono infinite ed indipendenti (e non vi sono errori di natura sistematica), la funzione di probabilità di una variabile aleatoria è una distribuzione normale (o altrimenti detta funzione di Gauss)” • Dato che nelle misure sperimentali le sorgenti di errore sono infinite, è ragionevole supporre che le deviazioni dalla tendenza centrale seguono una probabilità di tipo gaussiano 35 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Teorema del limite centrale • Un altro demo interessante per illustrare il teorema del limite centrale è: >> illustration_CLT(‘type’) • dove ‘type’ è il tipo di distribuzione su cui viene applicato il teorema: – ‘exp’: somma di VA di tipo esponenziale – ‘unif’: somma di VA di tipo uniforme Programmi WEB Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 36 18 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Funzione densità di tipo Gaussiano • Espressione analitica per la funzione densità di probabilità Gaussiana. fY 1 y mY 2 exp s Y2 2 s Y 2 1 • Il grafico di tale funzione è una curva a campana simmetrica rispetto a y=mY • Il parametro s2 coincide con la varianza che si otterrebbe per un numero infinito di prove sperimentali. 37 Teoria Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo Gaussiano • Nel caso di un rumore di tipo gaussiano, si sta ipotizzando che piccole deviazioni dal valore vero siano più ricorrenti (ovvero più probabili) di grosse deviazioni (che sono meno probabili). • In questo caso la funzione densità di probabilità assume la seguente forma 1.5 Varianza s2 = 0.25 1.25 1 Varianza s2 = 1 0.75 0.5 0.25 -2 -1 1 Teoria Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 2 3 4 38 19 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo Gaussiano • Con Matlab® è possibile una rappresentazione della funzione densità di probabilità di tipo gaussiano y = dnorm(X, Mean, StandardDeviation) Output Valore della x dell’operazione: per cui intendo Restituisce il valutare la valore che assume funzione la funzione densità (può anche di probabilità in essere un corrispondenza vettore) della x Parametro Media (m) della funzione Parametro Deviazione Standard (s) della funzione Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo Gaussiano • Si consideri di nuovo l’ultimo campione di numeri casuali generato • L’obiettivo è confrontarlo con una distribuzione di tipo gaussiano • A tal riguardo si rappresenti l’istogramma delle densità di frequenza per il campione di dati (se non lo si è già fatto) L’aggiunta dell’opzione 1 alla fine degli argomenti della funzione histo, • Posso valutare media e permette di avere un deviazione standard del campione istogramma di area unitaria >> med = mean(z) N.B. Da notare che abbiamo gli >> sigma = std(z) strumenti per calcolare il valore teorico di media e varianza asintotiche per un numero infinito di dati Programmi WEB (Stixbox) >> histo(z,20,0,1) Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 20 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo Gaussiano • Eseguendo i seguenti comandi è possibile confrontare la curva Gaussiana “corrispondente” al set di dati >> x = [1:0.01:7]; (creazione vettore ascisse in cui valutare la Gaussiana) >> y = dnorm(x,med,sigma); (creazione valori della Gaussiana corrispondenti alla x) >> hold on (permette la sovrapposizione dei grafici nella stessa figura, per disattivarlo: hold off) >> plot(x,y,'r') Programmi WEB (Stixbox) Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Rumore di tipo Gaussiano • Il seguente comando: >> randn(1,1) ans = -0.4326 • Genera un numero casuale di tipo gaussiano, di media 0 e varianza 1 (ovvero una gaussiana di tipo standard). • Domanda: era verosimile se il generatore mi avesse restituito il valore (-4.5)? Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 42 21 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • È possibile sfruttare generatori di numeri casuali più raffinati, ad esempio: >> randunifc(a,b,n) • Restituisce un vettore di n numeri casuali di tipo uniforme compreso tra a e b. Se n è omesso, il comando restituisce un solo numero casuale. Programmi WEB 43 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Con il Toolbox Statistics : >> unifrnd(-1,1) ans = -0.5377 • Restituisce un numero casuale di tipo uniforme compreso tra -1 e 1. In genere, unifrnd(a,b,m,n) restituisce una matrice di dimensioni m×n di numeri casuali compresi tra a e b. Toolbox statistics Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 44 22 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Il seguente comando: >> rnorm(n, m, s) • Genera un vettore colonna di n numeri casuali di tipo gaussiano associato ad una funzione densità di probabilità di media m e deviazione standard s. Programmi WEB (Stixbox) 45 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Il seguente comando: >> normrnd(-1,3) ans = 1.9739 • Genera un numero casuale di tipo gaussiano associato ad una funzione densità di probabilità di media -1 e deviazione standard (la radice quadrata della varianza) 3. • In genere, normrnd(a,b,m,n) restituisce una matrice di dimensioni (m n) di numeri casuali di tipo gaussiano di media a e deviazione standard b. Toolbox statistics Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 46 23 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Esercizio: • Generare un set di 10000 numeri casuali provenienti da una Gaussiana di media 1 e deviazione standard 1 • Rappresentare i risultati con un istogramma • Un’interessante rappresentazione grafica puo’ essere ottenuta con il seguente comando. >> plotdens(x); >> hold on >> histo(x,50,0,1) >> Programmi WEB (Stixbox) 47 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Esercizio • Si generino dei vettori di numeri casuali di tipo gaussiano di media 2 e deviazione standard 1.5 • Le dimensioni dei vettori siano 10, 100, 1000, 10000. • Si stimino per ciascuno dei vettori: – I valori medi del campione – I valori della varianza • All’aumentare delle dimensioni del campione le stime tendono ad un valore asintotico? Quale è il valore cui stanno tendendo? Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 48 24 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Esercizio • Si generi un vettore x (di dimensioni elevate) di numeri casuali provenienti da una variabile aleatoria di tipo normale di media m=0 e varianza s2=1 • Si considerino le seguenti trasformazioni dei numeri casuali X: – y1=1+2*x – y2 = x2 – y3 = exp(x) • Quali valori possono assumere i nuovi vettori generato? • Rappresentare in un opportuno istogramma i nuovi vettori. • Commentare i risultati Matlab® base - Programmi WEB (Stixbox) 49 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • È utile ricordare che è possibile generare un numero casuale relativo ad una qualunque gaussiana utilizzando semplicemente il comando randn della versione base di Matlab® sfruttando le proprietà delle trasformazioni lineari per le variabili aleatorie. • Se y è un numero casuale generato da una gaussiana di media 0 e varianza 1, il valore z = m + s*y • È un numero casuale proveniente da una distribuzione di tipo gaussiano di media m e deviazione standard s. Matlab® base Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 50 25 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Altri generatori di numeri casuali: >> rchisq(m,v) • Restituisce un vettore colonna di m numeri casuali da una distribuzione di tipo c2 a v gradi di libertà. >> rt(m,v) • Restituisce un vettore colonna di m numeri casuali da una distribuzione T-student a v gradi di liberta >> rf(m, v1,v2) • Restituisce un vettore colonna di m numeri casuali generati da una distribuzione di Fisher a v1 e v2 gradi di libertà Programmi WEB (Stixbox) 51 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Altri generatori di numeri casuali: >> chi2rnd(v,m,n) • Restituisce una matrice m×n di numeri casuali da una distribuzione di tipo c2 a v gradi di libertà. >> trnd(v,m,n) • Restituisce una matrice m × n di numeri casuali da una distribuzione T-student a v gradi di liberta >> frnd(v1,v2, m,n) • Restituisce una matrice m × n di numeri casuali generati da una distribuzione di Fisher a v1 e v2 gradi di libertà Toolbox statistics Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 52 26 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Comandi avanzati per i generatori • Per una panoramica completa dei generatori di numeri casuali con delle interessanti rappresentazioni grafiche si può usare il comando: >> randtool • Altro generatore di numeri casuali per un’ampia classe di distribuzioni statistiche: >> randraw Toolbox statistics - Programmi WEB 53 Analisi dei Processi Chimici e Biotecnologici – Matlab® Generazione di numeri casuali – Come sfruttarli • In alcune delle sezioni successive, i generatori di numeri casuali saranno ampiamente sfruttati per simulare l’errore sperimentale. • È possibile in questo modo effettuare delle analisi statistiche su modelli già noti a priori, “sporcando” il segnale con rumore anche esso noto • In questo modo, è possibile verificare l’efficienza dei metodi statistici usati 54 Analisi dei Processi Chimici e Biotecnologici Generazione di numeri casuali – Parte 1 27