Generazione Numeri Casuali

annuncio pubblicitario
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Applicazioni con generatori di numeri
casuali
li
- 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
G
i
di numerii casuali:
li rumore
gaussiano
- Comandi avanzati generatori di numeri casuali
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Istruzioni per l’uso
• Nelle prossimi lezioni con Matlab® si intende affrontare in
modo
d applicativo
li ti
concetti
tti relativi
l ti i a
– Teoria della probabilità
– Stima dei parametri
2
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
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
ad hoc”
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
i
b
base (utilizzabili
( tili
bili quindi
i di con qualunque
l
versione
i
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
4
2
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Istruzioni per l’uso
• Quando si sfrutteranno comandi avanzati, relativi ai
pacchetti
h tti aggiuntivi,
i ti i sull llucido
id sarà
à iindicata
di t l’
l’etichetta
ti h tt
“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à
à iindicata
di t l’
l’etichetta
ti h tt “P
“Programmii WEB”,
WEB” come nella
ll
diapositiva corrente.
Programmi Web
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
6
3
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Istruzioni per l’uso
• Nei lucidi di teoria, non relativi a comandi specifici di
M tl b® sarà
Matlab®
à usata
t l’etichetta
l’ ti h tt “Teoria”.
“T
i ”
• 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
i
inevitabilmente
it bil
t affetta
ff tt d
da un errore legato
l
t a molteplici
lt li i
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
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
spe
e ae
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
10
5
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generatori di numeri casuali –
Cenni sulla teoria
• Un
U computer
t non è iin grado
d di generare d
deii numerii casuali
li
• 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
pseudo-casuali
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
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
• D
Dall grafico
fi sii può
ò vedere
d
come la
l successione
i
dei
d i numerii
sia apparentemente casuale
Teoria
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
14
7
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generatori di numeri casuali accorgimento
Piccolo
• 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
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
18
9
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Statistica descrittiva
• Si p
può valutare la dispersione
p
dei dati con il comando var
(varianza):
>> var(y)
ans =
0.0720
• Espressione analitica della varianza:
s2 =
∑ (y
− y)
2
i
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
g
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
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
i t
intervallo
ll
• 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.
Programmi WEB (Stixbox)
21
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Rumore di tipo uniforme
• D
Da notare
t
che
h all’aumentare
ll’
t
delle
d ll dimensioni
di
i i del
d l vettore
tt
numeri casuali una struttura nell’istogramma risulta sempre
più chiara.
>> y = rand(10000,1);
>> histo(y,15)
>>
• In tal caso l’istogramma ci fa capire 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.
Programmi WEB (Stixbox)
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
22
11
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
p
to degli
intervalli (per
comodita’ si
pone = 0)
L’ultimo
argomento
dovrebbe
essere posto
uguale a 1 per
avere area
unitaria sotto
l’istogramma
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
L’
tt
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
24
12
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Rumore di tipo uniforme
• È possibile introdurre una funzione densità di
probabilità 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 è compreso tra a e
b.
• L’integrale della funzione tra gli estremi in cui può
assumere valore ([0,1]) è uno.
25
Teoria
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 Sttimata
>> 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
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)
Stim
ma 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 Casuali
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
≈ 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
E
Esercizio:
i i
• 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
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
• Ri
Risultati:
lt ti
• La variabile z assume
valori compresi tra 0 e 2
• La distribuzione assume
una forma triangolare.
12
1.2
1
0.8
0.6
0.4
0.2
0
-0.5
05
>> mean(z)
ans =
0
05
0.5
1
15
1.5
2
25
2.5
>> var(z)
μ Z = μY 1 + μY 2
1.0046
ans =
0.1659
Matlab® base - Programmi WEB (Stixbox)
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
σ Z2 = σ Y21 + σ 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
h
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
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
li it centrale
limite
t l è
è:
>> illustration_CLT(‘type’)
• dove ‘type’ è il tipo di distribuzione su cui viene applicato il
teorema:
exp : somma di VA di tipo esponenziale
– ‘exp’:
– ‘unif’: somma di VA di tipo uniforme
36
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
18
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Funzione densità di tipo Gaussiano
• E
Espressione
i
analitica
liti per la
l funzione
f
i
densità
d
ità di probabilità
b bilità
Gaussiana.
fY =
⎡ 1 ( y − μY ) 2 ⎤
exp ⎢ −
⎥
σ Y2 ⎥⎦
2π σ Y
⎢⎣ 2
1
• Il grafico di tale funzione è una curva a campana
simmetrica rispetto a y=μY
• Il parametro σ2 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
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 σ2 = 0.25
1.25
1
Varianza σ2 = 1
0.75
0.5
0.25
Teoria
-2
-1
1
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
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)
Valore della x
Output
per cui intendo
dell’operazione:
Restituisce il
valutare la
valore che assume
funzione
la funzione densità
(può anche
di probabilità in
essere un
corrispondenza
vettore)
della x
Parametro
Media (μ)
della
funzione
Parametro
Deviazione
Standard (σ)
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
p
di numeri casuali g
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
pe mette di avere
permette
a e e un
n
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
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
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
l numero casuale.
l
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
44
22
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Comandi avanzati per i generatori
• Il seguente
g
comando:
>> rnorm(n, m, s)
• Genera un vettore colonna di 10 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
• 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)
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
46
23
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
p g
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
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
48
24
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Comandi avanzati per i generatori
• È utile
til ricordare
i
d
che
h è possibile
ibil 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.
49
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 μ=0 e varianza σ2=1
• Si considerino le seguenti trasformazioni dei numeri casuali
X:
– y1 = x 2
– y2 = exp(x)
• Quali valori possono assumere i nuovi vettori generato?
• Rappresentare in un opportuno istogramma i nuovi vettori
Y 1 e Y2 .
• Commentare i risultati
Matlab® base - Programmi WEB (Stixbox)
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
50
25
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Comandi avanzati per i generatori
• Altri g
generatori di numeri casuali:
>> rchisq(m,v)
• Restituisce un vettore colonna di m numeri casuali da una
distribuzione di tipo χ2 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 g
generatori di numeri casuali:
>> chi2rnd(v,m,n)
• Restituisce una matrice m×n di numeri casuali da una
distribuzione di tipo χ2 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
52
26
Analisi dei Processi Chimici e
Biotecnologici – Matlab®
Generazione di numeri casuali –
Comandi avanzati per i generatori
• P
Per una panoramica
i completa
l t dei
d i generatori
t i di numerii
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
l con rumore anche
h esso noto
• In questo modo, è possibile verificare l’efficienza dei metodi
statistici usati
54
Analisi dei Processi Chimici e Biotecnologici
Generazione di numeri casuali
27
Scarica