• Non ci sono risultati.

Laboratorio Processi Stocastici

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio Processi Stocastici"

Copied!
28
0
0

Testo completo

(1)

Laboratorio

Processi Stocastici

Annalisa Pascarella

(2)

Informazioni

e-mail:

pascarella@dima.unige.it

annalisa.pascarella@unipr.it

Giovedì 9 Dicembre 11-13 aula Mac

Lunedì 14 Dicembre 11-14 aula pc1

Martedì 15 Dicembre 11-14 aula Mac

(3)

Programma

MATLAB

esercizi vari durante il laboratorio

Generazione di numeri casuali

metodo Monte Carlo,

algoritmi per la generazione di numeri pseudo-casuali

Simulazione processo di Poisson

(4)

MATLAB

(5)

MATLAB

MATrix LABoratory

Linguaggio di programmazione interpretato

legge un comando per volta eseguendolo immediatamente

Per avviarlo ->

icona sul desktop

command window

workspace

(6)

MATLAB come calcolatrice

è possibile definire variabili e operare su esse

x = 9 -> invio 4 + 7

invio

Operatori aritmetici: + - * / ^

Caratteri speciali: ; % : Variabili predefinite: i, pi, NaN, Inf

Funzioni elementari: sin, cos, log, exp

help mean

(7)

Comandi utili

clear a

per cancellare una variabile dal workspace

clear all

per cancellare tutte le variabili dal workspace

ans

ultima variabile memorizzata

clc

pulisce lo schermo

help <nome_funzione>

(8)

Lavorare con MATLAB

In MATLAB tutte le variabili sono trattate come matrici

scalari -> matrici 1 x 1

vettori riga -> matrici 1 x n v = (v1,…, vn)

vettori colonna -> matrici n x 1 v = (v1,…, vn)T

matrici -> matrici m x n





mn m

n

a a

a a

A

1

1 11

(9)

Vettori

Per definire un vettore riga

Per definire un vettore colonna

Usando :

a = [1 2 3 4 5]

a = [1, 2, 3, 4, 5]

a = [1; 2; 3; 4; 5]

a = [1 2 3 4 5] ’ a = 1:3:10

b = -5:5

(10)

Matrici

Per definire una matrice

2 2

2 1

0

3

 

 

  R

A A = [3 0; 1 2]

A = [3 0 1 2]

b1 = [3;1]

b2 = [0; 2]

b3 = [3; 0]

B = [b1, b2, b3]

3 2

0 2

1

3 0

3

 

 

  R

B

B(2,3)

B(2,3) = 1;

B

per selezionare un elemento

per modificare l’elemento

per visualizzare B

size(A) -> dimensioni della matrice

per memorizzare le dimensioni -> [r c] = size(A)

(11)

Il comando :

Importante per la manipolazione delle matrici

estrarre la riga R2

estrarre la colonna C2

3 2

0 2

1

3 0

3

 

 

  R

B

B(2,:) B(:,2)

generazione di vettori che siano delle progressione aritmetiche di passo costante

a = [1:10] o a = 1:10

b = 1: .2 : 4

c = 3:0 -> non produce niente!!!!

c = 3: -1: 1

mediante : si possono estrarre righe e colonne

(12)

Identità-zero-uno

eye(n)

eye(3)

 

1 0 0

0 1 0

0 0 1 I



 

 

0 0 0

0 0 Z 0

zeros(m,n) zeros(2,3)



 

 

1 1 1

1 1 Z 1

ones(m,n) ones(2,3) identità di ordine n ->

matrice nulla m x n ->

matrice m x n di 1 ->

(13)

Operazioni

Somma / Differenza A+B, A-B

Trasposta A’

Prodotto A*B #C

A

= #R

B

Elemento per elemento

A.*B size(A) = size(B) Prodotto per uno

scalare

A*k

size(A)= size(B)

(14)

Script e funzioni

Script

parametri in ingresso non modificabili

le variabili usate sono messe nella memoria di lavoro di MATLAB

Funzioni

script al quale si possono passare parametri in ingresso ed ottenerne in uscita

sintassi

y1,…,yn -> parametri in uscita

x1,…,xn –> parametri in entrata

le variabili usate all’interno sono locali

function [y1,…,yn] = nome_funzione(x1,…,xn)

(15)

Script

E’ possibile scrivere degli script in Matlab

cliccando su new

File -> New -> M-file

(16)

Le funzioni

L’m file va salvato col nome nome_funzione.m

il nome del file deve essere identico a quello della funzione

La funzione può essere richiamata

dalla finestra di comando

all’interno di uno script

da altre funzioni

digitando [y1,…,yn]=nome_funzione(x1,…,xn)

Per poter richiamare la funzione dobbiamo essere nella directory

nella quale è salvata la funzione oppure “settare” nel path di

Matlab la directory nella quale la funzione è salvata.

(17)

Cicli

Ciclo incondizionato

Ciclo condizionato

Test condizionale

for i = n1:passo:n2 blocco di istruzioni end

while condizione

blocco di istruzioni end

if condizione1

blocco di istruzioni elseif condizione2 blocco di istruzioni else

blocco di istruzioni end

(18)

Operatori

Operatori relazionali:

< , <= , > , >= , == , = , =

si usano per confrontare tra di loro gli elementi di 2 matrici; il risultato dell’operazione sarà

0 se la relazione è falsa

1 se la relazione è vera

Operatori logici:

& , | , 

si usano per combinare tra loro gli operatori relazionali

Nota

= serve per assegnare valore ad una variabile

== per verificare se una variabile assume un determinato valore

(19)

Input\output

input

sprintf

n = input(‘inserisci un intero ’);

disp(sprintf(‘n = %d’,n))

disp(‘stringa di caratteri’)

(20)

Il comando si usa:

per rappresentare punti nel piano

per disegnare il grafico di una funzione

x e y devono essere vettori di ugual misura

Grafica

In MATLAB è possibile

disegnare funzioni in 2D e 3D

rappresentare graficamente dei dati

plot(x,y)

(21)

Esempio - I

Per rappresentare dei punti nel piano

x = [1 2 3 7 -9 2];

y = [-2 -6 1 5 7 2];

plot(x,y) figure(2) plot(x,y,'*')

(22)

Esempio - II

Per “plottare” la funzione y=sin(x)

x = [-pi:.01:pi];

y = sin(x);

plot(x,y)

definiamo

l’intervallo in cui vogliamo disegnare la funzione

definiamo la funzione disegniamo la funzione

figure(2)

plot(x,y, '-g') è possibile

inserire un terzo parametro di

input

(23)

Sintassi del comando

“plot”

x e y sono i vettori dei dati (ascisse e ordinate dei punti)

x e y come sopra; opzioni è una stringa opzionale che definisce il tipo di colore, di simbolo e di linea usato nel grafico.

help plot per vedere quali sono le varie opzioni

realizza il grafico del vettore y rispetto ai propri indici plot(x, y)

plot(x, y, 'opzioni')

plot(y)

(24)

Comandi utili - I

per creare (richiamare) una finestra grafica

per avere più grafici nella stessa finestra

hold off per disattivare la funzione

per riscalare il grafico

per creare diversi grafici separati

in una stessa finestra

esistono diversi comandi per “abbellire” i grafici

title, xlabel, ylabel, legend figure(num)

hold on

axis([xmin xmax ymin ymax])

sublot(righe, colonne, sottofinestra)

(25)

Risultati

usando hold on

usando subplot figure(1); hold on; grid on

y2 = cos(x);

plot(x,y2,’r’)

title(‘seno e coseno’)

% creiamo delle sottofinestre

figure(3); subplot(1,2,1); plot(x,y); title('seno') subplot(1,2,2); plot(x,y2); title('coseno')

(26)

Esercizio

Caricare il vettore dei dati nella variabile “data”:

data = load(‘dato_per_istogramma.dat’);

size(data)

Osserviamo i dati plot(data)

plot(data, ones(size(data)) , ’ . ’)

Creare l’istogramma di un

vettore

(27)

Algoritmo istogramma

Scelta degli estremi e della larghezza intervallo

INF DELTA SUP

Contiamo quanti elementi del vettore cadono in ogni intervallo:

creiamo un vettore il cui valore i- esimo rappresenti il numero di conteggi nell’i-esimo intervallo

(28)

Algoritmo istogramma

Per ogni elemento del vettore data(i) Per ogni intervallo

Se data(i) è compreso nei valori dell’intervallo Incrementare il contatore relativo a

quell’intervallo

Il j-esimo intervallo ha come estremi INF+(j-1)*DELTA e INF+j*DELTA

INF DELTA SUP

Riferimenti

Documenti correlati

Inserire le risposte negli spazi predisposti, accompagnandole con spiegazioni chiare e sintetiche.. NON SI ACCETTANO RISPOSTE SCRITTE SU

Più attento rielaboratore della veduta originale di San Daniele (XVI sec., conservata presso l’archivio del Marchese De Concina) è stato nel 1735 il sacerdote

Scrivere la funzione Matlab compute_inverse che prenda in input una matrice quadrata A di ordine N; dopo aver verificato che la matrice è invertibile,

se copiate pi` u file in una directory mydir e poi vi accorgete che mydir in realt`a non esiste, tutti i file saranno stati copiati in un file di nome mydir uno sull’altro: alla fine

L’attributo st mode contiene il file mode, cio` e una sequenza di bit ottenuti facendo l’OR bit a bit della stringa che esprime i permessi al file e una costante che determina il

systemctl stop samba smbd nmbd winbind samba-ad-dc systemctl mask samba smbd nmbd winbind. systemctl disable samba smbd nmbd winbind systemctl

Ogni entry può essere descritta da una o più classi e di conseguenza deve utilizzare almeno tutti gli attributi previsti come obbligatori della classi usate, mentre non

Sulla base di Information Directory, CSI-Piemonte ha realizzato il Portale per il Riuso dei Dati Pubblici del Piemonte www.dati.piemonte.it, volto alla ricerca e alla distribuzione