Introduzione a
MATLAB
Stefano Vigogna
Dipartimento di Matematica
[email protected]
http://www.dima.unige.it/~vigogna/
Lezione 1
•
•
•
•
Cos’è MATLAB
Primo utilizzo
Vettori e matrici
Esercizi
Cos’è MATLAB
MATLAB sta per Matrix Laboratory.
È un ambiente informatico che integra
diverse funzionalità:
•
•
•
•
•
Calcolo
Sviluppo
Grafica
Analisi dati
Simulazione
Alcune potenzialità di
MATLAB
• Calcoli matriciali e operazioni su
matrici
• Risoluzione di sistemi lineari
• Calcolo di autovalori e autovettori
• Grafici 2D e 3D
• Programmazione
Primo utilizzo
command window
workspace
current directory
history
Diary e commenti
>> diary lezione1
crea nella directory corrente un file di
testo lezione1 che registra l’intera
sessione.
Per inserire titoli o commenti:
>> % <commento>
Ad esempio: >> % lezione 1
Alla fine della lezione,
>> diary off
Per riaprire il diary: >> diary on
Calcolatrice
In MATLAB sono definite le operazioni
elementari: + - * / ^.
Il risultato viene salvato nella variabile
ans.
È possibile definire e ridefinire una
variabile. Ad esempio,
>> x = 0
>> x = x + 1
Alcuni utili comandi
>> clear x
cancella la variabile x.
>> clear
cancella tutte le variabili.
>> clc
ripulisce la finestra dei comandi.
Con le frecce
è possibile richiamare
comandi precedenti della storia.
Premere Esc per cancellare la riga.
Formati numerici (1)
Es: >> 123.45678
>> format short
virgola fissa 5 cifre. Es: 123.4568
>> format short e
virgola mobile 5 cifre. Es: 1.2346e+02
>> format short g
MATLAB sceglie la rappresentazione
migliore a 5 cifre. Es: 123.46
Formati numerici (2)
>> format long
virgola fissa 15 cifre. Es:
1.234567800000000e+02
>> format long e
virgola mobile 15 cifre. Es:
1.234567800000000e+02
>> format long g
Rappresentazione migliore a 15 cifre.
Es: 123.45678
Formati numerici (3)
>> format bank
fissa dollari e centesimi. Es: 123.46
>> format rat
notazione frazionaria (rapporto fra interi
eventualmente approssimante). Es:
10000/81
NB: format determina solo la modalità di
stampa, non la precisione di calcolo.
Costanti
pi : pi greca
i, j : unità immaginaria
eps : precisione di macchina
realmax, realmin : massimo e minimo
numero rappresentabile (realmax * 2
= inf)
• inf : numero maggiore di realmax
• NaN (Not a Number): forma
indeterminata (0/0, inf/inf, 0*inf, …)
•
•
•
•
Funzioni
In MATLAB sono definite (quasi) tutte le
funzioni matematiche: sqrt, exp, log,
sin, cos …
Per una lista di tutte le funzioni
elementari, ordinate per categoria:
>> help elfun
Per ciascuna funzione,
>> help <funzione>
Help
Il comando help è molto utile per
ottenere informazioni su funzioni,
operatori, caratteri, sintassi,
comandi…
>> help <comando>
Es: >> help format
… compreso se stesso:
>> help help
Vettori e matrici
In MATLAB tutte le variabili sono trattate
come matrici:
• scalari : matrici 1 x 1
• vettori riga : matrici 1 x n
• vettori colonna : matrici n x 1
• matrici : matrici m x n
Vettori
• vettore riga:
>> v = [1 2 3 4 5]
oppure
>> v = [1,2,3,4,5]
• vettore colonna:
>> v = [1; 2; 3; 4; 5] oppure
>> v = [1 2 3 4 5]’
; cambia riga, ’ traspone.
Alcune funzioni sui vettori
>> max(v)
restituisce la
>> min(v)
restituisce la
>> sum(v)
restituisce la
>> lenght(v)
restituisce la
massima entrata di v.
minima entrata di v.
somma delle entrate di v.
lunghezza di v.
Vettori progressivi
Vettore progressione aritmetica di
valore iniziale a, valore finale b e
passo p (anche negativo):
>> x = a:p:b
Se il passo è 1, si può omettere. Es:
>> x = 1:10
x = 1 2 3 4 5 6 7 8 9 10
NB: L’operatore : è molto importante.
Matrici
Per definire una matrice, ad esempio
 3 0 3

A  
1 2 0 
>> A = [ 3 0 3 ; 1 2 0 ]
>> A = [ 3 0 3
1 0 2]
oppure
Alcune funzioni sulle matrici
Le funzioni max e min operano anche
sulle matrici con lo stesso significato.
>> sum(A)
restituisce un vettore riga le cui entrate
sono le somme delle entrate di
ciascuna colonna di A.
>> size(A)
restituisce un bivettore con le
dimensioni di A.
>> length(A)
Restituisce la dimensione massima di A.
Esercizio 1
Costruire un vettore v composto da 40
elementi in modo che:
• i primi 20 elementi siano 1,2,…,20
• gli ultimi 20,19,…,1
Note
>> <comando> ;
Matlab esegue il comando senza
stampare il risultato.
Per spezzare un comando su più righe:
>> <inizio comando> …
<fine comando>
Per terminare forzatamente un comando
in esecuzione, digitare ctrl c.
Entrate delle matrici
>> v(i)
seleziona l’i-esima entrata del vettore v.
>> v(end)
seleziona l’ultima entrata di v.
>> A(i,j)
seleziona l’entrata (i,j) della matrice A.
>> A(i,j) = <valore>
ridefinisce il valore dell’entrata.
Entrate inesistenti (1)
Se si cerca di usare un’entrata
inesistente, i.e. di riga o colonna
troppo grande, Matlab stampa un
messaggio di errore.
Es: >> A = [1 2 ; 3 4] ;
>> A(1,3)  errore
Entrate inesistenti (2)
È però possibile definire entrate
inesistenti: Matlab definirà
automaticamente le entrate mancanti,
ponendole uguali a 0.
Es: >> A(1,3) = 5
>> A = 1 2 5
3 4 0
Concatenazione di matrici
>> A = [v w]
crea la matrice le cui colonne sono i
vettori colonna v e w, nell’ordine.
>> A = [v ; w]
crea la matrice le cui righe sono i vettori
riga v e w.
>> A = [B C ; D E]
crea la matrice di blocchi B C D E, nella
posizione indicata.
NB: attenzione alla consistenza delle
dimensioni! Altrimenti errore…
Estrazione di matrici (1)
>>> A(i,:)
estrae l’i-esima riga della matrice A.
> A(:,j)
estrae la j-esima colonna di A.
>> A([p,q,<…>],[r,s,<…>])
estrae la sottomatrice di A costituita
dalle righe p,q,… e dalle colonne r,s,…
Estrazione di matrici (2)
>> diag(A)
estrae la diagonale di A in un vettore
colonna.
>> diag(v)
crea la matrice diagonale con diagonale
il vettore v.
>> triu(A) e >> tril(A)
estraggono rispettivamente la matrice
triangolare superiore (up) e inferiore
(low).
Matrici notevoli
• identità n x n : >> eye(n)
(in inglese, la lettera “I” e la parola
“eye” si pronunciano entrambe/aɪ/)
• matrice nulla m x n : >> zeros(m,n)
• matrice m x n tutti 1 : >> ones(m,n)
• quadrato magico n x n : >> magic(n)
Per un elenco di tutte le matrici
elementari: >> help elmat
Esercizio 2
Verificare che nella matrice magic(4)
ciascuna riga e colonna, nonché la
diagonale, ha somma uguale.
Esercizio 3
a) Costruire una matrice A 3 x 7 tale
che:
– prima riga = 7,6,…,1
– seconda riga = 1,1,…,1
– terza riga = 0,0,…,0
b) Estrarre due sottomatrici di A:
– una costituita dalle ultime 3 colonne
– una costituita dagli elementi della riga
1 e 3, colonna 2 e 4.
Fine
Ricordo: >> diary off
per chiudere il diary.
La tastiera è spesso preferibile al
mouse. Per terminare il programma:
>> quit
Scarica

Prima esercitazione