Upload
others
View
13
Download
0
Embed Size (px)
Introduzione al MATLAB – 1
Introduzione al MATLAB
Francesca Zanello
Padova, 27 Aprile 2009
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Outline
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 2
� Introduzione
� Comandi base
� Esempio: Algebra lineare
� Cicli di controllo
� Diagrammi
� Gli script .m
� File input/output
� Esempio: interpolazione in MATLAB
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Introduzione
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 3
1. MATLAB e un ambiente integrato per il Calcolo Scientifico e la
visualizzazione grafica scritto in inguaggio C e C++
2. MATLAB e distribuito da The MathWorks Inc (www.mathworks.com)
3. MATLAB sta per MATrix LABoratory in quanto fu originariamente sviluppatoper consentire un accesso immediato a pacchetti software per il calcolomatriciale
4. MATLAB e un linguaggio interpretato:
� richiede un numero maggiore di operazioni macchina rispetto ad unlinguaggio compilato
� non va linkato alle subroutine di libreria� include numerose funzioni gia ottimizzate dal punto di vista
dell’efficienza computazionale� e 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)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Avviare MATLAB
Outline
Introduzione
Avviare MATLAB
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 4
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.
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Gestione sessione di lavoro
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 5
� Nomi delle variabili:
� devono iniziare con una lettera
� non possono essere piu lunghi di 32 caratteri
� MATLAB e case sensitive
� Comandi per gestire una sessione di lavoro con MATLAB
Comando Descrizionehelp Help di MATLABquit Chiude MATLABclc Cancella il contenuto della finestra dei comandiclear Elimina tutte le variabili in memoriaclear var1 var2 Elimina le variabili var1 e var2 dalla memoriaexist (’nome’) Determina se un file o una variabile
hanno il ’nome’ specificatowho Elenca le variabili che si trovano correntemente in memoriawhos 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
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Gestione sessione di lavoro
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 5
� Nomi delle variabili:
� devono iniziare con una lettera
� non possono essere piu lunghi di 32 caratteri
� MATLAB e case sensitive
� Comandi per gestire una sessione di lavoro con MATLAB
Comando Descrizionehelp Help di MATLABquit Chiude MATLABclc Cancella il contenuto della finestra dei comandiclear Elimina tutte le variabili in memoriaclear var1 var2 Elimina le variabili var1 e var2 dalla memoriaexist (’nome’) Determina se un file o una variabile
hanno il ’nome’ specificatowho Elenca le variabili che si trovano correntemente in memoriawhos 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
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Scalari
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 6
� Costanti predefinite
Nome Descrizioneans variabile temporanea che contiene il risultato piu recenteeps Specifica la precisione dei numeri decimaliInf Infinito (∞)NaN Risultato numerico indefinitopi Numero π = 1.314159 . . .
i,j unita immaginaria i = j =√−1
� Comandi base su scalari
Simbolo Operazione Formato MATLAB^ Elevazione a potenza: ab 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
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Scalari
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 6
� Costanti predefinite
Nome Descrizioneans variabile temporanea che contiene il risultato piu recenteeps Specifica la precisione dei numeri decimaliInf Infinito (∞)NaN Risultato numerico indefinitopi Numero π = 1.314159 . . .
i,j unita immaginaria i = j =√−1
� Comandi base su scalari
Simbolo Operazione Formato MATLAB^ Elevazione a potenza: ab 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
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 7
� Uno dei principali punti di forza del MATLAB e la capacita di gestire
grandi insiemi di numeri, denominati array, come se fossero una
singola variabile.
� Principali classi di array:
� numeric
� single
� double
� int8, int16, int32
� uint8, uint16, uint32
� character
� logical
� true
� false
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 7
� Uno dei principali punti di forza del MATLAB e la capacita di gestire
grandi insiemi di numeri, denominati array, come se fossero una
singola variabile.
� Principali classi di array:
� numeric
� single
� double
� int8, int16, int32
� uint8, uint16, uint32
� character
� logical
� true
� false
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 7
� Uno dei principali punti di forza del MATLAB e la capacita di gestire
grandi insiemi di numeri, denominati array, come se fossero una
singola variabile.
� Principali classi di array:
� numeric
� single
� double
� int8, int16, int32
� uint8, uint16, uint32
� character
� logical
� true
� false
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 7
� Uno dei principali punti di forza del MATLAB e la capacita di gestire
grandi insiemi di numeri, denominati array, come se fossero una
singola variabile.
� Principali classi di array:
� numeric
� single
� double
� int8, int16, int32
� uint8, uint16, uint32
� character
� logical
� true
� false
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Matrici
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 8
� 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 Descrizionev(:) rappresenta tutte le componenti del vettore vv(2:5) rappresenta le componenti comprese tra la 2 e la 5A(:,3) identifica tutti gli elementi nella terza colonna di AA(:,2:5) identifica tutti gli elementi dalla seconda alla
quinta colonna di AA(1:3,2:5) identifica tutti gli elementi nelle righe dalla prima
alla terza che si trovano dalla seconda alla quinta colonna di A
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Matrici
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 8
� 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 Descrizionev(:) rappresenta tutte le componenti del vettore vv(2:5) rappresenta le componenti comprese tra la 2 e la 5A(:,3) identifica tutti gli elementi nella terza colonna di AA(:,2:5) identifica tutti gli elementi dalla seconda alla
quinta colonna di AA(1:3,2:5) identifica tutti gli elementi nelle righe dalla prima
alla terza che si trovano dalla seconda alla quinta colonna di A
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Vettori
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 9
Comando Descrizionev = [1;2;3] vettore colonnaw = [4,5,6] vettore rigavT = v’ vettore trasposto di vzeros(n,1) vettore colonna nullaones(n,1) vettore colonna con tutte le componenti pari a 1dot(v,w) prodotto scalare v · wcross(v,w) prodotto vettoriale v × w
norm(v) norma euclidea ‖ v ‖: genera un vettore di elementi regolarmente intervallatilinspace(a,b,n) crea vettore di n valori linearmente intervallati tra a e b
logspace(a,b,n) 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,Clength(v) Calcola il numero degli elementi di vquiver(v) visualizzazione vettore in R2
quiver3(v) visualizzazione vettore in R3
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Operazioni con array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 10
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]
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Comandi utili per array
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 11
Comando DescrizioneA = [] inizializzazione matrice vuotafind(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 Ae l’array w che contiene i valori degli elementi non nulli
eye(m,n) genera una matrice rettangolare i cui elementi sono tuttinulli ad eccezione di quelli della diagonale principaleche sono pari a 1
length(A) Calcola il valore massimo di m se n,se A e una matrice m × n
size(A) Restituisce un vettore riga [m,n] che contiene ledimensioni della matrice m × n A
sum(A) Somma gli elementi di ognicolonna di A e restituisce unvettore riga che contiene le somme risultanti
sort(A) Dispone le colonne di A in ordine crescente e restituisceun array della stessa dimensione di A
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Relazioni e operatori logici
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 12
� In MATLAB le relazioni vengono identificate nel modo seguente:
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 Descrizione& e| o~ non
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Relazioni e operatori logici
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 12
� In MATLAB le relazioni vengono identificate nel modo seguente:
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 Descrizione& e| o~ non
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempio: Algebra Lineare
Outline
Introduzione
Comandi
Gestione sessione
Scalari
Array
Relazioni e operatorilogici
Esempio 1
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 13
� Calcolare la norma del vettore v = [1,2,3] e visualizzarlo grafica-
mente
� 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 35 5 67 8 9
� Creare la matrice identita’ di dimensione 4
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Funzioni in linea
Outline
Introduzione
Comandi
Funzioni in linea
Funzioni in linea
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 14
� In MATLAB esistono moltissime funzioni intrinseche, ad esempio sin,
cos, log, log10, exp, abs, asin, acos, tan, atan...
� Per conoscere l’elenco completo delle funzioni matematiche
elementari presenti in MATLAB, 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 puo utilizzare l’istruzione
ezplot(f,[0,4])
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Funzioni in linea
Outline
Introduzione
Comandi
Funzioni in linea
Funzioni in linea
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 14
� In MATLAB esistono moltissime funzioni intrinseche, ad esempio sin,
cos, log, log10, exp, abs, asin, acos, tan, atan...
� Per conoscere l’elenco completo delle funzioni matematiche
elementari presenti in MATLAB, 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 puo utilizzare l’istruzione
ezplot(f,[0,4])
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Funzioni in linea
Outline
Introduzione
Comandi
Funzioni in linea
Funzioni in linea
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 14
� In MATLAB esistono moltissime funzioni intrinseche, ad esempio sin,
cos, log, log10, exp, abs, asin, acos, tan, atan...
� Per conoscere l’elenco completo delle funzioni matematiche
elementari presenti in MATLAB, 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 puo utilizzare l’istruzione
ezplot(f,[0,4])
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Funzioni in linea
Outline
Introduzione
Comandi
Funzioni in linea
Funzioni in linea
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 14
� In MATLAB esistono moltissime funzioni intrinseche, ad esempio sin,
cos, log, log10, exp, abs, asin, acos, tan, atan...
� Per conoscere l’elenco completo delle funzioni matematiche
elementari presenti in MATLAB, 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 puo utilizzare l’istruzione
ezplot(f,[0,4])
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Funzioni in linea
Outline
Introduzione
Comandi
Funzioni in linea
Funzioni in linea
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 15
� In MATLAB e possibile definire delle function che possono
dipendere da una o piu variabili di input e da una o piu di output
� la function dovra essere salvata con lo stesso nome con il quale sara
eseguito nella Command Window, ma con estensione .m
Esempio:
≫ function y = funprova(x)
≫ %Esempio function in MATLAB
≫ y = x.*cos(x)-2.*log(x);
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Cicli di controllo
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 16
� il ciclo for
� il ciclo while
� la costruzione if - else - then
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo For
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 17
� Lo schema e:
� for k = array
� {comandi}� end
� Esempio: Prodotto matrice vettore
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo For
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 17
� Lo schema e:
� for k = array
� {comandi}� end
� Esempio: Prodotto matrice vettore
FORTRAN
� DO ii = 1,M
� DO kk = 1,P
� c(ii) = c(ii) + A(ii,kk)∗b(kk)
� ENDDO
� ENDDO
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo For
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 17
� Lo schema e:
� for k = array
� {comandi}� end
� Esempio: Prodotto matrice vettore
FORTRAN
� DO ii = 1,M
� DO kk = 1,P
� c(ii) = c(ii) + A(ii,kk)∗b(kk)
� ENDDO
� ENDDO
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo For
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 17
� Lo schema e:
� for k = array
� {comandi}� end
� Esempio: Prodotto matrice vettore
MATLAB
� FOR ii = 1:M
� FOR kk = 1:P
� c(ii) = c(ii) + A(ii,kk)∗b(kk)
� END
� END
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo For
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 17
� Lo schema e:
� for k = array
� {comandi}� end
� Esempio: Prodotto matrice vettore
MATLAB
c = A*b
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Ciclo While
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 18
� Lo schema e:
� while {espressione logica}� {comandi}
� end
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Costrutto If - Else -End
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 19
� Lo schema e:
� if {espressione logica}� {comandi}
� end
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Costrutto If - Else -End
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 19
� Lo schema e:
� if {espressione logica1}� {comandi} %eseguiti se l’espressione logica1 e vera
� else
� {comandi} %eseguiti se l’espressione logica1 e falsa
� end
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Costrutto If - Else -End
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
For
While
If - Else - End
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 19
� Lo schema e:
� if {espressione logica1}� {comandi} %eseguiti se l’espressione logica1 e vera
� elseif {espressione logica2}� {comandi} %eseguiti se l’espressione logica2 e vera
� elseif . . .
�
...
� else
� {comandi} %eseguiti se tutte le espressioni logiche
sono false
� end
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Diagrammi
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 20
Caratteristiche essenziali per rappresentare correttamente i dati in un
diagramma:
� Ogni asse deve avere un titolo (label) con il nome della quantita che
rappresenta e della sua unita di misura
� Ogni asse dovrebbe avere dei segni di graduazione regolarmente
distanziati, con una distanza facile da interpretare e interpolare
� Se il diagramma rappresenta piu 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 piu usato e quello bidimensionale o xy.
� Viene utilizzato per rappresentare funzioni del tipo
y = f(x)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Diagrammi
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 20
Caratteristiche essenziali per rappresentare correttamente i dati in un
diagramma:
� Ogni asse deve avere un titolo (label) con il nome della quantita che
rappresenta e della sua unita di misura
� Ogni asse dovrebbe avere dei segni di graduazione regolarmente
distanziati, con una distanza facile da interpretare e interpolare
� Se il diagramma rappresenta piu 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 piu usato e quello bidimensionale o xy.
� Viene utilizzato per rappresentare funzioni del tipo
y = f(x)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Diagrammi
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 20
Caratteristiche essenziali per rappresentare correttamente i dati in un
diagramma:
� Ogni asse deve avere un titolo (label) con il nome della quantita che
rappresenta e della sua unita di misura
� Ogni asse dovrebbe avere dei segni di graduazione regolarmente
distanziati, con una distanza facile da interpretare e interpolare
� Se il diagramma rappresenta piu 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 piu usato e quello bidimensionale o xy.
� Viene utilizzato per rappresentare funzioni del tipo
y = f(x)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Diagrammi xy
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 21
Comando Descrizione
axis[xmin xmax ymin ymax] Imposta i minimi e i massimi degli assi x e yfplot(’stringa’,[xmin xmax]) Crea un diagramma intelligente di una
funzionegrid Visualizza le linee di una griglia in
corrispondenza delle etichette dei segni digraduazione degli assi di un diagramma
plot(x,y) Crea il diagramma dell’array y in funzionedell’array x su assi lineari
plot(y) Crea il diagramma dei valori di y in funzionedei loro indici, se y e reale
print Stampa il diagamma che si trova nellafinestra grafica
title(’testo’) Crea il titolo del diagrammaxlabel(’testo’) Crea l’etichetta dell’asse x del diagrammaylabel(’testo’) Crea l’etichetta dell’asse y del diagramma
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Comandi per migliorare i diagrammi
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 22
Comando Descrizione
axes Crea degli assi arbitrarihold Sospende la creazione del diagramma corrente in
attesa di altri comandi graficilegend(’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 uplot(x,y,’tipo’) Crea il diagramma dell’array y in funzione dell’array
x utilizzando il simbolo, linea e colore specificatodalla stringa tipo
subplot(m,n,p) Suddivide la finestra grafica in una serie di pannellirettangolari disposti su m righe e n colonne evisualizza il diagramma successivo nel p-esimo pannello
hold Sospende la creazione del diagramma corrente inattesa di altri comandi grafici
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempi di Diagrammi xy (1)
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 23
≫ 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)’)
0 0.2 0.4 0.6 0.8 10
0.5
1
1.5
2
x
Tan
gent
e e
seca
nte
tan(x)sec(x)
Per i dettagli in merito a marcatori, tipi di linea, colori di MATLAB, digitare
markers nell’help
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempi di Diagrammi xy (1)
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 23
≫ 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)’)
0 0.2 0.4 0.6 0.8 10
0.5
1
1.5
2
x
Tan
gent
e e
seca
nte
tan(x)sec(x)
Per i dettagli in merito a marcatori, tipi di linea, colori di MATLAB, digitare
markers nell’help
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempi di Diagrammi xy (2)
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 24
≫ 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)’)
0 0.5 10
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
x
Tan
gent
e
tan(x)
0 0.5 11
1.2
1.4
1.6
1.8
2
x
Sec
ante
sec(x)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempi di Diagrammi xy (2)
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 24
≫ 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)’)
0 0.5 10
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
x
Tan
gent
e
tan(x)
0 0.5 11
1.2
1.4
1.6
1.8
2
x
Sec
ante
sec(x)
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Diagrammi speciali
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Comandi
Diagrammi speciali
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 25
Comando Descrizione
bar(x,y) Crea un diagramma a barre di y in funzione di xloglog(x,y) Crea un diagramma logaritmico di y in funzione di xplotyy(x1,y1,x2,y2) Crea un diagramma con due assi y:y1 a sinistra
e y2 a destrasemilogx(x,y) Crea un diagramma semilogaritmico di y in funzione
di x, con l’asse x in scala logaritmicasemilogy(x,y) Crea un diagramma semilogaritmico di y in funzione
di x, con l’asse y in scala logaritmica
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Gli script .m
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 26
� In MATLAB e 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 sara salvato con lo stesso nome con il quale sara eseguito nella
Command Window, ma con estensione .m
Esempio:
� scrivo un programma denominato esempio.m
� eseguo il programma dalla Command Window scrivendo il comando
≫ esempio
� Attenzione: il programma deve trovarsi nella stessa directory nella
quale stiamo lavorando in MATLAB.
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempio: interpolazione in MATLAB
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 27
� 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 cheP(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 scartiverticali
� 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 epolyfit.
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Esempio: interpolazione in MATLAB
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 28
0 200 400 600 800 1000−0.02
0
0.02
0.04
0.06
0.08
0.1
0.12dati sperimentalipolinomio 5° gradoretta
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Testi consigliati
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 29
Testi consigliati:
� 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/
Universita degli Studi di Padova - Corso di calcolo numerico - A.A. 2008-2009
Testi consigliati
Outline
Introduzione
Comandi
Funzioni in linea
Cicli di controllo
Diagrammi
Gli script .m
Esempio: interpolazionein MATLAB
Testi consigliati
Introduzione al MATLAB – 29
Testi consigliati:
� 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/