1 / 22

Laboratorio di Processi Stocastici

Laboratorio di Processi Stocastici. Alberto Sorrentino. www.fisica.unige.it/~sorrentino/Teaching. A proposito di processi stocastici. II Giovedì 3 Dicembre ore 11:15 aula PC2 (116/117) – 1° piano III SMID Venerdì 4 Dicembre ore 9:30 aula MAC (114/120) – 1° piano

marinel
Download Presentation

Laboratorio di Processi Stocastici

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Laboratorio di Processi Stocastici Alberto Sorrentino www.fisica.unige.it/~sorrentino/Teaching

  2. A proposito di processi stocastici... II Giovedì 3 Dicembre ore 11:15 aula PC2 (116/117) – 1° piano III SMID Venerdì 4 Dicembre ore 9:30 aula MAC (114/120) – 1° piano III MATE Giovedì 11 Dicembre ore 11:15 aula PC2 (116/117) – 1° piano

  3. Obiettivi: • applicare la teoria, • imparare a smanettare, • divertirsi (...) Obiettivi, metodi e piano di lavoro • Metodi: • No dimostrazioni • Prima pensare poi fare; ma se proprio non capite niente, almeno fate qualcosa, che aiuta... • Piano di lavoro: • Ripasso di MATLAB • Creazione di istogrammi • Generazione di numeri casuali • Analisi dati DNA • Simulazione processo di Poisson • Implementazione test statistici

  4. Parte Zero Ripasso di MATLAB

  5. MATLAB Cos’è? (Wikipedia) “MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico e l'analisi statistica ... ... che comprende anche l'omonimo linguaggio di programmazione ... ...  consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi.” Perché? Perché lo conosco 2. Perché ”è usato da milioni di persone nell'industria, nelle università e funziona su diversi sistemi operativi, tra cui Windows, Mac OS, GNU/Linux e Unix”.

  6. MATLAB Contenuto Cartella Finestra di comando principale Lista comandi passati

  7. Variabili MATLAB non richiede di dichiarare le variabili Provare Per Credere • 2+2 • a • a=1 • a • b=1; • b • MATLAB funziona come un calcolatrice • MATLAB non sa chi sia “a” • Per assegnare un valore ad “a” si usa “=“ • Ora MATLAB sa chi è “a” • Se volete assegnare un valore senza visualizzare, usate “;” • Claro? Come faccio a sapere cosa ho già dichiarato? Il WORKSPACE!! Cancellare una variabile “a” non più utile: clear a Svuotare il workspace (da fare spesso per evitare casini!!): clear all

  8. Vettori Definizione “esplicita” Vettore riga vr = [1 2 3 9 8 7] Vettore colonna vc = [1; 2; 3; 9; 8; 7] • Definizione “implicita” • Vettore riga VR = 1:3:16 (primo_valore : incremento : estremo_superiore) • Vettore colonna VC = (5:-2:-3)’ (primo_valore : incremento : estremo_superiore)’ • L’apice indica la trasposizione Il k-esimo elemento del vettore “vr” si trova con vr(k) Per selezionare un sottoinsieme (sotto-vettore) di un vettore vr(indice_iniziale : indice_finale)

  9. Matrici Definizione “esplicita” Come per i vettori si va a capo con “;” M = [1 2 3 ; 4 5 6] La i-esima riga della matrice è M( i , : ) La j-esima colonna della matrice è M( : , j ) Il “:” serve a selezionare un intervallo; se gli estremi non sono indicati, seleziona tutti i valori Comandi per matrici “predefinite” Z = zeros(5) matrice nulla (quadrata) U = ones(5) matrice di uno (quadrata) I = eye(5) matrice identica

  10. Operazioni con vettori e matrici Le operazioni “naturali” di somma e sottrazione vengono eseguite con i simboli normali (+/-) Il prodotto standard tra vettori e matrici (o tra vettori e vettori, o tra matrici e matrici) è il prodotto riga per colonna Per moltiplicare ELEMENTO PER ELEMENTO si usa “ .* “ Verificare la differenza tra U*I e U.*I

  11. Cicli e condizioni • Ciclo for • for indice = primo_valore:incremento:ultimo_valore • Istruzioni • end • Ciclo while • while condizione • Istruzioni • end • If / else • if condizione1 • Istruzioni • elseif condizione2 (opzionale) • Istruzioni • else (opzionale) • Istruzioni • end

  12. Condizioni RICORDARE SEMPRE: Il segno “=“ serve per ASSEGNARE un valore a una variabile. Per CONFRONTARE una variabile con un valore (o con un’altra variabile), si usa “==“. Esempi di condizioni valide: A>1 A==0.5 A==3 && (B==5 || B==7 ) Provare ad esempio A=1 If A==1 disp (‘A vale 1’) End

  13. Functions Script Uno script è un file di testo che MATLAB interpreta come una sequenza di comandi. File  New  M-File N = 10; for i = 1:N v(i) = i^2 end Salvare il file con script_prova.m Dalla command window, lanciare script_prova Esiste la variabile i ??? Funzione: file di testo contenente un’intestazione File  New  M-File function v = funzione_prova(N) for i = 1:N v(i) = i^2 end Salvare il file con funzione_prova.m Dalla command window, lanciare funzione_prova(10) Esiste la variabile i ???

  14. Visualizzazione - plot x = -10:10 y = x.^2 Definiamo due vettori figure Crea una figura vuota plot( x ) plot( y ) Mette in ascissa l’indice della componente del vettore, in ordinata il valore della componente plot( x, y ) Mette in ascissa i valori del vettore “x”, in ordinata i valori del vettore “y”; “x” e “y” devono essere lunghi uguali!! plot( x, y, ’ r ’ ) Rosso tratteggiato Punti plot( x, y, ’ . ’ ) Per mettere più oggetti nella stessa figura hold on

  15. Visualizzazione – altri comandi www.fisica.unige.it/~sorrentino/Teaching D = load(‘dato_per_plot.dat’); size(D) figure bar(D) figure image(D) figure contour(D) figure quiver(D(:,1), D(:,2), D(:,3), D(:,4))

  16. Panico... • Non ricordate l’utilizzo di un comando? • help comando • Non sapete come fare qualcosa? Volete saperne di più? • helpwin

  17. Primo esercizio: creare l’istogramma di un vettore www.fisica.unige.it/~sorrentino/Teaching 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)) , ’ . ’)

  18. 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

  19. Algoritmo istogramma (semplice) Non esistono domande stupide. Esistono solo risposte stupide. • 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 INF DELTA SUP Il j-esimo intervallo ha come estremi INF+(j-1)*DELTA e INF+j*DELTA

  20. Algoritmo istogramma (semplice) • INF = -4; • SUP = 4; • DELTA = 0.4; • NUM_INT = (SUP-INF)/DELTA; % numero di intervalli • contatore = zeros(1,NUM_INT) % inizializziamo il contatore; • for i = 1:size(data,2) % per ogni dato • for j = 1: NUM_INT % per ogni intervallo • if data(i)>INF+(j-1)*DELTA && data(i)<INF+j*DELTA • contatore(j) = contatore(j)+1; • end • end • end • VALORI = INF+DELTA/2 : DELTA : SUP-DELTA/2 • figure • bar(VALORI, contatore)

  21. Algoritmo istogramma (efficiente) L’algoritmo appena scritto fa un ciclo di troppo... INF SUP 1 2 k Osserviamo che il singolo valore data(i) INF < data(i) < SUP 0 < data(i)-INF < SUP-INF=DELTA*NUM_INT 0 < (data(i)-INF)/DELTA < NUM_INT Non esistono domande stupide. Esistono solo risposte stupide.

  22. Algoritmo istogramma (efficiente) • INF = -4; • SUP = 4; • DELTA = 0.4; • NUM_INT = (SUP-INF)/DELTA; % numero di intervalli • contatore = zeros(1,NUM_INT) % inizializziamo il contatore; • for i = 1:size(data,2) % per ogni dato • j = ceil((data(i)-INF)/DELTA); • contatore(j) = contatore(j) + 1; • end • VALORI = INF+DELTA/2 : DELTA : SUP-DELTA/2 • figure • bar(VALORI, contatore)

More Related