Lezione 1: Introduzione all’uso di Matlab Ing. Raffaele Carli (email: r.carli@poliba.it) Politecnico di Bari Laurea Specialistica in Ingegneria Gestionale Corso di Analisi dei Sistemi Bari, 10 ottobre 2013
Sommario Introduzione a Matlab: Descrizione generale di Matlab Definizione di matrici, vettori e polinomi Quadro delle funzioni predefinite Rappresentazione grafica dei dati Cenni alla programmazione in ambiente Matlab
Introduzione (1/2) Scopo della lezione fornire le informazioni necessarie per l’uso di Matlab in relazione alle esercitazioni del corso dare una panoramica generale (tutt’altro che esauriente) delle potenzialità di Matlab per la formulazione e la soluzione di problemi numerici nell’ambito del corso di “Analisi dei Sistemi” Il materiale presentato NON È un manuale d’uso di Matlab
Introduzione (2/2) Dove trovare altre informazioni? Sito web di Mathworks: www.mathworks.com seguendo i link alla voce “support ” è possibile trovare i manuali di Matlab in formato Adobe PDF Un testo in italiano di introduzione a Matlab utile per gli argomenti del corso di Analisi dei Sistemi: “MATLAB Guida al Laboratorio di automatica” M. Dotoli, M. P. Fanti Città Studi Edizioni I ed. Apr 2008
Descrizione generale di Matlab MATLAB = MATrix LABoratory gestione semplice ed ottimizzata della manipolazione di matrici Principali caratteristiche dell’ambiente linguaggio di programmazione per applicazioni scientifiche e numeriche molto diffuso Facilita’ d’uso e potenzialita’ di calcolo grande portabilita’ vasto set di funzioni predefinite (built-in function) libreria di TOOLBOX per svariate applicazioni; ad es. Signal Processing, Identificazione di modelli, … possibilità di scrivere nuove funzioni interprete di comandi (forniti interattivamente o contenuti in files su disco) possibilita’ di convertire un programma MATLAB in codice C e C++ in modo automatico Interpreti e compilatori I programmi scritti nei linguaggi di programmazione di alto livello, quelli più vicini all'uomo che alla macchina, possono essere tradotti nel linguaggio macchina in due modi distinti, che presentano entrambi vantaggi e svantaggi. Gli interpreti operano traducendo una riga del programma per volta, ed eseguendola immediatamente, un po' come fanno gli interpreti simultanei nelle trasmissioni televisive o nei congressi. I compilatori traducono per intero il programma prima di eseguirlo, un po' come i traduttori di libri o riviste. Interpreti e compilatori sono a loro volta dei programmi, che spesso sono scritti nel linguaggio che essi stessi traducono. Sembra un controsenso, ma è proprio così. I linguaggi di programmazione che richiedono un interprete sono definiti linguaggi interpretati, mentre quelli che richiedono un compilatore sono chiamati linguaggi compilati. Entrambi presentano vantaggi e svantaggi, descritti nel seguito. Vantaggi e svantaggi dei linguaggi interpretati I linguaggi di programmazione che lavorano con un interprete risultano solitamente più lenti, poiché la traduzione riga per riga deve essere effettuata ogni volta che si vuole eseguire il programma. Inoltre l'interprete deve essere sempre disponibile nel momento dell'esecuzione del programma, e questo risulta scomodo per chi desidera distribuire i propri programmi ad altri. Tra l'altro, il fatto che l'esecuzione del programma richieda la contemporanea disponibilità dei file sorgenti e dell'interprete, poiché la traduzione viene effettuata in tempo reale, comporta dei problemi di riservatezza per chi commercializza le proprie applicazioni: l'utente riceve anche una copia dei file sorgenti, che può modificare come preferisce. D'altra parte, agli sviluppatori i linguaggi interpretati offrono il vantaggio di poter apportare delle modifiche al programma in modo molto più semplice e immediato, e inoltre il controllo sulla validità delle istruzioni eseguito riga per riga evidenzia immediatamente eventuali errori commessi. Vantaggi e svantaggi dei linguaggi compilati I linguaggi di programmazione che utilizzano un compilatore offrono notevoli vantaggi rispetto a quelli interpretati. I programmi scritti in questi linguaggi risultano molto più veloci, poiché la traduzione viene effettuata una volta per tutte, mentre poi viene eseguito direttamente il file eseguibile, ovvero il file contenente i codici in linguaggio macchina che sono riconosciuti direttamente dal computer. Inoltre, l'esecuzione del programma non richiede né la disponibilità dei file sorgenti, né quella dell'interprete, perciò risulta molto più semplice distribuire le applicazioni, senza alcun problema legato alla riservatezza del proprio lavoro: l'utente non ha alcuna possibilità di modificare il lavoro svolto dal programmatore. Anche i compilatori presentano tuttavia alcuni svantaggi: poiché l'esecuzione del programma richiede la preventiva traduzione dei file sorgenti per creare i file eseguibili, anche la più piccola modifica apportata al codice sorgente obbliga a una nuova traduzione dell'intero programma, che richiede un certo tempo. Inoltre, il fatto che la traduzione venga sempre eseguita per intero comporta 1'impossibilità di controllare immediatamente la validità delle istruzioni immesse. In ogni caso, quasi tutte le applicazioni commerciali oggi disponibili sono scritte utilizzando linguaggi compilati, mentre i linguaggi interpretati vengono utilizzati quasi esclusivamente per scopi particolari o in fase di prova.
L’interfaccia di Matlab (1/2)
L’interfaccia di Matlab (2/2) Command Window: è la finestra dell’interprete di comandi di Matlab. Vi si possono scrivere direttamente comandi o lanciare programmi scritti nel linguaggio di programmazione del Matlab. Command History: è la finestra che contiene l’elenco dei comandi inseriti nella Command Window. Current Directory: visualizza in forma grafica il contenuto della cartella di lavoro. Workspace: è la finestra che visualizza il contenuto dell’area di memoria utilizzata dal Matlab (nomi, tipi e dimensioni delle variabili).
Il prompt dei comandi Distinguiamo ad es. Lanciata l’esecuzione del programma compare prompt dei comandi "»" MatLab resta in attesa che venga effettuata una qualsiasi operazione editare un programma, lanciare l’esecuzione di un file oppure eseguire un’istruzione digitata sulla riga di comando e cosi’ via Matlab puo’ essere considerato un interprete le cui istruzioni sono del tipo: Distinguiamo ad es. 1) assegnamenti “» variabile = espressione”, in tal caso la variabile creata resta a disposizione come matrice nella workspace per future operazioni. 2) valutazione di espressioni “» espressione”, in tal caso la valutazione dell'espressione viene assegnata alla variabile di sistema “ans”, disponibile per una sola operazione.
Help! Una funzione fondamentale! Manuale dei comandi in linea » help per ottenere la lista dei toolbox installati » help <nome_comando> guida ‘on-line’ di MATLAB sullo specifico comando » help <nome_toolbox> per ottenere la lista dei comandi installati in un toolbox » help ops help sugli operatori matematici e caratteri speciali » help elfun help su funzioni matematiche predefinite » help matfun help sulle matrici Funzioni di ricerca lookfor ricerca per parola chiave Esempi di applicazioni demo per far comparire sullo schermo alcuni menu e poter scegliere, tramite il mouse, l’argomento del quale si vuole vedere una dimostrazione
Matlab come calcolatrice... La modalità di impiego più “semplice”: per valutare espressioni numeriche
Formato di visualizzazione In Matlab tutte le elaborazioni vengono effettuate in doppia precisione Il formato con cui l’output compare sul video pu`o per`o essere controllato mediante i seguenti comandi
Operazioni matematiche elementari
Definizione di variabili Le variabili non vanno dichiarate. La dichiarazione coincide con il primo assegnamento. E’ case-sensitive (distingue maiuscole/minuscole)
Operatore di assegnazione L’operatore “=“ è utilizzato in Matlab per assegnare un valore (numerico, come il risultato di un’operazione di calcolo, oppure testuale o simbolico [ne parliamo più avanti] ) ad una variabile Se l’assegnazione termina con un “;” allora il risultato dell’operazione di assegnazione non viene visualizzato, altrimenti si. » x = 2; y = 4; z = x*y z = 8
Il Workspace Ogni variabile definita in questo modo viene conservata in memoria, nel Workspace Se si fa doppio click su una variabile nella workspace, questa viene aperta in una finestra “variable editor”, dove può essere modificata, senza doverla ridefinire Comandi per la gestione del workspace who elenca le variabili presenti nell’area di lavoro whos elenca, oltre al nome delle variabili, anche il tipo e l’occupazione di memoria clear / clear all per cancellare una o tutte le variabili
Costanti predefinite variabili che hanno un proprio valore senza che esso venga esplicitamente assegnato:
Alcune funzioni predefinite (1/2) Funzioni scalari
Alcune funzioni predefinite (2/2) Operatori relazionali Operatori logici
Altre funzioni utili (1/2) Info sulla versione di MATLAB version per informazioni sulla versione del prodotto Matlab ver per informazioni sulle versioni di Matlab, Simulink e Toolbox clc Pulisce la command dir elenca i files contenuti nella Current Directory ↑ richiama le istruzioni precedenti p↑ richiama le istruzioni precedenti che cominciano con la lettera p tic […] toc restituisce il tempo trascorso da quando è stata chiamata l’istruzione tic ! comando Esegue il comando DOS ‘comando’ dalla Command Window (e.g. !calc)
Altre funzioni utili (2/2) % se una riga di un file Matlab inizia con % allora tale riga viene considerata come un commento … Ogni istruzione puo’ essere scritta anche su due righe purch`e prima di andare a capo vengano scritti 3 punti
Continua…
Laboratorio di Analisi dei sistemi Grazie per l’attenzione! Dr. Eng. Raffaele Carli Electrical and Information Engineering Department (DEE) Politecnico di Bari email: r.carli@poliba.it