Elementi di Matlab e di Mathematica

Slides:



Advertisements
Presentazioni simili
Dipartimento di Matematica
Advertisements

Modulo 4 – Seconda Parte Foglio Elettronico
Dipartimento di Economia
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
Capitolo 8 Sistemi lineari.
MATLAB Cristina Campi
MATLAB.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
LE MATRICI.
Introduzione a Matlab. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente specializzate.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Algebra delle Matrici.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
FUNZIONI DI BIBLIOTECA
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
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
Metodi FEM per problemi ellittici
FEM -2 Gabriella Puppo.
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).
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Introduzione alla programmazione ll
Marco Panella MATLAB Marco Panella
Algebra matriciale e linguaggio matriciale in MATLAB
1a-2a lezione di laboratorio
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
ORGANIZZAZIONE DELLA PRESENTAZIONE
Dichiarazioni e tipi predefiniti nel linguaggio C
Esercitazione 2 – Generazione di variabili Matlab.
Corso di PHP.
INTRODUZIONE A MATLAB.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Lezione 3 Vettori e Matrici.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Modulo 4: EXCEL LEZIONE 4 Modulo EXCEL Alessandro Celi.
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.
Lezione 1: Introduzione all’uso di Matlab
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Introduzione a Javascript
La ricorsione.
Informatica Applicata al Suono Tutorial Matlab
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.
Excel.
Metodologia della ricerca e analisi dei dati in (psico)linguistica 25 Giugno 2015 Introduzione ad R
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
La funzione CASUALE. Gli istogrammi.
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
Prof. Cerulli – Dott. Carrabs
Transcript della presentazione:

Elementi di Matlab e di Mathematica

MatLab MatLab, acronimo di Matrix Laboratory, è uno dei più importanti programmi matematici. Viene usato da: Banche; Assicurazioni; Enti di ricerca Economico-Statistici; Altri enti. La primissima versione di Matlab risale alla fine degli anni '70, scritta alla University of New Mexico e alla Stanford University, quale pacchetto software di supporto alle lezioni di Algebra lineare e Analisi numerica. Oggi Matlab non si limita più al solo calcolo matriciale e numerico, ma ha sviluppato tutta una serie di funzioni per le applicazioni più diverse nel campo scientifico ed economico. La semplicità del programma permette di risolvere problemi molto complessi senza dover sviluppare programmi in C o altri linguaggi di programmazione.

Logica di base Il programma si comporta alla stregua di “interprete” di una serie di comandi inseriti dall’utente attraverso un’interfaccia grafica. Ogni dato inserito, sia esso uno scalare, un vettore ecc. viene considerato una matrice, da qui il nome Matrix Laboratory. Tramite MatLab è possibile eseguire da somme ed operazioni elementari a complessi programmi economico-statistici. Elementi salienti sono: velocità di esecuzione; precisione e affidabilità assoluta dei calcoli; versatilità; insieme di funzioni di calcolo fornite di default dal programma;

Logica di base Come abbiamo detto ogni dato inserito dall’utente è riconosciuto come una matrice. Per esempio: il numero 5 altro non è che una matrice X 1,1 il vettore riga è trattato alla stregua di una matrice X1,N e corrispondentemente un vettore colonna è trattato come una matrice XN,1 Perché questa complicazione? Sostanzialmente per tre motivi: la matrice viene trattata come un tipo di dato nativo, al contrario di altri programmi; semplifica notevolmente il lavoro in caso di inversione di matrici di grandi dimensioni; l’algebra matriciale è molto semplificata.

Logica di Base (Interfaccia Utente) Matlab si compone, principalmente, di due parti: la parte principale costituita dal programma vero e proprio, e la seconda costituita da un editor di testo che permette di scrivere programmi che vengono salvati in file .m I dati che vengono processati dal programma possono essere salvati dall’utente in un file .dat

Uno sguardo al programma

Editor per i programmi

Inserimento e formattazione dati Per inserire un vettore od una matrice tramite interfaccia utente digitiamo i seguenti comandi: >>a=[1 2 3 4]; Vettore riga >>a=[1;2;3;4]; Vettore colonna, da notare i punti e virgola >>a=[1 2 3 4; 3 2 1 6]; Matrice 2x4 Quando inseriamo dei dati manualmente, dobbiamo dichiarare una variabile a cui e gli assegniamo dei valori. I valori non separati dal punto e virgola vengono interpretati come facenti parte di una stessa riga, mentre quelli separati dal punto e virgola vengono interpretati dal programma come facenti parti della riga successiva. Se stiamo trattando un vettore od una matrice i valori devono essere sempre inseriti tra parentesi quadra. Tutti i calcoli che esegue MatLab vengono portati avanti in doppia precisione ovvero con 15 cifre decimali. Noi possiamo formattare i valori per visualizzare più o meno cifre decimali attraverso le seguenti istruzioni: Format short Pi Ans=3.1416 Format long Ans=3.14159265358979 Proviamo il comando “format rat”….

Struttura Nell’interfaccia principale troviamo un riquadro (“Command Window”) in cui possono essere inserite istruzioni, dati, espressioni ecc.. Inseriamo due numeri nel programma ed eseguiamone la somma: >>a=5; >>b=9; >>a+b Inseriamo due vettori e facciamone la moltiplicazione: >>a=[3,4,5]; >>b=[4,3,7]; >>a*b ERRORE DI CONFORMITA >>a*b’ TRASPOSIZIONE DEL VETTORE I risultati possono essere memorizzati su una variabile di appoggio per esempio: >>risultato=a*b’

Metodo di indicizzazione delle matrici Per accedere ad un qualsiasi elemento della matrice dobbiamo riferirci alla riga ed alla colonna corrispondente, per esempio scriviamo a(1,3) stiamo selezionando l’elemento posto nella prima riga e terza colonna della matrice. Se invece ci riferiamo alla matrice nel seguente modo a(:,1) stiamo selezionando tutti gli elementi della prima colonna. Similmente digitando il seguente comando a(3,:) avremo i valori contenuti nella terza riga; Per sapere di quante righe e colonne è composta una matrice possiamo utilizzare li comando size(matrice);

Operatori e funzioni principali Operatori aritmetici Per scalari Operatore Esempio Significato + a+b Somma - a-b Sottrazione / a/b Divisione * a*b Moltiplicazione ^ a^2 oppure a^n Esponente

Operatori e funzioni principali Operatori aritmetici Caso di matrici Operat Formula generale Esempio Significato + Y=X+B Somma - Y=X-B Sottrazione * Y=A*B Moltiplicazione ./ Y=A./B Divisione elemento per elemento

Operatori e funzioni principali Y=X.^2 Eleva ad n elemento per elemento \ Y=A\B Divisione di matrici ^n Y=A^n Eleva ad n volte la stessa matrice ‘ Y=A’ Esegue la trasposta

Tipi particolari di matrici Linspace(partenza,arrivo,ripetizioni necessarie): vettore riga di elementi equispaziati Logspace: vettore riga di elementi equispaziati in scala logaritmica Zeros(dimensione): matrice contenente solo elementi uguali a zero Ones(dimensione): matrice contenente solo elementi uguali a uno Rand(dimensione): matrice contenente numeri pseudo-casuali in [0;1] Eye(dimensione): matrice identità Diag(vettore contenente la diagonale): matrice diagonale

Operatori e funzioni principali In MatLab sono presenti numerosissime funzioni che permettono di eseguire un numero elevatissimo di calcoli. Ogni funzione fa parte di un “pacchetto”, i principali sono: Generical Toolbox: Contiene una serie di funzioni utili, come l’inversa di una matrice, il rango di una matrice,ha come sottoinsieme la toobox simbolica ecc… Statistical Toolbox: Il pacchetto statistico contiene una serie di funzioni sia di statistica descrittiva che di statistica inferenziale; Econometrics Toolbox: E’ un estensione del pacchetto statistico, sviluppato da un docente di econometria e distribuito gratuitamente, migliora e aggiunge molte funzioni econometriche cui la toolbox statistica è carente; Financial Toolbox: Contiene una serie di funzioni “finanziarie”, come per esempio il pricing delle obbligazioni, derivati ecc… Noi non dobbiamo specificare quale toolbox usiamo, dato che ogni funzione ha un nome univoco, sarà MatLab stesso a selezionare il pacchetto necessario.

Operatori e funzioni principali Panoramica delle funzioni principali Matrice inversa Inv(X); Rango di una matrice: Rank(X); Numero righe, colonne: Size(X); Somma Cumulata di vettori e matrici: Cusum(A); Somma degli elementi di un array Sum(A) Radici di un polinomio Roots(p) dove p è dato da che viene riscritto in MatLab cosi p=[1 -72 -27]

Panoramica funzioni matematiche abs(x) valore assoluto o modulo di x cos(x) coseno di x log(x) logaritmo naturale di x log2(x) logaritmo base 2 di x log10(x) logaritmo base 10 di x sqrt(x) radice quadrata di x sin(x) seno di x per un elenco completo delle funzioni disponibili si può usare il comando >>help elfun

Programmazione: Panoramica funzioni relazionali > maggiore di < minore di >= maggiore o uguale di <= minore o uguale di == uguale a ~= diverso (non uguale) da L'utilizzo di questi operatori dà come risultato un valore 0 o 1, 1 se il controllo ha successo, 0 se il controllo non ha successo. Esempio dell’utilizzo dell’operatore diverso >> 3+5~=8 ans = 0 NB: Genericamente, in programmazione, al risultato 1 viene associata la parola TRUE, al risultato 0 la parola FALSE

Script Tutte le operazioni che vengono date al prompt dei comandi nell'ambiente di Matlab possono essere scritte in un file di testo che può essere richiamato ed eseguito dall'interno dell'ambiente MatLab. Questi programmi, chiamati script, devono avere l'estensione .m. Matlab riconosce questi file esattamente come un sistema operativo riconosce i suoi files batch. Con un qualsiasi editor di testo (notepad o textedit) posso creare questo file, salvarlo con l'estensione .m e poi richiamarlo a piacere. Matlab, comunque, mette a disposizione un suo editor. Esempio salviamo questi comandi in un file che chiameremo esempio.m a=[1,2 ;3,4]; b=[5 ;7]; c=a*b Eseguiamo questo semplice script all'interno di Matlab: >> esempio c = 19 43

Funzioni e programmi Oltre a semplici script è possibile scrivere delle funzioni che eseguono un numero maggiore di azioni, le funzioni ricevono in ingresso uno o più parametri e possono restituire uno o più valori. Ogni funzione ha la seguente sintassi [output1,output2,...]=funzione(input1,input2,...) ed il file .m ovvero il nostro file deve avere lo stesso nome della funzione, quindi, nel nostro esempio il file si chiamerà funzione.m ed avrà la seguente sintassi function risultato=funzione(a,b) risultato=a*b’ e potrà essere lanciato semplicemente attraverso il seguente comando: >>funzione(a,b), ricordando che le variabili a e b devono essere valorizzate.

Controlli di flusso Esistono principalmente 3 metodi per controllare il flusso di un programma e prendere decisioni all'interno dello stesso: Ciclo for for n=1 :0.1 :5 y(n)=3*n^2 end Ciclo while num=0 ;EPS=1 ; while (1+EPS)>1 EPS=EPS/2 ; num=num+1 ; Istruzioni di controllo if-elseif-else if a>5 b=7 elseif a>4 b=2.7 else b=0 Tutti questi comandi devono avere alla fine del blocco da eseguire un comando end.

Scriviamo un programma Scriviamo un programma che esegue la moltiplicazione di due vettori. Sorgente: %funzione di moltiplicazione di vettori function res = moltiplicazione_vettori(a,b) [nRigheA,nColonneA]=size(a); [nRigheB,nColonneB]=size(b); if (nColonneA == nColonneB) res=a*b'; else error('Errore conformità prodotto') end

Soluzione numerica ai sistemi di equazioni lineari I sistemi di equazioni lineari si possono risolvere sia simbolicamente che numericamente, analizziamo adesso la soluzione numerica. Supponiamo di avere un sistema di N equazione in N incognite, ed indichiamo con A la matrice dei coefficienti delle incognite e con B in vettore contenente i termini noti. Supponiamo di avere il seguente sistema sarà allora trascritto in una matrice e un vettore A=[2 3;1 5]; B=[11 16]; Il sistema in notazione matriciale sarà rappresentato da A*X=B, ove A è definita, X=[x y], quindi la soluzione è la seguente X=inv(A)*B’;

Passaggio dati da Excel MatLab si interfaccia con molti programmi e con molti linguaggi di programmazione. Noi vedremo solo il passaggio dei dati da Excel verso MatLab. In sostanza vi è un “Componente aggiuntivo” per Excel, che è un file di nome “Excllink.xla”, che permette ad Excel di passare e ricevere dati da MatLab. NB: Se non si è attivato il collegamento tra Excel e MatLab non appariranno in alto a sinistra della finestra di Excel i 4 pulsanti: StartMatlab, PutMatrix, GetMatrix, EvalString. Bisogna,allora, seguire questo procedimento: nella finestra di Excel andare su Strumenti->Componenti Aggintivi e controllare se vi è la voce Excel Link 2.2 for use with Matlab se è presente selezionarla, date Ok chiudete e riaprite Excel, se non è presente sempre su Strumenti->Componenti Aggintivi selezionate Sfoglia ed andate a cercare il file “Ecxllink.xla” nella cartella C:\Programmi\Matlab7\toolbox\exlink\excllink.xla selezionatelo e date OK, chiudete e riaprite Excel.

Passaggio dati da Excel Le funzioni principali per l’interscambio di dati sono due: putmatrix e getmatrix. La prima passa un valore od una matrice di valori da Excel a MatLab, la seconda porta un valore od una matrice di valori da Matlab ad Excel. GRAFICAMENTE getmatrix putmatrix

Chiudiamo con una carrellata di funzioni per l’analisi dei dati max valore massimo min valore minimo mean valore medio median valore mediano std deviazione standard sort sorting sum somma elementi prod prodotto elementi cumsum somma cumulativa cumprod prodotto cumulativo diff derivata approssimativa hist istogramma corrcoef coefficienti di correlazione cov matrice di covarianza