Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),

Slides:



Advertisements
Presentazioni simili
MICROSOFT EXCEL 97.
Advertisements

Dipartimento di Matematica
Metodi numerici in Matlab
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
MATLAB: w=randn(N,1) x=filter(b,a,w) Processi Autoregressivi AR(1)
Realizzato da Alberto Jurij Plazzi
MATLAB Cristina Campi
MATLAB.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
Introduzione a Matlab. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente specializzate.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
angoli orientati negativamente se la rotazione avviene in verso orario
Esercitazione MATLAB (13/5)
Matlab Annalisa Massini Matlab.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
IL MODELLO DI REGRESSIONE MULTIPLA
Tema 6: Analisi in Potenza di Processi Parametrici
MATLAB. Annalisa Pascarella
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Introduzione a Matlab Gabriella Puppo. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente.
Soluzione FEM di problemi parabolici
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Metodi conservativi per equazioni iperboliche
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Creazione di matrici Delimititatore di riga Delimititatore di matrice
STIMA DELLO SPETTRO Noi considereremo esempi:
Studente Claudia Puzzo
Algebra matriciale e linguaggio matriciale in MATLAB
ORGANIZZAZIONE DELLA PRESENTAZIONE
Esercitazione 2 – Generazione di variabili Matlab.
INTRODUZIONE A MATLAB.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
IL PERIODO DELLE FUNZIONI GONIOMETRICHE
Diagrammi 2D e 3D Funzioni di ordine superiore
13 Excel prima lezione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
Mauro Valli Libro di testo pag
QUIZ – PATENTE EUROPEA – ESAME WORD
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Tabelle Pivot Istogrammi e frequenze Diagramma box-plot
Analisi ai nodi Step 1: numerare ordinatamente tutti i nodi della rete
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Prof. Giuseppe Boncoddo
Lezione 11 Riccardo Sama' Copyright  Riccardo Sama' Excel.
Laboratorio di Processi Stocastici Alberto Sorrentino
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Dipartimento di Economia, Management e Istituzioni APPPLICAZIONI AZIENDALI MEDIANTE FOGLIO ELETTRONICO 4° modulo: Calcoli statistici, Regressione Prof.
La funzione CASUALE. Gli istogrammi.
INTRODUZIONE A MATLAB Corso di Segnali e Sistemi a.a. 2010/2011.
Transcript della presentazione:

Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b), considerata una matrice x, restituisce una matrice ottenuta tagliando da x le prime t righe e le ultime b righe. In MATLAB questa funzione non è implementata, e costituisce quindi un utile esercizio scriverne il codice tenendo in considerazione che la funzione deve dare un messaggio di errore qualora si stia “trimmando” troppo. Il codice potrebbe dunque essere il seguente:

Trimr function [y]= mytrim(x,a,b); if (a>size(x,1) | b>size(x,1) | (a+b)>size(x,1)); y=' trim too much '; else; y=x((a+1):(size(x,1)-b),:); end; L’eccesso di trim può avvenire se a o b sono > del totale delle righe di x, o se lo è la loro somma. Notiamo l’uso di | tra le singole condizioni e il comando x((a+1):(size(x,1)-b),:), che seleziona tutte le righe di x da a+1 fino alla riga = n° righe – b.

Lag Un’altra funzione utilissima nell’ambito dell’analisi delle serie storiche è la funzione presente in Gauss come lagn(x,k), che ripropone in linguaggio di programmazione l’operatore lag (L). Se k è positivo, l’operatore restituisce una matrice della stessa lunghezza (come righe) di x in cui la prima riga è quella che occupava il posto k+1 in x e le ultime k righe sono missing values (ossia dati mancanti, indicati in Gauss con un punto). Abbiamo così tagliato le prime k osservazioni, “spostando” la matrice x in alto di k righe. Se k è negativo, l’operatore restituisce una matrice della stessa lunghezza (come righe) di x in cui le prime k righe sono missing values, la riga di posto k+1 coincide con la prima riga di x e quindi le ultime k righe di x vengono perse. Vediamone in concreto l’utilità. Possiamo di voler stimare un modello di regressione del tipo AR(2):

Lag yt=a+b1yt-1+b2yt-2+e Senza scendere nei particolari, diciamo che vogliamo capire come i valori ritardati di 1 e 2 periodi influenzano la variabile al tempo corrente. Ovviamente se abbiamo una serie storica di t=100 osservazioni, di queste possiamo sfruttarne solo 98, perché alpiù partiamo dalla terza e la regrediamo sulla seconda e sulla prima, la quarta su terza e seconda e così via. In MATLAB i missing values si indicano con NaN= not a number. Proviamo ora a scrivere questa funzione in MATLAB, con l’avvertenza di predisporre un messaggio di errore se stiamo “laggando” troppo, e distinguere tra k>0 e k<0:

Trimr function [y]= mylag(x,k); if abs(k)>size(x,1); y=' trim too much '; elseif k>0; y=[x((k+1):size(x,1),:) ; NaN*ones(k,size(x,2))]; elseif k<0; y=[NaN*ones(abs(k),size(x,2)) ; x(1:(size(x,1) - abs(k)),:)]; end; Notiamo che y ha sempre la stessa lunghezza di x, in quanto concatenazione verticale tra un vettore lungo k e tante righe di x quante il numero delle sue righe meno k. Attenzione che Dove k è <0 dobbiamo utilizzare abs(k)!!!!

Trimr e lag Se, per calcolare gli stimatori della regressione o ad es. una semplice matrice di covarianza, ho la necessità di creare una matrice che raccolga i valori della variabile, i ritardi fino all’ordine 2 ma ovviamente non voglio lavorare con missing values, posso combinare le due funzioni appena viste sul vettore x che contiene la serie storica in questo modo: posso formare una matrice con lag y=[x mylag(x,-1) mylag(x,-2)] e poi trimmare le prime 2 righe che sicuramente contengono missing values, essendomi spostato in basso (k=-1 e -2): z=mytrim(y,2,0) z (1,1) sarà il terzo valore della serie storica di x, z(1,2) il secondo valore e z(1,3) il primo valore della serie storica!.

Trimr e lag Possiamo estendere utilmente il meccanismo di generazione di suddetta matrice con un loop for, il cui indicatore sarà ovviamente collegato all’ordine k dei ritardi che vogliamo inserire. È preferibile racchiudere il tutto in una funzione, i cui input saranno: il vettore e il numero di ritardi. L’output di detta funzione sarà costituito dalla matrice la cui prima colonna sarà costituita dai valori di x dal k-esimo fino all’ultimo. La funzione che chiamiamo essr (estrazione serie storica ritardata) può essere scritta così:

Trimr e lag function [y]=essr(x,k); if k<0; y='errore, k non può essere negativo'; elseif k> size(x,1); y='errore, k non può eccedere il numero di righe di x'; else; y=[x zeros(size(x,1),k)]; creo a priori y for i=1:k; y(:,i+1)=mylag(x,-i); end; y=mytrim(y,k,0); trimmo alla fine del loop altrimenti end; non coincidono le lunghezze dei vettori!

Altre funzioni create Altri esempi di funzioni vcma per la matrice di varcov di un MA(1) rendc per calcolare i rendimenti semplici rendsc per calcolare i rendimenti semplici e continui estdi per estrarre la diagonale inferiore di una matrice quadrata simm per vedere se la matrice è o meno simmetrica

La creazione di grafici MATLAB è molto completo anche per quello che riguarda la creazione di grafici. Il comando per grafici in bidimensionale è plot: Se x è un vettore, plot(x) lo stampa a video in ordinata (Y) il valore degli elementi e in ascissa (X) l’indice (1,2,3,..) della loro posizione nel vettore. Se x e y sono due vettori, plot(x,y) stampa a video in ordinata (Y) il valore degli elementi di y e in ascissa (X) il valore degli elementi di x. Nel caso di grafici multipli, MATLAB usa di default colori diversi: plot(x,y,x,z) stampa sulla stessa finestra prima x e y poi x e z, con colori diversi.

La creazione di grafici Possiamo definire a piacere il tipo di linea in 3 caratteristiche: plot(x,y,’puntatore-stile-colore’) Quanto ai colori c cyano m magenta y giallo r rosso g verde b blu w bianco k nero Quanto agli stili di linea - linea continua -- linea tratteggiata : Puntini -. Punti + tratteggio none senza linea

La creazione di grafici Quanto ai puntatori abbiamo +,o,*,x Quindi per tracciare un grafico di colore blu, a linea tratteggiata e con puntatore * scriviamo plot(x,y,’b--*’) Se abbiamo tracciato un grafico su di una finestra e vogliamo ora stampargliene sopra un altro, dobbiamo mantenere aperta la finestra con il comando hold on. Es. >> plot(x,y) >> hold on >> plot (x,z)

La creazione di grafici Se invece vogliamo suddividere la finestra in più celle sulle quali vengono stampati diversi grafici, il comando appropriato è subplot(r,c,i). Questo comando suddivide la finestra in una “matrice” rxc e di essa ne seleziona la cella i – esima. Ad es. possiamo creare una sequenza molto fitta di valori che vada da 0 a 2 pigreco con incrementi di 0.1, tracciare sulla prima finestra il coseno, sulla seconda il seno, sulla terza la tangente e sulla quarta la cotangente usando puntatori, colori e stili di linea diversi per ogni sottofinestra con i comandi appena visti e il comando subplot. Possiamo addirittura creare una funzione che chiamiamo mytrig, nel modo seguente: NB: se non ricordo i comandi per le funzioni trigonometriche posso digitare help, poi osservo e digito help matlab\elfun

La creazione di grafici Creiamo prima di tutto la funzione nell’edit: function[]= mytrig(s) co=cos(s); se=sin(s); t=tan(s); ct=cot(s); subplot(2,2,1) plot(s,co,'y:+') subplot(2,2,2) plot(s,se,'b-*') subplot(2,2,3) plot(s,t,'k--x') subplot(2,2,4) plot(s,ct,'m:o')

La creazione di grafici Dopodiché andiamo nel command, creiamo la nostra sequenza come vettore colonna e applichiamo la funzione: >> k=0:0.1:2*pi; >> mytrig(k) Il programma gira ma fornisce anche un messaggio di errore. Questo perché le funzioni tangente e cotangente hanno alcuni punti in cui non possono essere calcolate!!! Digitando alla fine della funzione print –dbmp16m fig.bmp salvo la figura con il nome fig ed estensione .bmp (posso anche porre .gif o .jpeg) nella cartella work.

La creazione di grafici Altri comandi per caratterizzare il grafico sono: axis([min xmax ymin ymax]) axis square axis auto rispettivamente per definire la lunghezza degli assi, renderla uguale o lasciare quella automatica; xlabel(‘…’) ylabel(‘…’) title(‘…’) rispettivamente per dare un nome all’asse x, all’asse y o al titolo del grafico;

La creazione di grafici La funzione text(x,y,’…’) inserisce invece un testo nel grafico che inizia in corrispondenza della coordinata (x,y)