Analisi dei Processi Chimici e Biotecnologici – Matlab® Applicazioni

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