Professional Documents
Culture Documents
Definizioni e Propriet
Alcune figure di questi appunti riportano nei commenti esempi in linguaggio MATLAB.
In tali esempi i caratteri di peso normale sono prodotti dal computer mentre i caratteri in grassetto sono
battuti dalloperatore.
I caratteri >> sono il prompt del sistema, ossia indicano che MATLAB in attesa di istruzioni. Ad
esempio la sequenza seguente:
>> whos
significa che MATLAB attendeva ordini e che loperatore ha battuto il comando whos.
__________________________________________________________________________________
MATLAB (MATrix LABoratory) un sistema interattivo basato sul calcolo matriciale per uso scientifico e
tecnico. Oltre al trattamento di matrici in grado di trattare polinomiali, equazioni differenziali e altre
applicazioni. Funzionalit aggiuntive sono rese possibili mediante linstallazione di toolbox addizionali.
La Homepage di MATLAB http://www.mathworks.com/
Un sistema simile a MATLAB, di tipo Open Source (ossia gratuito), Scilab (http://www.scilab.org/).
La sintassi di Scilab molto simile a quella di MATLAB. In particolare, negli esempi che seguono i
comandi da dare sono identici, tranne dove esplicitamente dichiarato.
L output di Scilab leggermente diverso.
Il prompt di Sscilab -->.
A =
a 11
.
a 12
.
.
a ik
.
.
a 1n
.
am1
am 2
a mn
i = 1,..., m
k = 1,..., n
2
In MATLAB una matrice pu essere costruita indicando tutti i suoi elementi, riga per riga,
come nellesempio seguente:
>> B=[1 2 1 -4; 0 3 -2 -1; 5 -1 0 -3]
B=
1
-4
-2
-1
-1
-3
>>
Si noti che gli elementi allinterno di una riga sono separati da spazi, mentre una riga
separata dalla successiva dal carattere ;.
Paaina 2
2
0
4
1
3
B una matrice 3
34
b21=0
-2
-1
-6
Paaina 3
Matrice trasposta
B=
2
0
4
1
3
1
0
5
2 3 1
B = 1 2 0
4 1 3
-1
-2
-4
-1
-3
>> (B')'
ans =
1
-4
-2
-1
-1
-3
>>
Paaina 4
5
6
8
7
0
P11=
11 9
P21=
1 2
3 2
2
4
3 0
3
4
P12=
P22=
0
0
6
4
6
7
0
8
4
6
P11 P12
P21 P22
1 2
3
2
3
3
6
5
In MATLAB possibile costruire una matrice utilizzando dei blocchi invece che singoli
elementi.
Ad esempio la matrice della figura pu essere ottenuta con la seguente sequenza di
comandi:
>> P11=[1 3 5;2 4 6;11 -9 8];
>> P12=[-1 -2 0 7;3 2 0 0;2 4 6 8];
>> P21=[1 6 7;0 0 0];
>> P22=[-3 0 4 4;3 4 6 6];
>> A=[P11 P12;P21 P22]
A=
1 3 5 -1 -2 0 7
2 4 6 3 2 0 0
11 -9 8 2 4 6 8
1 6 7 -3 0 4 4
0 0 0 3 4 6 6
>>
Mentre una sottomatrice ottenuta col comando
matrice(riga iniziale:riga finale, colonna iniziale:colonna finale). Esempio:
>> P12=A(1:2,4:7)
P12 =
-1 -2 0 7
3 2 0 0
2 4 6 8
>>
Elementi di Calcolo Matriciale
Paaina 5
Matrici quadrate
Matrici quadrate
Diagonale principale
3 2
A = 1 7 5
0 4 6
1
A una matrice 3
3,
quindi quadrata di ordine 3.
Diagonale principale
a11 = 1
a22 = 7
a33 = -6
-2
-1
-6
>> diag(X)
ans =
1
7
-6
Paaina 7
Matrici quadrate
Matrice triangolare
B=
1
0
6
2 5
0
2 3
0 3
B quadrata di ordine 4
Tutti gli elementi sotto la
diagonale sono = 0
B
TRIANGOLARE
SUPERIORE
Se pensiamo di annerire tutte le posizioni che possono contenere un valore diverso da zero
e lasciamo bianche quelle che di certo contengono zero, disegniamo un triangolo che sta
sopra la diagonale principale.
In MATLAB il comando triu(X), se X una matrice quadrata, estrae da essa la triangolare
superiore.
Esempio:
X=
-1
-6
-2
-2
12
-3
>> B=triu(X)
B=
-1
-6
-2
-2
>>
Paaina 8
Matrici quadrate
C=
1
3
12
2
9
C
TRIANGOLARE
INFERIORE
-6
-2
-2
12
-3
>> C=tril(X)
C=
-1
-2
12
-3
>>
Paaina 9
Matrici quadrate
Matrice simmetrica
1
12
12
La matrice
SIMMETRICA
Paaina 10
Matrici quadrate
Matrice diagonale
1
0
2
0
La matrice detta
DIAGONALE
La matrice diagonale
triangolare superiore...
e triangolare inferiore
-4
-2
>>
Paaina 11
Matrici quadrate
Matrice nulla
0 0
0 0
0
0
0
0
0
0
0
0
0
0
0
0
12
>>
=== Scilab ======================
in Scilab occorre indicare entrambe le dimensioni della matrice, quindi:
-->zeros(4,4)
ans =
! 0.
0.
0.
0. !
! 0.
0.
0.
0. !
! 0.
0.
0.
0. !
! 0.
0.
0.
0. !
-->
Paaina 12
Matrici quadrate
Matrice unitaria
1 0 0
I= 0 1 0
0 0 1
13
>>
=== Scilab ======================
in Scilab occorre indicare entrambe le dimensioni della matrice, quindi:
-->eye(3,3)
ans =
! 1.
0.
0.
0. !
! 0.
1.
0.
0. !
! 0.
0.
1.
0. !
-->
Paaina 13
Addizione e
Sottrazione
14
Addizione
Date due matrici A(m
n), B(m
n) si definisce addizione
delle due matrici l'
operazione che genera la matrice
somma S(m
n) S=A+B, di elementi:
sij= aij+bij
i=1,..,m;
j=1,,n
Elemento neutro di unoperazione (fra due elementi di un insieme) quellelemento che non
produce effetti, ossia d come risultato lo stesso elemento a cui viene applicato. Ad
esempio: nelloperazione prodotto fra due numeri lelemento neutro il numero 1, dato che
risulta a1 = a, dove a un numero qualsiasi.
In MATLAB la matrice somma si indica con lusuale notazione usata per i numeri:
>>A+B;
>>A+(B+C);
>> . . .
Paaina 15
Sottrazione
Date due matrici A(m
n), B(m
n) si definisce sottrazione
delle due matrici l'
operazione che genera la matrice
differenza D(m
n) S=A-B, di elementi:
sij= aij-bij
i=1,..,m;
j=1,,n
16
Paaina 16
1
A= 0
5
4
1
3
2
1
3 2
1 0
7
B= 4
0
3
2
8
0 6
1 5
0 0
A+B =
-4
5
1
7
-1
0
4
-3
17
In MATLAB:
>> A=[1 2 1 -4;0 3 -2 -1;5 -1 0 -3];
>> B=[7 3 0 6;-4 -2 1 5;0 8 0 0];
>> A+B
ans =
8
-4
-1
-3
>>
Paaina 17
Moltiplicazione
18
aik=caik
i=1,..,m;
k=1,,n
-4
-2
-1
-1
-3
>>
>> -3*A
ans =
-3
-6
-3
12
-9
-15
>>
Paaina 19
Prodotto di matrici
Date due matrici A(m
n), B(n
p) si definisce
moltiplicazione delle due matrici l'
operazione che genera la
matrice prodotto P(m
p) P=A B (oppure P=AB), di elementi:
i=1,..,m;
j=1,,n
pik = ribk
P =A B
(m
p)
(m
n) (n
p)
DIMENSIONI
INTERNE
DIMENSIONI ESTERNE
20
Paaina 20
AB BA
(AB)C = A(BC)
Si pu scrivere quindi: ABC
21
Paaina 21
1
A=
0
2 3
1 0
P = AB =
1
B= 3
0
-2
-3
-5
0
5
4
P = AB
A(2
3)
B(3
2)
P (2
2)
p11 = 1, 2, 3 1, 3, 0 = 7
22
In MATLAB:
>> A=[1 2 3;0 -1 0];B=[1 0;3 5;0 -4];
>> P=A*B
P=
7
-2
-3
-5
>> P(1,1)
ans =
7
>>
Paaina 22
A=
AB =
B=
2
4
2
6
A(2
2) B detta
B(2
1) vettore colonna
AB (2
1)
p11 = 1, 0 2, 6 = 2
p21 = -4, 2 2, 6
=4
23
Paaina 23
4
2
B = [2
BA = 2 4
6]
A(2
2)
B(1
2)
BA (1
2)
B detta
vettore riga
p11 = 2, 6 1, 0 = 2
p12 = 2, 6 -4, 2
=4
24
Paaina 24
Paaina 25
Matrice ortogonale
Una matrice quadrata A si dice ortogonale se
AT A = I
0 1 0
A= 1 0 0
0 0 1
Esempio:
ortogonale
1 0 0 1 0
1 0 0
AT A = 1 0 0 1 0 0 = 0 1 0
0 0 1 0 0 1
0 0 1
0
Infatti:
26
In MATLAB:
>> A=[0 1 0;1 0 0;0 0 1];
>> A'*A
ans =
1
>>
Paaina 26
Matrici quadrate
Determinanti
Un determinante unespressione algebrica che si ricava
in modo univoco - seguendo regole ben precise - da una
matrice quadrata
Se det A = 0 la matrice A si dice SINGOLARE
27
Il determinante la somma di tanti prodotti. I fattori di ogni prodotto sono elementi della
matrice moltiplicati fra loro; ogni fattore non deve appartenere n alla stessa riga n alla
stessa colonna degli altri fattori di quel prodotto. Si ricava che ogni prodotto costituito
da n fattori, se n la dimensione della matrice.
Uno dei prodotti che soddisfano senzaltro alla condizione vista sopra ha come fattori gli
elementi della diagonale principale.
Prendendo tutti i possibili prodotti che soddisfano alla condizione vista sopra,
cambiando di segno ad alcuni di essi (secondo certe regole), si ottiene lespressione
del determinante.
Matrici quadrate
A=
a 11
a 12
a 21
a 22
Esempio:
det
= 2 3 11 = 5
28
Dato che in questo caso n=2, i prodotti sono costituiti da due fattori.
Si vede facilmente che gli unici due prodotti possibili sono quelli costituiti dagli elementi della
diagonale principale e da quelli della diagonale secondaria. A questultimo prodotto si
cambia segno.
In MATLAB il determinante calcolato dal comando det:
>> det([2 1;1 3])
ans =
5
>>
Paaina 28
Matrici quadrate
a 11
a 12
a 13
a 11 a 12
A = a 21
a 31
a 22
a 23
a 21 a 22
a 32
a 33
a 31 a 32
29
Paaina 29
Matrici quadrate
Regola di Sarrus:
1 0 1 1 0
2 1 0 2 1
0 1 3 0 1
30
Con MATLAB:
>> det([1 0 1; 2 1 0; 0 1 3])
ans =
-1
>>
Paaina 30
Matrici quadrate
31
Paaina 31
32
Paaina 32
33
Paaina 33
Matrici quadrate
A=
a11
a12
. a1n
a 21
a 22
an 1
. a nn
detA= a11det
a 22
. a2 n
a 32
.
a 21 a 22
SVILUPPO DEL
DETERMINANTE
SECONDO LA PRIMA
RIGA
a 24
. a2 n
. a2 n
-a12det a 31 a 33 .
. a nn
+a13det a 31 a 32 a 34 .
.
a 21 a 23
.
. a nn
a 21 . a 2 n 1
a1ndet a 31 .
. a nn
. a nn 1
34
Lalgoritmo illustrato permette di esprimere il determinante mediante gli elementi di una riga e i
determinanti di matrici di dimensione inferiore. Applicandolo ricorsivamente si arriva a matrici di
dimensione 1, in cui il determinante coincide con lunico elemento.
Questo algoritmo prende il nome di regola di Laplace e pu essere generalizzato a qualsiasi riga
(vale cio anche se si sviluppa non secondo la prima riga ma secondo una riga qualsiasi).
Paaina 34
detA= a11det
+a13det
a a
a22 a23
-a12det 21 23
a32 a33
a31 a33
a21 a22
a31 a32
detA=a11(a22a33-a23a32)-a12(a21a33-a23a31) +a13(a21a32-a22a31)
35
Applicando la regola di Laplace a una matrice 33 si verifica che si ottiene la stessa espressione
ottenuta con la regola di Sarrus.
Paaina 35
a b = det ax ay az
bx by bz
SVILUPPANDO SECONDO LA PRIMA RIGA:
36
Paaina 36
ax
ay
az
a b c = det bx
cx
by
cy
bz
cz
37
Paaina 37