MATLAB. MATrix LABoratory

Documenti analoghi
Introduzione a Matlab

Introduzione al MATLAB c Parte 3 Script e function

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

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

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

MATLAB Elementi di grafica Costrutti di programmazione

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

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

CORSO DI LABORATORIO DI INFORMATICA

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

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

UD6 - MATLAB. Gestione della grafica

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Introduzione al MATLAB c Parte 1 Variabili ed array

8 Introduzione MATLAB

Introduzione a MATLAB

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Informatica Applicata al Suono Tutorial Matlab

Introduzione al MATLAB c Parte 2 Funzioni

Esercitazione 1: Introduzione a MATLAB

MATLAB - Programmazione - 2. Antonino Polimeno

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

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

Corso di Matematica per la Chimica

ESERCITAZIONE MATLAB

RETI DI TELECOMUNICAZIONE

CORSO DI LABORATORIO DI INFORMATICA

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

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

A. Introduzione a Matlab

Grafici in matlab. Un esempio di grafico: xv = 3:0.1:3; yv = xv.^3 5*xv.^2 + 4; plot(xv,yv) xlabel('value of x') ylabel('value of y')

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

MATLAB (1) Introduzione e Operazioni con array

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

MATLAB (3) - Grafica 2 e 3D

INTRODUZIONE A MATLAB

VBA Principali Comandi

Corso di Laboratorio di Sistemi Operativi

Fondamenti di Informatica

Prove d esame Esercizi con Matlab

Variabile, costante ed espressione

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Laboratorio di Matlab

MATLAB parte II. Array

Laboratorio di Python

3. Matrici e algebra lineare in MATLAB

Laboratorio 4 Funzioni e Input/Output

Introduzione a Matlab (e al Calcolo Numerico)

Fondamenti di Informatica

Programmazione web lato client con JavaScript. Marco Camurri 1

Introduzione a Matlab

Introduzione a MATLAB INTRODUZIONE A MATLAB

Caratteristiche di un linguaggio ad alto livello

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Introduzione a Matlab

MANUALE MATLAB. Nel manuale proposto ci soffermeremo ad osservare alcune funzioni proposte da Matlab inerenti all attività di laboratorio.

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

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Tipi di dato primitivi

Calcolo Numerico I - a.a Laboratorio 1 - Introduzione a MATLAB

MICROSOFT EXCEL FORMULE E FUNZIONI

Programmazione Matlab

Indice. Prefazione. 3 Oggetti e Java 53

Introduzione all ambiente Matlab

MATRICI (ARRAY) IN MATLAB/OCTAVE

Sistemi di Numerazione

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017

Introduzione al linguaggio Matlab - 1. A) Command Window: é la nestra in cui si eseguono in comandi.

Introduzione a Matlab. Renato Mainetti

Foglio Elettronico Lezione 1

Controllo di flusso negli script: if-then-else

Programmazione con il linguaggio LibreOffice Basic

INTRODUZIONE A MATLAB

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Laboratorio di Calcolo Numerico

Aritmetica in Floating Point

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)

CORSO DI LABORATORIO DI INFORMATICA

Introduzione al MATLAB c Parte 2

Grafici tridimensionali

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Costanti e Variabili

Introduzione al Foglio Elettronico

Lezioni su MATLAB. Ingegneria Civile/Meccanica

Fortran in pillole : prima parte

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

LEZIONE DI MATLAB 2.0. Ing.Irene Tagliente

Introduzione al Foglio Elettronico

Sviluppare un programma in FORTRAN

Rapida Introduzione all uso del Matlab Ottobre 2002

Introduzione all uso di MATLAB

Finestre grafiche. >> figure >> figure(n)

MATLAB - Introduzione Enrico Nobile. 2 a Parte. MATLAB - Introduzione E. Nobile - DINMA - Sezione di Fisica Tecnica, Università di Trieste.

Fondamenti di Programmazione. Sistemi di rappresentazione

Transcript:

MATLAB MATrix LABoratory 1

Cos è MATLAB? Sistema interattivo per il Calcolo Scientifico Integra Analisi numerica Calcolo matriciale Calcolo simbolico Capacità grafiche Interfaccia grafica (GUI) 2

Inizialmente fu scritto per facilitare l uso del software sviluppato dai progetti LINPACK ed EISPACK Oggi i package, detti TOOLBOXES, permettono la risoluzione di specifici problemi Financial Splines Optimization Statistic Symbolic Math.. 3

Il Sistema MATLAB consiste di: Linguaggio Ambiente di lavoro Gestore di grafici Funzioni matematiche Programma di interfaccia con le applicazioni 4

Il Linguaggio E ad alto livello orientato alle matrici e agli array, con: Costrutti di controllo Funzioni Strutture di dati Gestione di I/O 5

I comandi sono contenuti in directory distinte in base alla classificazione: ops lang strfun iofun timefun datatype Operatori e caratteri speciali Costrutti del linguaggio Stringhe di caratteri File di input e di output Tempi e data Tipi di dati e strutture 6

Maneggiare i grafici E possibile gestire i grafici mediante un sistema grafico che consente Visualizzazione di dati Animazione Presentazioni grafiche Costruzione di interfacce grafiche utente 7

L ambiente di lavoro Maneggiare le variabili nello spazio di lavoro Importare ed esportare dati Strumenti per sviluppare, mettere a punto programmi Tutti questi strumenti sono localizzati nella directory general 8

Funzioni matematiche Vasta collezione di funzioni elementari e complesse su matrici e funzioni Directory elmat elfun specfun matfun datafun polyfun funfun sparfun Contenuto Matrici elementari e manipolazione di matrici Funzioni matematiche elementari Funzioni matematiche speciali Algebra lineare numerica Analisi dei dati e trasformata di Fourier Interpolazione e polinomi Funzioni di funzioni e risoluzione di ODE Matrici sparse 9

Programma di interfaccia con le applicazioni (API) Questa è una libreria che permette di scrivere programmi in C e in FORTRAN che interagiscono con MATLAB Chiamare routine da Matlab Chiamare MATLAB come un motore computazionale 10

Come si presenta? Spazio di lavoro Finestra dei comandi Lista di comandi 11

COMMAND WINDOW In questa finestra è possibile inserire i comandi in linguaggio MATLAB. MATLAB prevede di lavorare essenzialmente con un solo tipo di dati strutturati: Matrice rettangolare Come casi particolari si ritrovano: gli scalari (matrici 1x1) i vettori (matrici nx1) 12

Input di una matrice 1. Lista esplicita degli elementi 2. Costruzione degli elementi della matrice 3. Caricare la matrice da un file di dati 13

1. Esempio INPUT OUTPUT A = [1 2 3; 4 5 6; 7 8 9] oppure A = [1 2 3 4 5 6 7 8 9] A = 1 2 3 4 5 6 7 8 9 carattere ; inibisce la visualizzazione del risultato ell istruzione 14

Cosa succede nella memoria? Matlab memorizza le matrici per colonna: una matrice è memorizzata come un vettore contenente la prima colonna seguita dalla seconda, dalla terza, etc. ESEMPIO: La matrice A di ordine 3x4 è memorizzata come a11a21 a31 12 a a22a 32 a 13 a 23 a 33 a 14 a 24 a34 15

ESEMPIO: a=rand(3,4) a = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0.6154 0.6068 0.7621 0.8214 0.7919 a(4,2) a(6) 16

MATLAB è case sensitive cioè A è una variabile diversa da a La gestione degli array è dinamica, nel senso che le dimensioni possono variare durante il calcolo 17

2. Esempio INPUT r=[1 2 3] OUTPUT r= 1 2 3 n=[5 6 7]; r=[r ; n] r= 1 2 3 5 6 7 18

Si può individuare all interno di array un elemento indicando gli indici tra parentesi tonde Esempio: a=[1 2 3 4 5 6 7 8 9] a(2,3) Si può individuare all interno di array una riga o una colonna indicando la variazione degli indici a(1, 1 : 3) 19

Operazioni su matrici + - * ^ ` \ / addizione sottrazione moltiplicazione riga x colonna elevamento a potenza trasposizione divisione a sinistra divisione a destra 20

Divisione a sinistra X=A\B se A è quadrata, la matrice X contiene i vettori soluzione del sistema a più colonne AX=B equivale a X=inv(A)*B (risolto con il metodo di Gauss con pivoting parziale) Se A non è quadrata, la matrice X contiene i vettori soluzione del sistema sovra o sotto dimensionato AX=B risolto con il metodo dei minimi quadrati 21

Divisione a destra X=A/B se B è quadrata X=A/B equivale a X=A*inv (B) Se A e B hanno lo stesso numero di colonne, X=A/B=(B \A ) 22

Per eseguire operazioni aritmetiche su matrici, componente per componente si premette all operatore il punto C=A.*B C=A.^B C=A.\B C=A./B C = A * B ij C = ij ij A ij ij ij B C = B / ij ij C = A / ij B A ij ij ij L addizione e la sottrazione sono operazioni eseguite già componente per componente 23

ESEMPIO: INPUT OUTPUT A=[1 2 2; 2 1 1; 0 3 1]; A=A ^ 2 A=[1 0 2; 2 1 0; 0 0 1]; A=A.^ 2 A = 5 10 6 4 8 6 6 6 4 A = 1 0 4 4 1 0 0 0 1 24

Variabili logiche o booleane Associando a : 1 il valore vero 0 il valore falso si possono usare variabili di tipo logico anche se non esplicitamente dichiarate. Una variabile il cui valore è diverso da 0 si dice logicamente vera 25

Operatori logici ~ & Not And Or Gli operatori logici operano in generale su array della stessa dimensione. Se un operando è uno scalare e l altro no, l operazione viene applicata a ciascun elemento dell array (espansione scalare) 26

ESEMPIO: INPUT a=[1 2 3 0 1]; b=[1 0 0 0 1]; a & b ~ ans OUTPUT Variabile in cui viene memorizzato il risultato di una espressione se non è specificata la variabile a cui assegnar il valore del risultato ans = 1 0 0 0 1 ans = 0 1 1 1 0 a b ans = 1 1 1 0 1 27

Operatori relazionali Si possono utilizzare su tutti i dati dotati di un ordinamento naturale < > <= >= == ~= Minore Maggiore Minore o uguale Maggiore o uguale Uguale Non uguale 28

Anche questi operatori si comportano come gli operatori logici quando si opera con array e scalari. Componenti per cui il risultato dell operazione è vero assumono valore 1, mentre dove è falso assumono valore 0. ESEMPIO: INPUT x=2.5; a=2; b=3; L= x<=b L2= x>=a L & L2 OUTPUT L= 1 L2= 1 ans= 1 29

Variabili stringa In MATLAB il termine stringa si riferisce ad un array di caratteri e la sua rappresentazione interna corrisponde al valore ASCII dei caratteri. Sono riconosciute come stringhe i caratteri racchiusi tra apici. ESEMPIO: s= chimica Nel workspace avremo: Name Size Byte Class s 1x7 14 Char array 30

E possibile creare array bidimensionali di caratteri con la sola limitazione che le righe abbiano la stessa lunghezza. ESEMPIO: Due spazi Nome=[ Gianluca ; Franco ] equivalentemente Nome= char ( Gianluca, Franco ) Funzione che automaticamente inserisce caratteri bianchi alle stringhe più corte 31

Concatenazione di stringhe Questa operazione avviene sfruttando la capacità di MATLAB nella gestione degli array. ESEMPIO: Sia Nome la variabile precedentemente definita, allora l istruzione: S= [Nome(1, :) Nome(2, : ) ] assegna alla variabile S il valore GianlucaFranco sottostringhe 32

Costrutti di controllo if, if else, if elseif while for switch 33

if, if else, if elseif if espressione logica istruzioni end if espressione logica istruzioni else istruzioni end if espressione logica istruzioni elseif espressione logica istruzioni else istruzioni end 34

ESEMPI: if rem(a,2)==0 disp( A pari ) b=a/2 end Funzione built-in calcola il resto della divisione Funzione che permette la visualizzazione della stringa if n<0 disp( errore di input ) else a=n/2 end if n<0 disp( errore di input ) elseif rem(n,2)==0 a=n/2 else a=(n+1)/2 end 35

while while espressione istruzioni end Funzione built-in che esegue il prodotto degli elementi di un array ESEMPIO: Valutare il più piccolo intero n per cui n! è un numero di 10 o più cifre. n=1 while prod (1:n) < 1e10 n=n+1 end 36

for for indice = inizio: incremento: fine istruzioni end ESEMPIO: for i = 2:6 x(i) = 2* i end Per default l incremento è 1 Viene eseguita 5 volte 37

switch switch espressione case valore1 istruzioni case valore2 istruzioni... otherwise istruzioni end ESEMPIO: switch input_num case -1 disp ( -1 ) case 0 disp ( zero ) otherwise disp ( altro ) end 38

Aritmetica di MATLAB Matlab utilizza il Sistema aritmetico Floating-point Standard IEEE in doppia precisione F = ( 2, 52, -1024, 1023) base precisione Emin Emax 39

Visualizzazione dei numeri Matlab prevede i seguenti formati: Format short (default) Format short e Format short g Format long Format long e Format long g Format hex 40

ESEMPIO: format short Se il numero è compreso tra 10^-3 e 10^3 viene visualizzato in formato fixed-point con 4 cifre decimali altrimenti viene scalato per ridurre la parte intera ad 1 cifra Numero 12.3456789123456 Visualizzazione 12.3457 123.456789123456 123.4568 1234.56789123456 0.00012456789123 1.2346e+003 1.2457e-004 41

ESEMPIO: format short e Viene visualizzato il valore in formato floating-point con la parte intera di 1 cifra e la parte decimale di 4 Numero 12.3456789123456 123.456789123456 1234.56789123456 0.00012456789123 Visualizzazione 1.2346e+001 1.2346e+002 1.2346e+003 1.2457e-004 42

ESEMPIO: format short g Viene visualizzato il valore migliore tra il formato floating-point e fixed-point Numero 12.3456789123456 12345.6789123456 123456.789123456 0.00012456789123 0.00001234567891 Visualizzazione 12.346 12346 1.2346e+005 0.00012457 1.2346e-005 43

ESEMPIO: format long Simile al formato short ma con la visualizzazione di 15 cifre per la parte decimale 3.141592653589792 0.003141592653532 234567890123456.12345 format long : 3.14159265358979 format long e : 3.14159265358979e+000 format long g: format long : 0.00314159265353 format long e : 3.14159265353200e-003 format long g : format long format long e : format long g :1.23456789012346e+015 44

M-file Sono file che contengono istruzioni in linguaggio MATLAB. Devono avere estensione.m Tipi di M-file: Script file Function file Possono essere scritti con un qualsiasi editor di testo. MATLAB mette a disposizione un proprio editor che evidenzia le parole chiave e indenta automaticamente. 45

Script file I comandi contenuti nel file vengono eseguiti sequenzialmente quando nella finestra dei comandi viene digitato il nome del file senza estensione. Gli script operano sui dati presenti nel workspace o creano nuovi dati su cui operare. Le variabili create con uno script-file permangono nel workspace anche dopo la fine dell esecuzione dello script. 46

ESEMPIO: Primo.m N= input ( dimensione ) R= linspace ( 1, 10, N) for i =1:N a(i,:) = R*i end Funzione che visualizza la stringa dimensione e prende in input un valore da assegnare ad N Funzione che crea un array di N elementi equispaziati tra 1 e 10 47

struzione = input ( dimensione ) = linspace ( 1, 10, N) or i =1:N a(i,:) = R*i nd output dimensione 3 Dato digitato da tastiera N= 3 R= 1.0000 5.5000 10.0000 a= 1.0000 5.5000 10.0000 a= 1.0000 5.5000 10.0000 2.0000 11.0000 20.000 a= 1.0000 5.5000 10.0000 2.0000 11.0000 20.0000 48

Function file Sono M-file che accettano argomenti in input e ritornano argomenti in output. Operano con variabili del proprio workspace, separato dal workspace accessibile al prompt dei comandi MATLAB Le variabili delle function sono locali alla function stessa 49

Struttura di un function file Una funzione consiste di: Linea di definizione (testata) Testo di help per la funzione Corpo 50

Linea di definizione function [out(1),, out(n)] = nome ( in(1),,in(m) ) Parola chiave Parametri di ouput 31 caratteri al più o 1 carattere = lettera rimanenti = { lettere cifre underscore Nome della function Parametri di input 51

Raccomandazione E opportuno, anche se non è necessario, che il nome della function sia lo stesso del nome del file con estensione.m, che la contiene. Se sono diversi predomina il nome del file. Ad esempio: la funzione definita da: function [righe, colonne]= somma ( A ) deve trovarsi nel file somma.m 52

help per la funzione Le linee e che iniziano con il carattere % sono considerate da MATLAB commenti. Tutte le linee di commento consecutive che seguono la testata vengono visualizzate quando si richiede nella finestra dei comandi l help per la function. >> help nome_funzione 53

Corpo della funzione Sono istruzioni in linguaggio MATLAB che eseguono calcoli e assegnano valori ai parametri di output. Le istruzioni possono essere: chiamate a funzioni costrutti di controllo espressioni aritmetiche assegnazioni Inoltre possono esserci: commenti linee vuote 54

ESEMPIO: Problema Costruire una function che prende in input una matrice e restituisce in output una variabile logica con valore vero se le somme di tutte le righe della matrice sono uguali, falso altrimenti. Script file N=input( dimensione della matrice ) A=magic(N); Righe =somma(a) 55

unction nel file somma.m nction l= somma (Matrice) la funzione somma ritorna il valore vero (1) per la variabile l se le somme degli elementi di riga di Matrice sono uguali, il valore falso (0) altrimenti. determina le dimensioni della matrice, m]=size(matrice) calcola la somma degli elementi della prima riga = sum(matrice(1, : )) 1; i=2 verifica se le somme degli elementi di ciascuna riga sono uguali hile l & i<=n if sum (Matrice(i, :)) ~ = T l=0 end i=i+1 56

Verifica del numero di parametri Se una funzione ha molti parametri, può essere conveniente avere la possibilità di chiamarla con un numero di parametri minore di quelli che compaiono nella testata. Inoltre la function potrebbe eseguire parti di codice diverse in funzione del numero dei parametri di I/O. Le funzioni nargin e nargout permettono di determinare con quanti parametri di input e di output è chiamata una funzione 57

ESEMPIO: unction [X,fVal,nIT,iFail,delta,n,TEMPI]=... DIP_r2(Q,C,L,U,tol,X0,BigBnd,maxIT) set input default parameters f nargin < 8, maxit=100; if nargin < 7, BigBnd=10^6; if nargin < 6, flagx0=0; if nargin < 5, tol=10^(-5); if nargin < 4, flagul=1; U=ones(n,1); L=zeros(n,1); end end end end nd 58

Differenze tra M-file Script Non accettano parametri di input é restituiscono parametri di utput Operano sui dati del workspace Si usano per automatizzare un sieme di passi che devono essere seguiti più volte Function Possono accettare parametri di input e restituire parametri di output Le variabili interne sono locali alla function Si possono considerare come estensioni del linguaggio MATLAB 59

Ottimizzare la performance di un codice MATLAB 1. Vettorizzazione dei cicli 2. Preallocazione degli array 60

Vettorizzazione di cicli Vettorizzazione Convertire for e while in equivalenti operazioni su matrici o vettori 61

ESEMPIO: I=0 for t=1:0.1:10 I=I+1 Y(I)=sin(t) end t= 1:.1:10 Y=sin(t) Più veloce 62

Preallocazione di array Preallocazione Riservare area di memoria ad un array ridurre la frammentazione della memoria quando si aumentano le dimensioni degli array 63

ESEMPIO: preallocazione for I=1:100 Y(I)=cos(I) end y = zeros(1,100) for I=1:100 Y(I)=cos(I) end 64

Salvare i dati save-salva variabili da workspace su disco load-salva variabili da disco su workspace 65

Save save nome_file lista_variabili formato Il formato può essere: -mat formato binario di matlab (default) -ascii formato ASCII a 8 cifre -ascii -double formato ASCII a 16 cifre 66

Load File creato con ve file variabili ve file variabili ascii Comando load file load file Effetto Carica nel workspace le variabili Carica nel workspace la variabile file 67

M-file debugger Il debugging è il processo di correzione e di localizzazione di un errore nel codice Nel codice si possono trovare due tipi di errori: di sintassi, quali omissione di una parentesi, errore nello scrivere il nome di una variabile,... runtime, usualmente errori algoritmici più difficili da correggere 68

Gli errori di sintassi sono facili da correggere perché MATLAB produce un messaggio che specifica in quale linea è presente l errore e di che tipo è Gli errori di runtime si possono correggere: Eliminando il ; in opportune istruzioni Aggiungendo l istruzione keyboard nel file Trasformando la function in uno script, in modo da poter avere accesso immediato al workspace di base Usando il debugger di MATLAB 69

Debugger Permette di : accedere al workspace di una funzione per visionare i valori delle variabili posizionare dei breakpoint, cioè punti in cui l esecuzione si arresta momentaneamente 70

Tempi di esecuzione cputime - tempo di CPU in secondi tic, toc - tempo di esecuzione in secondi clock, etime - tempo trascorso in un certo intervallo 71

cputime > help cputime PUTIME CPU time in seconds. CPUTIME returns the CPU time in seconds that has been used by the MATLAB process since MATLAB started. For example: t=cputime; your_operation; cputime-t returns the cpu time used to run your_operation. The return value may overflow the internal representation and wrap around. 72

tic, toc >> help tic TIC Start a stopwatch timer. The sequence of commands TIC, operation, TOC prints the number of seconds required for the operation. 73

clock, etime > help etime TIME Elapsed time. ETIME(T1,T0) returns the time in seconds that has elapsed between vectors T1 and T0. The two vectors must be six elements long, in the format returned by CLOCK. Time differences over many orders of magnitude are computed accurately. The result can be thousands of seconds if T1 and T0 differ in their first five components, or small fractions of seconds if the first five components are equal. t0 = clock; operation etime(clock,t0) 74

Grafici 2D Per poter disegnare il grafico di una funzione bisogna: 1. Creare un vettore di ascisse in cui valutare la funzione 2. Valutare la funzione nelle ascisse così ottenute 3. Disegnare il grafico funzione plot 75

è possibile scegliere il colore e il tratto del disegno, specificando una stringa di due caratteri (il primo si riferisce al colore mentre il secondo al tipo di linea): rred g green b blue w white m magenta c cyan y yellow k black. point o circle x x-mark + plus * star - solid : dotted -- dashed -. dash-dot 76

Variabile predefinitaπ x=0:.5:2*pi y=sin(x) plot(x,y) Grafici 2-D2 plot(x,y, r* ) 77

Altri comandi utili per illustrare e per gestire i grafici ono: rid : sovrappone al grafico una griglia itle : aggiunge un titolo al disegno label : aggiunge una legenda per l asse x label : aggiunge una legenda per l asse y xis : scala gli assi del grafico es.:axis([xmin,xmax,ymin,ymax]); lf : cancella il grafico corrente 78

Il comando figure crea una nuova finestra grafica in cui far comparire il disegno; per spostarsi sulla n-ma finestra grafica, basta digitare figure(n) Il comando close all : chiude tutte le finestre grafiche 79

Grafici multipli hold on, permette di sovrapporre due o più grafici hold off, disabilita la funzione precedente plot(x,y,x,yy) disegna due grafici sulla stessa finestra subplot(m, n, p) divide la finestra grafica in m righe e n colonne e il prossimo grafico viene disegnato al posto p 80

ESEMPIO: x = 0 : 0.2 : 12; y1 = sin(x); y2 = cos(x); y3 = y1+y2; figure(2) h = plot(x, y1, x, y2, x, y3); set (h, 'LineWidth', 1.5, {'LineStyle'},{'--' ; ':' ; '-' }) set (h, {'Color'}, {'r'; b';'k'}) axis ([0 12-2 2]) grid on xlabel('ascisse') ylabel('ordinate') legend( h,'seno','coseno','somma') title( 'funzioni trigonometriche ) [y,ix] = min(y3); text (x(ix), y, ['\leftarrow ', num2str(y)], 'HorizontalAlignment', 'left') 81

82

ESEMPIO: x = 0 : 0.2 : 12; y1 = sin(x); y2 = cos(x); y3 = y1+y2; subplot (2, 2,1); plot(x,y1) title('seno') subplot (2,2,2); plot(x,y2) title('coseno') subplot(2,2,3); plot(x,y3) title('seno+coseno') 83

84

Grafici 3-D3 Per poter disegnare un grafico tridimensionale di una funzione di due variabili bisogna: 1. Creare una griglia di punti del piano x,y in cui valutare la funzione 2. Valutare la funzione nei punti della griglia 3. Disegnare il grafico 85

ESEMPIO: Si vuole disegnare il grafico della funzione: f( x, y) = sen( x) + cos( y) nel dominio D = [ π, π] [ 2 π, π] 1. Creare la griglia meshgrid è la funzione di Matlab che crea una griglia sul piano x,y 86

figure(1) x=linspace(-pi,pi,5); y=linspace(-2*pi,pi,10); [X,Y]=meshgrid (x,y); 87

2. Valutare la funzione nei punti della griglia Z=sin (X)+cos (Y); matrici create con meshgrid 88

3. Disegnare il grafico mesh meshc meshz surf surfl waterfall creano vari tipi di grafici 89

mesh(x,y,z) 90

Per ottenere un grafico migliore bisogna aumentare i punti della griglia =linspace(-pi,pi,50); =linspace(-2*pi,pi,100); X,Y]=meshgrid (x,y); =sin (X)+cos (Y); esh(x,y,z) 91

meshc(x,y,z) 92

meshz (Z) 93

surf(x,y,z) 94

surf(x,y,z) shading interp colormap copper 95

waterfall(x,y,z) colormap jet 96