Matlab è un sistema software per calcolo numerico Sistema = collezione di componenti SW (pensiamoli come programmi ) Ampiamente utilizzato per

Documenti analoghi
Introduzione a Matlab ed Espressioni

Introduzione a Matlab

INTRODUZIONE A MATLAB

Strutture di controllo condizionali in Matlab

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Fondamenti di Informatica A. A / 1 9

MATLAB Elementi di grafica Costrutti di programmazione

Sviluppo di programmi

Costanti e Variabili

Fasi di creazione di un programma

Laboratorio con DERIVE

Fondamenti di Informatica

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Corso di Informatica

Espressioni e Comandi

Fortran in pillole : prima parte

Java e i Tipi di dati primitivi. Parte 3

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Introduzione a Matlab. Renato Mainetti

8 Introduzione MATLAB

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

Programmazione Procedurale in Linguaggio C++

Programmazione web lato client con JavaScript. Marco Camurri 1

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Esercitazione 2. Espressioni booleane Il comando if-else

8 Introduzione MATLAB

Fondamenti di Informatica T-1

Linguaggi algoritmici A. Ferrari

Lezione 6 Introduzione al C++ Mauro Piccolo

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione alla programmazione in C

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Sviluppo di programmi

Introduzione a Matlab

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Introduzione a Matlab

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Ing. Lorenzo Vismara

EXCEL software Excel .xlxs, La cella intestazione della colonna intestazione di righe l indirizzo della cella testo numeri formule

I fogli elettronici. Informatica Fogli elettronici 1

Lena Cota Guido Corso di Informatica - II livello. Excel 2003 Formule. Imparare a usare le formule con la pratica

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Variabile, costante ed espressione

Introduzione a MATLAB

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Università degli Studi di Milano

Caratteristiche di un linguaggio ad alto livello

Valutazione di espressioni

04 - Numeri Complessi

Descrittori di formato. n di cifre a destra del punto decimale n di spazi da saltare fattore di ripetizione larghezza del campo

Corso sul linguaggio Java

INTRODUZIONE A MATLAB/OCTAVE

Operazioni numeriche - Input

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

Foglio Elettronico Lezione 1

Programmazione in Java (I modulo)

CORSO DI LABORATORIO DI INFORMATICA

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Tutor: prof. Venturino Taggi

INTRODUZIONE AL LINGUAGGIO DI PROGRAMMAZIONE PASCAL. Per iniziare lo studio del linguaggio di programmazione pascal, consideriamo il seguente esempio.

Breve guida al linguaggio FORTRAN 77

FORMULE: Operatori matematici

Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi

Linguaggi, Traduttori e le Basi della Programmazione

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Caratteristiche generali del linguaggio Visual Basic

Corso di PHP. Prerequisiti. 2.2 Operatori. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

A.A. 2018/2019. Introduzione a MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Parte Seconda. Prova di selezione culturale

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Formule e funzioni. Manuale d uso

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

INTRODUZIONE A LINGO. Dispense a cura di Antonio Tiano

Espressioni ed operatori in C

Introduzione a MATLAB

int main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Analisi Numerica: Introduzione

Laboratorio di Calcolo Numerico

Introduzione a Matlab (e al Calcolo Numerico)

Laboratorio di Programmazione

Transcript:

Matlab è un sistema software per calcolo numerico Sistema = collezione di componenti SW (pensiamoli come programmi ) Ampiamente utilizzato per applicazioni di ingegneria Si interagisce con il SW mediante un linguaggio di programmazione Di seguito con Matlab ci riferimento sia al SW che al linguaggio Come avere accesso a Matlab Matlab è installato sulle macchine del laboratorio Matlab è scaricabile gratuitamente degli studenti UNIBO È importantissimo scaricalo per esercitarsi a casa

Matlab ha una interfaccia grafica (Graphical User Interface)

L elemento più importante della GUI è la finestra dei comandi Il simbolo >> si chiama prompt ed indica dove potete scrivere

Nella colonna di SX trovate un file browser Permette di esplorare la cartella corrente ed il suo contenuto

Nella colonna di DX trovate la finestra di workspace Permette di visualizzare le variabili che sono state definite

Il linguaggio Matlab si basa su pochi concetti fondamentali Tipi di dato elementari Tipi di dato composti Variabili Espressioni e funzioni Istruzioni di controllo del flusso E diversi concetti più complessi, ma meno essenziali: Range, Funzioni anonime, Oggi cominciamo a vederli insieme

Il tipo di dato più importante in Matlab sono i numeri reali Sintassi (notazione "normale): 3.14159 % Prime cifre di pi-greco 1000 % Il testo dopo "%" viene ignorato! % Si dice che "%" inizia un commento Sintassi (notazione scientifica): 314159e-5 % e-5 sta per "* 10^-5" 1e3 % e3 sta per "* 10^3" Semantica: un numero in Provate a digitare un numero e battere [INVIO]!

Matlab permette di trattare anche i numeri complessi Sintassi: 3 + 2i 1 + 4j La lettera i indica la parte immaginaria La lettera j si può utilizzare in alternativa ad i In elettrotecnica e teoria dei segnali si use invece di Semantica: un numero in Nota: i complessi ed i reali sono rappresentati in modo approssimato Vedrete in Analisi Numerica in che modo e cosa comporta

Matlab permette di trattare valori logici: vero o falso true false % Corrisponde a "vero" % Corrisponde a "falso" I due valori sono assimilabili a numeri: true è assimilabile al numero 1 false è assimilabile al numero 0 Matlab però tiene traccia del fatto che si tratta di valori logici: true % Risp.: ans = logical 1 Viene evidenziato che si tratta di un valore logico Questo aspetto tornerà utile tra un po

Per memorizzare dati, Matlab utilizza il concetto di variabile: Una variabile è una astrazione per un dato in memoria Potete pensarla come un contenitore con un nome Una variabile viene definita assegnandovi un valore Per farlo si utilizza l operatore di assegnamento, i.e. = Sintassi: <variabile> = <dato>

Vediamo un esempio: a = 5 Quando premete [INVIO], viene definita la variabile a con valore 5 Definita = predisposta in memoria Controllate la finestra di workspace! Il contenuto di una variabile può essere cambiato: a = 5 a = 3 Viene definita la variabile a con valore 5 Al passo successivo ad a viene assegnato il valore 3 Una variabile è un contenitore, ricordate?

Una variabile può contenere qualunque tipo di dato: x = 1 x = 2 + i x = false Il tipo puà variare dinamicamente x contiene prima un reale, poi un complesso, poi un valore logico Il nome di una variabile: Deve iniziare con una lettera o con _ I caratteri successivi possono essere lettere, _, o numeri r2d2 = 0 1var = 5 % È un nome valido % Non valido

Per visualizzare il contenuto di una variabile basta scriverne il nome: x % Malab "risponde" con x = logical 0 r2d2 % Malab "risponde" con r2d2 = 0 Funziona solo con le variabili che sono state definite Variabile non definita nessuna risposta o errore Completamento mediante [TAB]: Se iniziate a scrivere un nome di variabile Potete cercare di completarlo automaticamente usando [TAB] r2 [TAB] % Viene completato in r2d2

ans Abbiamo visto che: Se digitate un numero e premete [invio]: 42 Matlab risponde con: ans = 42 Vuol dire che il numero 42 è stato inserito nella variabile ans ans è una variabile (quasi) come tutte le altre In questo modo il risultato non viene perduto Provate a visualizzarne il contenuto (digitandone il nome)!

Alcune variabili sono automaticamente disponibili: E.g.: pi-greco pi pi % Risposta: pi = 3.1416 (solo alcune cifre) Cosa succede se ridefinite una variabile speciale? pi = 42 La vecchia pi diventa non accessibile Potete riportare tutto come prima con: clear all % Elimina tutte la variabili definite dall'utente

Una espressione è una notazione che restituisce un valore quando viene eseguita Il processo per cui questo avviene si chiama anche valutazione: Quando scrivete una espressione e premete [INVIO] Matlab la valuta e restituisce (o denota) un valore Un modo per pensarla: il valore restituito rimpiazza l espressione Si può usare una espressione ovunque sia richiesto un dato

La notazione per un tipo di dato è un esempio di espressione: Quando scrivete: 10 quello che avete fatto è scrivere del testo Nel momento in cui premete [INVIO] Matlab valuta l espressione ed ottiene il valore 10 Il risultato dell espressione viene memorizzato nella variabile ans

Il nome di una variabile è una espressione semplice x Quando premete [INVIO] dopo il secondo passo Matlab controlla se la variabile x sia definita Se lo è, restituisce il valore corrente Se la variabile non è definita viene riportato un errore Eccezione: Il nome di una variabile non è una espressione se compare a sinistra dell operatore di assegnamento = x = 10 % x in questo caso non è una espressione

Matlab fornisce un costrutto fondamentale per comporre espressioni: Si chiama chiamata a funzione una notazione che permette di eseguire un sotto-programma precedentemente definito Qualche esempio: plus(2, 5) % Esegue una somma minus(10, 3) % Esegue una sottrazione times(2, 3) % Esegue una moltiplicazione Chiamando una funzione si esegue il sotto-programma corrispondente

La sintassi per una chiamata a funzione è: <nome della funzione>(<dato>, <dato>,...) I dati tra parentesi rappresentano l input del sotto-programma Si chiamano parametri Tipicamente un funzione incapsula un algoritmo Quindi la funzione restituisce un risultato Si chiama funzione per analogia con le funzioni matematiche: Accetta dati di ingresso e restituisce un risultato Ha addirittura la stessa notazione di una funzione matematica

Vediamo qualche altro esempio di chiamata a funzione: sin(3.14156) % Seno (funzione trigonometrica) cos(pi) % Coseno atan(1) % Arcotangente abs(-3) % Valore assoluto power(2, 3) % potenza: 2^3 sqrt(4) % Radice quadrata exp(2) % esponenziale: e^2 log(2.7183) % logaritmo naturale log10(100) % Logaritmo in base 10 real(2 + i) % Parte reale imag(2 + i) % Parte immaginaria

Una chiamata a funzione viene valutata come segue: Matlab valuta i parametri Matlab esegue il sotto-programma Quando il sotto-programma termina, Matlab recupera il risultato I parametri possono essere espressioni di qualunque tipo In particolare, possono essere delle altre chiamate a funzione: plus(5, times(2, minus(7, 5))) In questo modo è possibile comporre espressioni Al momento di valutare i parametri, il processo viene ripetuto

La nostra espressione di partenza: plus(5, times(2, minus(7, 5))) Per valutare plus dobbiamo valutare i parametri: Il primo parametro è 5 (immediato da valutare) Il secondo parametro è una invocazione di times Per valutare times dobbiamo valutare i parametri: Il primo parametro è 2 Il secondo parametro è una invocazione di minus Per valutare minus dobbiamo valutare i parametri: Il primo parametro è 7 Il secondo parametro è 5

La nostra espressione di partenza: plus(5, times(2, minus(7, 5))) Per valutare plus dobbiamo valutare i parametri: Il primo parametro è 5 (immediato da valutare) Il secondo parametro è una invocazione di times Per valutare times dobbiamo valutare i parametri: Il primo parametro è 2 Il secondo parametro è quindi 2 plus(5, times(2, 2))

La nostra espressione di partenza: plus(5, times(2, minus(7, 5))) Per valutare plus dobbiamo valutare i parametri: Il primo parametro è 5 (immediato da valutare) Il secondo parametro è quindi 4 plus(5, 4)

La nostra espressione di partenza: plus(5, times(2, minus(7, 5))) L intera espressione denota il valore 9 9

Le funzioni aritmetiche hanno anche una sintassi speciale E.g. invece di scrivere plus(2, 3) Possiamo usare l operatore di somma + e scrivere 2 + 3 Vediamo i principali operatori aritmetici_ A + B % somma, e.g. 2 + 3 A - B % sottrazione, e.g. 2-3 - A % cambiamento di segno, e.g. -2 A * B % prodotto, e.g. 2 * 3 A / B % divisione, e.g. 2 / 3 A^B % elevamento a potenza, e.g. 2^3 A e B sono due espressioni che denotano un valore numerico Il risultato è un valore numerico

Hanno sintassi speciale anche per gli operatori di confronto: A == B % "vero" se uguali A ~= B % "vero" se diversi A < B % "vero" se minore A <= B %... A > B %... A >= B %... A e B sono due espressioni che denotano un valore numerico Il risultato è un valore logico Per esempio: 1 < 10 % Risp.: ans = logical 1

Hanno sintassi speciale anche per gli operatori logici A & B % "and": vero se A è vero _e_ B è vero A B % "or": vero se A è vero _o_ B è vero ~A % "not": vero se A è falso A e B sono due espressioni che denotano un valore logico Il risultato è un valore logico Qualche esempio: (1 < 2) & (-1 ~= 1) % Risp.: ans = logical 1 (1 < 2) & (-1 == 1) % Risp.: ans = logical 0 (1 < 2) (-1 == 1) % Risp.: ans = logical 1 (1 > 2) (-1 == 1) % Risp.: ans = logical 0 NOTA: ~ su Windows = Alt+126 (sul tastierino numerico)

Come accennato, i valori logici sono interpretabili come valori numerici: Vale anche l inverso: valori numerici sono interpretabili come logici: Attenzione: ogni numero viene interpretato come vero : 2 & 0 % Risp.: ans = logical 0 1 & 2 % Risp.: ans = logical 1-1 0 % Risp.: ans = logical 1

Consideriamo l espressione: 2 * a + b + 5 Sappiamo (per regole di matematica) che va interpreta come: ((2 * a) + b) + 5 Questa interpretazione si basa su due proprietà degli operatori: Priorità, che determina quali operatori debbano essere risolti prima Associatività, per risolvere applicazioni multiple di un operatore Matlab utilizza le stesse proprietà per interpretare gli operatori

Operatori, per priorità decrescente chiamata a funzione elevamento a potenza operatori + e - unari, operatore ~ moltiplicazione e divisione somma e sottrazione operatori di confronto operatore and logico operatore or logico Associatività sx sx sx sx sx sx sx sx

Qualche esempio: 2 * 3 + 4 % --> (2 * 3) + 4 2 * plus(3, 4) % --> (plus(2,3)) * 2 2 + 1 == 1 + 2 % --> (2 + 1) == (1 + 2) 1 == 1 2 < 3 % --> (1 == 1) (2 < 3) Per forzare un ordine diverso, si possono usare le parentesi 2 * (3 + 4) Se c è un assegnamento, esso viene eseguito dopo la valutazione: a = 2^3 + 1 % in a viene inserito 7

Matlab mette a disposizione un enormità di funzioni Ognuna ha la sua definizione! Il suo nome I suoi parametri La sua specifica (sotto-programma) Come fare ad orientarsi? Prima soluzione: imparare a memoria Seconda soluzione: Google o il manuale di Matlab Terza soluzione: usare una funzione!

Per conoscere la specifica di una funzione con nome noto Potere usare i comandi help o doc help <nome funzione> doc <nome funzione> help visualizza un messaggio sulla finestra dei comandi doc apre una finestra esterna nella GUI Provate con: help plus doc plus

Se conoscete solo parte del nome di una funzione Potete iniziare a scrivere a poi premere [TAB]: Matlab mostrerà i possibili completamenti I completamenti sono nomi di variabili (come già visto) E nomi di funzioni (quelli che ci interessano per help) Provate con: pl [TAB] È una funzionalità molto utile

Considerate le seguenti espressioni (ed assegnamenti): a = 10 * 2 + 3 b = 2^3-1 log(exp(a)) (a + 2) - (b - 2) c = a + b == 30 a + b * c c & (a < 2^4) a + b + c abs(-2^3) == b + 1 Cercate di capire cosa dovrebbero restituire Verificate cosa restituiscono effettivamente in Matlab Ricordate che i valori logici sono assimilabili a valori numerici