55
Introduzione al MATLAB – 1 Introduzione al MATLAB Francesca Zanello Padova, 27 Aprile 2009

Introduzione al MATLABdispense.dmsa.unipd.it/ferronato/CN-IEN/2009/intro...Introduzione Outline Introduzione Avviare MATLAB Comandi Funzioni in linea Cicli di controllo Diagrammi Gli

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

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/