al MATLAB Francesca Zanello Padova, 27 Aprile 2009 al MATLAB 1
base Esempio: Algebra lineare File input/output al MATLAB 2
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB 1. MATLAB è un ambiente integrato per il Calcolo Scientifico e la visualizzazione grafica scritto in inguaggio C e C++ 2. MATLAB è distribuito da The MathWorks Inc (www.mathworks.com) 3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppato per consentire un accesso immediato a pacchetti software per il calcolo matriciale 4. MATLAB è un linguaggio interpretato: richiede un numero maggiore di operazioni macchina rispetto ad un linguaggio compilato non va linkato alle subroutine di libreria include numerose funzioni già ottimizzate dal punto di vista dell efficienza computazionale è possibile scrivere dei programmi MATLAB (script.m) permette l elaborazione dei risultati mediante diagrammi 5. Esistono piattaforme open-source con funzioni equivalenti a MATLAB (ad es. Octave, www.octave.org) al MATLAB 3
Avviare MATLAB Avviare MATLAB In ambiente Windows e Unix dal menu Applicazioni selezionare MATLAB. In alternativa, in ambiente Unix si lancia il comando matlab da una finestra di terminale. al MATLAB 4
Gestione sessione di lavoro Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Nomi delle variabili: devono iniziare con una lettera non possono essere più lunghi di 32 caratteri MATLAB è case sensitive per gestire una sessione di lavoro con MATLAB Comando Descrizione help Help di MATLAB quit Chiude MATLAB clc Cancella il contenuto della finestra dei comandi clear Elimina tutte le variabili in memoria clear var1 var2 Elimina le variabili var1 e var2 dalla memoria exist ( nome ) Determina se un file o una variabile hanno il nome specificato Elenca le variabili che si trovano correntemente in memoria who whos Elenca le variabili e i corrispondenti valori e indica se le variabili hanno parte immaginaria non nulla, Separa le istruzioni ; Esclude la visualizzazione del risultato di un istruzione e separa le righe di un array... Continua l istruzione alla riga successiva al MATLAB 5
Gestione sessione di lavoro Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Nomi delle variabili: devono iniziare con una lettera non possono essere più lunghi di 32 caratteri MATLAB è case sensitive per gestire una sessione di lavoro con MATLAB Comando Descrizione help Help di MATLAB quit Chiude MATLAB clc Cancella il contenuto della finestra dei comandi clear Elimina tutte le variabili in memoria clear var1 var2 Elimina le variabili var1 e var2 dalla memoria exist ( nome ) Determina se un file o una variabile hanno il nome specificato Elenca le variabili che si trovano correntemente in memoria who whos Elenca le variabili e i corrispondenti valori e indica se le variabili hanno parte immaginaria non nulla, Separa le istruzioni ; Esclude la visualizzazione del risultato di un istruzione e separa le righe di un array... Continua l istruzione alla riga successiva al MATLAB 5
Scalari Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Costanti predefinite Nome Descrizione ans variabile temporanea che contiene il risultato più recente eps Specifica la precisione dei numeri decimali Inf Infinito ( ) NaN Risultato numerico indefinito pi Numero π = 1.314159... i,j unità immaginaria i = j = 1 base su scalari Simbolo Operazione Formato MATLAB ^ Elevazione a potenza: a b a^b * Moltiplicazione: a*b a*b / Divisione a destra o diretta: a/b = a:b a/b \ Divisione a sinistra o inversa: b \a = a:b b\a + Addizione: a+b a+b - Sottrazione: a-b a-b al MATLAB 6
Scalari Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Costanti predefinite Nome Descrizione ans variabile temporanea che contiene il risultato più recente eps Specifica la precisione dei numeri decimali Inf Infinito ( ) NaN Risultato numerico indefinito pi Numero π = 1.314159... i,j unità immaginaria i = j = 1 base su scalari Simbolo Operazione Formato MATLAB ^ Elevazione a potenza: a b a^b * Moltiplicazione: a*b a*b / Divisione a destra o diretta: a/b = a:b a/b \ Divisione a sinistra o inversa: b \a = a:b b\a + Addizione: a+b a+b - Sottrazione: a-b a-b al MATLAB 6
Array Gestione sessione Scalari Uno dei principali punti di forza del MATLAB è la capacità di gestire grandi insiemi di numeri, denominati array, come se fossero una singola variabile. Principali classi di array: Array Relazioni e operatori logici Esempio 1 numeric single double int8, int16, int32 uint8, uint16, uint32 character logical true false al MATLAB 7
Array Gestione sessione Scalari Uno dei principali punti di forza del MATLAB è la capacità di gestire grandi insiemi di numeri, denominati array, come se fossero una singola variabile. Principali classi di array: Array Relazioni e operatori logici Esempio 1 numeric single double int8, int16, int32 uint8, uint16, uint32 character logical true false al MATLAB 7
Array Gestione sessione Scalari Uno dei principali punti di forza del MATLAB è la capacità di gestire grandi insiemi di numeri, denominati array, come se fossero una singola variabile. Principali classi di array: Array Relazioni e operatori logici Esempio 1 numeric single double int8, int16, int32 uint8, uint16, uint32 character logical true false al MATLAB 7
Array Gestione sessione Scalari Uno dei principali punti di forza del MATLAB è la capacità di gestire grandi insiemi di numeri, denominati array, come se fossero una singola variabile. Principali classi di array: Array Relazioni e operatori logici Esempio 1 numeric single double int8, int16, int32 uint8, uint16, uint32 character logical true false al MATLAB 7
Matrici Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Gli array bidimensionali sono detti matrici MATLAB tratta i vettori come casi particolari di matrici Gli indici di un array sono i numeri di riga e di colonna che identificano i vari elementi di un array. Operatore due punti (:) seleziona i singoli elementi, righe, colonne o sottoarray di array Comando v(:) Descrizione rappresenta tutte le componenti del vettore v v(2:5) rappresenta le componenti comprese tra la 2 e la 5 A(:,3) identifica tutti gli elementi nella terza colonna di A A(:,2:5) identifica tutti gli elementi dalla seconda alla quinta colonna di A A(1:3,2:5) identifica tutti gli elementi nelle righe dalla prima alla terza che si trovano dalla seconda alla quinta colonna di A al MATLAB 8
Matrici Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Gli array bidimensionali sono detti matrici MATLAB tratta i vettori come casi particolari di matrici Gli indici di un array sono i numeri di riga e di colonna che identificano i vari elementi di un array. Operatore due punti (:) seleziona i singoli elementi, righe, colonne o sottoarray di array Comando v(:) Descrizione rappresenta tutte le componenti del vettore v v(2:5) rappresenta le componenti comprese tra la 2 e la 5 A(:,3) identifica tutti gli elementi nella terza colonna di A A(:,2:5) identifica tutti gli elementi dalla seconda alla quinta colonna di A A(1:3,2:5) identifica tutti gli elementi nelle righe dalla prima alla terza che si trovano dalla seconda alla quinta colonna di A al MATLAB 8
Vettori Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Comando v = [1;2;3] w = [4,5,6] vt = v zeros(n,1) Descrizione vettore colonna vettore riga vettore trasposto di v vettore colonna nulla ones(n,1) vettore colonna con tutte le componenti pari a 1 dot(v,w) cross(v,w) norm(v) prodotto scalare v w prodotto vettoriale v w norma euclidea v : genera un vettore di elementi regolarmente intervallati linspace(a,b,n) logspace(a,b,n) crea vettore di n valori linearmente intervallati tra a e b crea vettore di n valori logaritmicamente intervallati tra a e b cat(n,a,b,c,...) Crea un nuovo vettore concatenando gli array A,B,C Calcola il numero degli elementi di v length(v) quiver(v) visualizzazione vettore in R 2 quiver3(v) visualizzazione vettore in R 3 al MATLAB 9
Operazioni con array Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Simbolo Operazione Forma Esempio + Somma array - scalare A + b [6,3]+2 = [8,5] - Sottrazione array - scalare A - b [6,3]-5 = [1,-2] - Somma di array A + B [6,3]+[4,5] = [10,8] - Sottrazione di array A - B [6,3]-[4,5] = [2,-2].* Moltiplicazione di array A.*B [3,5].*[4,8] = [12,40]./ Divisione diretta di array A./B [2,5]./[4,8] = [2/4,5/8].\ Divisione inversa di array A.\B [2,5].\[4,8] = [2\4,5\8].^ Elevazione a potenza di array A.^B [3,5]ˆ2 = [3.ˆ2,5.ˆ2] 2.ˆ[3,5] = [2.ˆ3,2.ˆ5] [3,5].ˆ[2,4] = [3.ˆ2,5.ˆ4] * Prodotto tra matrici A*B [3,5]*[4,8] = [36,60] al MATLAB 10
utili per array Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Comando Descrizione A = [] inizializzazione matrice vuota find(x) Genera un array che contiene gli indici degli elementi non nulli dell array x [u,v,w] = find(a) Crea gli array u e v che contengono gli indici delle righe e delle colonne degli elementi non nulli di A e l array w che contiene i valori degli elementi non nulli eye(m,n) genera una matrice rettangolare i cui elementi sono tutti nulli ad eccezione di quelli della diagonale principale che sono pari a 1 length(a) Calcola il valore massimo di m se n, se A è una matrice m n size(a) Restituisce un vettore riga [m,n] che contiene le dimensioni della matrice m n A sum(a) sort(a) Somma gli elementi di ognicolonna di A e restituisce un vettore riga che contiene le somme risultanti Dispone le colonne di A in ordine crescente e restituisce un array della stessa dimensione di A al MATLAB 11
Relazioni e operatori logici In MATLAB le relazioni vengono identificate nel modo seguente: Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Operatore Descrizione < strettamente minore minore o uguale > strettamente maggiore maggiore o uguale == uguale ~= non uguale In MATLAB gli operatori logici sono i seguenti: Operatore logico & e o ~ non Descrizione al MATLAB 12
Relazioni e operatori logici In MATLAB le relazioni vengono identificate nel modo seguente: Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Operatore Descrizione < strettamente minore minore o uguale > strettamente maggiore maggiore o uguale == uguale ~= non uguale In MATLAB gli operatori logici sono i seguenti: Operatore logico & e o ~ non Descrizione al MATLAB 12
Esempio: Algebra Lineare Gestione sessione Scalari Array Relazioni e operatori logici Esempio 1 Calcolare la norma del vettore v = [1,2,3] e visualizzarlo graficamente Creare la matrice A [4 2] le cui colonne sono i vettori w = [4;5;6;10] e u = [6;7;8;9] Determinare la matrice B ottenuta dalla matrice A sopprimendo la riga 4 Determinare la matrice C ottenuta dalla matrice B e dalla colonna v Fare il prodotto della matrice C per il vettore v e memorizzarlo nell array d Calcolare il determinante della matrice G e la sua inversa Gi G = 1 2 3 5 5 6 7 8 9 Creare la matrice identita di dimensione 4 al MATLAB 13
In MATLAB esistono moltissime funzioni intrinseche, ad esempiosin, cos, log, log10, exp, abs, asin, acos, tan, atan... Per conoscere l elenco completo delle funzioni matematiche elementari presenti, si digiti help matlab/elfun funzioni in linea: consente di convertire una stringa di caratteri in funzione f = inline( x.*cos(x)-2.*log(x) ) per creare un grafico della funzione in linea in un intervallo prescelto dall utente, si può utilizzare l istruzione ezplot(f,[0,4]) al MATLAB 14
In MATLAB esistono moltissime funzioni intrinseche, ad esempiosin, cos, log, log10, exp, abs, asin, acos, tan, atan... Per conoscere l elenco completo delle funzioni matematiche elementari presenti, si digiti help matlab/elfun funzioni in linea: consente di convertire una stringa di caratteri in funzione f = inline( x.*cos(x)-2.*log(x) ) per creare un grafico della funzione in linea in un intervallo prescelto dall utente, si può utilizzare l istruzione ezplot(f,[0,4]) al MATLAB 14
In MATLAB esistono moltissime funzioni intrinseche, ad esempiosin, cos, log, log10, exp, abs, asin, acos, tan, atan... Per conoscere l elenco completo delle funzioni matematiche elementari presenti, si digiti help matlab/elfun funzioni in linea: consente di convertire una stringa di caratteri in funzione f = inline( x.*cos(x)-2.*log(x) ) per creare un grafico della funzione in linea in un intervallo prescelto dall utente, si può utilizzare l istruzione ezplot(f,[0,4]) al MATLAB 14
In MATLAB esistono moltissime funzioni intrinseche, ad esempiosin, cos, log, log10, exp, abs, asin, acos, tan, atan... Per conoscere l elenco completo delle funzioni matematiche elementari presenti, si digiti help matlab/elfun funzioni in linea: consente di convertire una stringa di caratteri in funzione f = inline( x.*cos(x)-2.*log(x) ) per creare un grafico della funzione in linea in un intervallo prescelto dall utente, si può utilizzare l istruzione ezplot(f,[0,4]) al MATLAB 14
In MATLAB è possibile definire dellefunction che possono dipendere da una o più variabili di input e da una o più di output la function dovrà essere salvata con lo stesso nome con il quale sarà eseguito nella Command Window, ma con estensione.m Esempio: function y = funprova(x) %Esempio function y = x.*cos(x)-2.*log(x); al MATLAB 15
For While If - Else - End il ciclofor il ciclowhile la costruzioneif - else - then al MATLAB 16
Ciclo For For Lo schema è: for k = array end {comandi} While If - Else - End Esempio: Prodotto matrice vettore al MATLAB 17
Ciclo For For Lo schema è: for k = array end {comandi} While If - Else - End Esempio: Prodotto matrice vettore FORTRAN DO ii = 1,M DO kk = 1,P ENDDO ENDDO c(ii) = c(ii) + A(ii,kk) b(kk) al MATLAB 17
Ciclo For For Lo schema è: for k = array end {comandi} While If - Else - End Esempio: Prodotto matrice vettore FORTRAN DO ii = 1,M DO kk = 1,P ENDDO ENDDO c(ii) = c(ii) + A(ii,kk) b(kk) al MATLAB 17
Ciclo For For Lo schema è: for k = array end {comandi} While If - Else - End Esempio: Prodotto matrice vettore MATLAB FOR ii = 1:M FOR kk = 1:P END END c(ii) = c(ii) + A(ii,kk) b(kk) al MATLAB 17
Ciclo For For Lo schema è: for k = array end {comandi} While If - Else - End Esempio: Prodotto matrice vettore MATLAB c = A*b al MATLAB 17
Ciclo While Lo schema è: For While If - Else - End while {espressione logica} end {comandi} al MATLAB 18
Costrutto If - Else -End Lo schema è: For While if {espressione logica} {comandi} end If - Else - End al MATLAB 19
Costrutto If - Else -End Lo schema è: For While If - Else - End if {espressione logica1} {comandi} %eseguiti se l espressione logica1 è vera else {comandi} %eseguiti se l espressione logica1 è falsa end al MATLAB 19
Costrutto If - Else -End Lo schema è: For While If - Else - End if {espressione logica1} {comandi} %eseguiti se l espressione logica1 è vera elseif {espressione logica2} {comandi} %eseguiti se l espressione logica2 è vera elseif..... else {comandi} %eseguiti se tutte le espressioni logiche sono false end al MATLAB 19
Caratteristiche essenziali per rappresentare correttamente i dati in un diagramma: speciali Ogni asse deve avere un titolo (label) con il nome della quantità che rappresenta e della sua unità di misura Ogni asse dovrebbe avere dei segni di graduazione regolarmente distanziati, con una distanza facile da interpretare e interpolare Se il diagramma rappresenta più di un set di dati, assegnare un etichetta ad ogni curva o utilizzare una legenda Rappresentare i dati sperimentali con simboli (ad es. cerchio), se sono molti usare il punto (dot, non collegarli mediante linee) Non utilizzare simboli per rappresentare i dati generati dalle funzioni, piuttosto collegare i punti con linee continue Il diagramma più usato è quello bidimensionale o xy. Viene utilizzato per rappresentare funzioni del tipo y = f(x) al MATLAB 20
Caratteristiche essenziali per rappresentare correttamente i dati in un diagramma: speciali Ogni asse deve avere un titolo (label) con il nome della quantità che rappresenta e della sua unità di misura Ogni asse dovrebbe avere dei segni di graduazione regolarmente distanziati, con una distanza facile da interpretare e interpolare Se il diagramma rappresenta più di un set di dati, assegnare un etichetta ad ogni curva o utilizzare una legenda Rappresentare i dati sperimentali con simboli (ad es. cerchio), se sono molti usare il punto (dot, non collegarli mediante linee) Non utilizzare simboli per rappresentare i dati generati dalle funzioni, piuttosto collegare i punti con linee continue Il diagramma più usato è quello bidimensionale o xy. Viene utilizzato per rappresentare funzioni del tipo y = f(x) al MATLAB 20
Caratteristiche essenziali per rappresentare correttamente i dati in un diagramma: speciali Ogni asse deve avere un titolo (label) con il nome della quantità che rappresenta e della sua unità di misura Ogni asse dovrebbe avere dei segni di graduazione regolarmente distanziati, con una distanza facile da interpretare e interpolare Se il diagramma rappresenta più di un set di dati, assegnare un etichetta ad ogni curva o utilizzare una legenda Rappresentare i dati sperimentali con simboli (ad es. cerchio), se sono molti usare il punto (dot, non collegarli mediante linee) Non utilizzare simboli per rappresentare i dati generati dalle funzioni, piuttosto collegare i punti con linee continue Il diagramma più usato è quello bidimensionale o xy. Viene utilizzato per rappresentare funzioni del tipo y = f(x) al MATLAB 20
xy speciali Comando Descrizione axis[xmin xmax ymin ymax] fplot( stringa,[xmin xmax]) Crea un diagramma intelligente di una funzione grid plot(x,y) plot(y) print title( testo ) xlabel( testo ) ylabel( testo ) Imposta i minimi e i massimi degli assi x e y Visualizza le linee di una griglia in corrispondenza delle etichette dei segni di graduazione degli assi di un diagramma Crea il diagramma dell array y in funzione dell array x su assi lineari Crea il diagramma dei valori di y in funzione dei loro indici, se y è reale Stampa il diagamma che si trova nella finestra grafica Crea il titolo del diagramma Crea l etichetta dell asse x del diagramma Crea l etichetta dell asse y del diagramma al MATLAB 21
per migliorare i diagrammi speciali Comando Descrizione axes Crea degli assi arbitrari hold Sospende la creazione del diagramma corrente in attesa di altri comandi grafici legend( leg1, leg2 ) Crea un legenda utilizzando le stringhe leg1 e leg2 plot(x,y,u,v) Crea il diagramma di quattro array: y in funzione di x, e v in funzione di u plot(x,y, tipo ) Crea il diagramma dell array y in funzione dell array x utilizzando il simbolo, linea e colore specificato subplot(m,n,p) hold dalla stringa tipo Suddivide la finestra grafica in una serie di pannelli rettangolari disposti su m righe e n colonne e visualizza il diagramma successivo nel p-esimo pannello Sospende la creazione del diagramma corrente in attesa di altri comandi grafici al MATLAB 22
Esempi di xy (1) x = [0:0,1:1]; y = tan(x); z = sec(x); plot(x,y, r--,x,z, * ),... xlabel( x ),ylabel( Tangente e secante )... legend( tan(x), sec(x) ) speciali Tangente e secante 2 1.5 1 0.5 tan(x) sec(x) 0 0 0.2 0.4 0.6 0.8 1 x Per i dettagli in merito a marcatori, tipi di linea, colori di MATLAB, digitare markers nell help al MATLAB 23
Esempi di xy (1) x = [0:0,1:1]; y = tan(x); z = sec(x); plot(x,y, r--,x,z, * ),... xlabel( x ),ylabel( Tangente e secante )... legend( tan(x), sec(x) ) speciali Tangente e secante 2 1.5 1 0.5 tan(x) sec(x) 0 0 0.2 0.4 0.6 0.8 1 x Per i dettagli in merito a marcatori, tipi di linea, colori di MATLAB, digitare markers nell help al MATLAB 23
Esempi di xy (2) speciali x = [0:0,1:1]; y = tan(x); z = sec(x); subplot(1,2,1) plot(x,y, r-- ),... xlabel( x ),ylabel( Tangente )... legend( tan(x) ) subplot(1,2,2) plot(x,z, * ),... xlabel( x ),ylabel( Secante )... legend( sec(x) ) 1.6 1.4 1.2 tan(x) 2 1.8 sec(x) Tangente 1 0.8 0.6 Secante 1.6 1.4 0.4 0.2 1.2 0 0 0.5 1 x 1 0 0.5 1 x al MATLAB 24
Esempi di xy (2) speciali x = [0:0,1:1]; y = tan(x); z = sec(x); subplot(1,2,1) plot(x,y, r-- ),... xlabel( x ),ylabel( Tangente )... legend( tan(x) ) subplot(1,2,2) plot(x,z, * ),... xlabel( x ),ylabel( Secante )... legend( sec(x) ) 1.6 1.4 1.2 tan(x) 2 1.8 sec(x) Tangente 1 0.8 0.6 Secante 1.6 1.4 0.4 0.2 1.2 0 0 0.5 1 x 1 0 0.5 1 x al MATLAB 24
speciali speciali Comando Descrizione bar(x,y) Crea un diagramma a barre di y in funzione di x loglog(x,y) Crea un diagramma logaritmico di y in funzione di x plotyy(x1,y1,x2,y2) Crea un diagramma con due assi y: y1 a sinistra e y2 a destra semilogx(x,y) Crea un diagramma semilogaritmico di y in funzione semilogy(x,y) di x, con l asse x in scala logaritmica Crea un diagramma semilogaritmico di y in funzione di x, con l asse y in scala logaritmica al MATLAB 25
In MATLAB è possibile scrivere dei programmi veri e propri in cui poter dare dei dati in input e ottenere dei risultati, scrivendo tutto l algoritmo in un file il file sarà salvato con lo stesso nome con il quale sarà eseguito nella Command Window, ma con estensione.m Esempio: scrivo un programma denominatoesempio.m eseguo il programma dalla Command Window scrivendo il comando esempio Attenzione: il programma deve trovarsi nella stessa directory nella quale stiamo lavorando. al MATLAB 26
Dati gli array di dati sperimentali di dimensione N+1: x = [720;750;800;520;1000;180] y = [0.0020;0.0045;0.0060;0.0013;0.0085;0.0050] calcolare i coefficienti di un polinomio P(x) di grado N che interpola i dati in modo che P(x(i)) y(i) calcolare il valore assunto dal polinomio interpolatore nel punto x = 735 Costruire la retta di approssimazione ottenuta minimizzando l errore relativo agli scarti verticali calcolare il valore assunto dalla retta nel punto x = 735 Disegnare nello stesso grafico: i punti sperimentali il polinomio interpolatore di grado N la retta di approssimazione ottenuta minimizzando l errore relativo agli scarti verticali Suggerimento: si consulti l help di MATLAB e si cerchino le funzioni polyval e polyfit. al MATLAB 27
0.12 0.1 0.08 dati sperimentali polinomio 5 grado retta 0.06 0.04 0.02 0 0.02 0 200 400 600 800 1000 al MATLAB 28
: W. J.Palm III, MATLAB 7 per l ingegneria e le scienze McGraw-Hill G. Zilli, A. Mazzia Calcolo Numerico. Lezioni ed esercizi. (2009) Edizioni Libreria Progetto. Siti web: www.mathworks.it www.gnu.org/software/octave/ al MATLAB 29
: W. J.Palm III, MATLAB 7 per l ingegneria e le scienze McGraw-Hill G. Zilli, A. Mazzia Calcolo Numerico. Lezioni ed esercizi. (2009) Edizioni Libreria Progetto. Siti web: www.mathworks.it www.gnu.org/software/octave/ al MATLAB 29