Sei sulla pagina 1di 37

Matrici:

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 -->.

Matrice: Definizione e Simbologia


Matrice di dimensioni m n (matrice mn):
insieme di mn elementi scalari (numeri), ordinati
secondo un doppio ordinamento.
Doppio ordinamento significa che la posizione di ogni
elemento individuata da due indici.
1 indice: riga (1 i m); 2 indice: colonna (1 k n),
rappresentiamo la matrice con una tabella:

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 ;.

Elementi di Calcolo Matriciale

Paaina 2

Come si indica una Matrice


Lettera Maiuscola: Matrice
B=

2
0

4
1
3

B una matrice 3
34

Lettera minuscola: elemento generico

b12=2 b34= -3 b43= NON ESISTE!

b21=0

In MATLAB il nome di una matrice pu essere indifferentemente maiuscolo o minuscolo.


Esempio: b, alfa, B, Alfa, b1, cc sono altrettanti nomi validi e individuano matrici distinte fra
loro.
Un elemento indicato usando lo stesso nome della matrice con gli indici di riga e colonna
fra parentesi, come negli esempi seguenti:
Se b =
1

-2

-1

-6

risulta: b(1,1)=1, b(1,3)=-2, b(3,1)=0,


Data la matrice B della figura, gli elementi dellesempio sono ottenuti coi comandi:
>> B(2,1)
ans =
0
>>
>> B(3,4)
ans =
-3
>>
>> B(4,3)
??? Index exceeds matrix dimensions.
>>
Elementi di Calcolo Matriciale

Paaina 3

Matrice trasposta

B=

2
0

4
1
3

1
0
5
2 3 1
B = 1 2 0
4 1 3

BT, trasposta di B, si ottiene scambiando le righe


con le colonne.
La trasposta di una matrice m
n una matrice
T
3)
n
m (B 3
4, B 4
Trasposta della trasposta = matrice originale:
(AT)T = A
4

In MATLAB la trasposta di a indicata con a.


Esempi:
>> B'
ans =
1

-1

-2

-4

-1

-3

>> (B')'
ans =
1

-4

-2

-1

-1

-3

>>

Elementi di Calcolo Matriciale

Paaina 4

Matrice partizionata in sottomatrici (blocchi)


1 3
2
4
A = 11 9
1 6
0 0

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

Se m = n (tante righe quante colonne) la matrice si dice


quadrata di ordine n
6

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

La diagonale principale un vettore formato dagli


elementi diagonali, ossia elementi del tipo:
aii (indice riga = indice colonna)
7

In MATLAB il comando diag(X), se X una matrice quadrata, genera come risposta un


vettore colonna formato dagli elementi diagonali di X.
Esempio:
X=
1

-2

-1

-6

>> diag(X)
ans =
1
7
-6

Elementi di Calcolo Matriciale

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 per ogni i>k (i,k=1,..,n) bik=0, la matrice triangolare


superiore
8

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

>>

Elementi di Calcolo Matriciale

Paaina 8

Matrici quadrate

Matrice triangolare inferiore

C=

1
3

12

2
9

Tutti gli elementi sopra


la diagonale sono = 0

C
TRIANGOLARE
INFERIORE

Se per ogni i<k (i,k=1,..,n) cik=0, la matrice triangolare


inferiore
9

In MATLAB il comando tril(X), se X una matrice quadrata, estrae da essa la triangolare


superiore.
Esempio:
X=
-1

-6

-2

-2

12

-3

>> C=tril(X)
C=
-1

-2

12

-3

>>

Elementi di Calcolo Matriciale

Paaina 9

Matrici quadrate

Matrice simmetrica
1

12

12

Tutti gli elementi in posizione


speculare rispetto alla
diagonale sono a due a due
uguali

La matrice
SIMMETRICA

Se per ogni i,k (i,k=1,..,n) aik= aki, la matrice


simmetrica
10

Se scambiamo lindice di riga con quello di colonna, ci portiamo da un elemento a quello in


posizione simmetrica rispetto alla diagonale principale.
Nellesempio, se prendiamo lelemento a21 (che contiene il valore 3) e scambiamo gli indici
ci portiamo sullelemento a12 (che contiene ancora 3, dato che la matrice simmetrica). I
due elementi sono equidistanti dalla diagonale principale.
Similmente per le coppie a31 e a13 (contengono 0); a32 e a23 (contengono 0); a41 e a14
(contengono 12) eccetera.

Elementi di Calcolo Matriciale

Paaina 10

Matrici quadrate

Matrice diagonale

1
0

2
0

Tutti gli elementi fuori dalla


diagonale sono = 0

La matrice detta
DIAGONALE

La matrice diagonale
triangolare superiore...
e triangolare inferiore

Se per ogni ik (i,k=1,..,n) aik= 0, la matrice diagonale


11

In MATLAB il comando diag(v), se v un vettore (vettore riga oppure vettore colonna),


genera come risposta una matrice diagonale.
Esempio:
>> v=[1 -4 -2 3];
>> diag(v)
ans =
1

-4

-2

>>

Elementi di Calcolo Matriciale

Paaina 11

Matrici quadrate

Matrice nulla

0 0
0 0

0
0

0
0

0
0

0
0

0
0

0
0

Se per ogni i,k (i,k=1,..,n) aik= 0 abbiamo la matrice nulla

12

In MATLAB il comando zeros(n) genera la matrice nulla di ordine n.


Esempio:
>> zeros(4)
ans =
0

>>
=== 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. !

-->

Elementi di Calcolo Matriciale

Paaina 12

Matrici quadrate

Matrice unitaria

1 0 0
I= 0 1 0
0 0 1

La matrice diagonale, tutti gli


elementi sono =1
La matrice si dice
UNITARIA o IDENTICA
e si indica con I

Se aik=0 per ik e aik=1 per i=k, A = I

13

In MATLAB il comando eye(n) genera la matrice identica di ordine n.


Esempio:
>> I=eye(3)
I=
1

>>
=== 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. !

-->

Elementi di Calcolo Matriciale

Paaina 13

Operazioni sulle Matrici

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

L'addizione possibile solo fra matrici simili (delle


stesse dimensioni)
Valgono le propriet dell'addizione fra numeri reali:
commutativa: A+B=B+A,
associativa: A+(B+C) = (A+B)+C,
l'elemento neutro la matrice nulla.
15

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);
>> . . .

Elementi di Calcolo Matriciale

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

La sottrazione possibile solo fra matrici simili (delle


stesse dimensioni)

16

Elementi di Calcolo Matriciale

Paaina 16

Esempio - somma di due matrici 34


Date:

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

determinare la matrice somma A+B

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

>>

Elementi di Calcolo Matriciale

Paaina 17

Moltiplicazione

18

Prodotto di un numero per una matrice


Dato uno scalare (numero) c e una matrice
A(m
n), si definisce prodotto cA la matrice
A(m
n), di elementi:

aik=caik

i=1,..,m;
k=1,,n

Il prodotto del numero 1 per una


matrice la matrice opposta.
La differenza fra due matrici A, B la
somma di A con lopposta di B:
A B = A + (-1)B
19

In MATLAB il prodotto di un numero per una matrice si indica col simbolo *:


Esempio:
A=
1

-4

-2

-1

-1

-3

>>
>> -3*A
ans =
-3

-6

-3

12

-9

-15
>>

Elementi di Calcolo Matriciale

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

ri il vettore formato dall"i-esima riga" di A


bk il vettore "k-esima colonna" di B
(prodotto scalare "righe per colonne")

Dimensioni delle matrici:

P =A B

(m
p)

(m
n) (n
p)
DIMENSIONI
INTERNE

DIMENSIONI ESTERNE
20

Le dimensioni interne delle due matrici da moltiplicare devono essere uguali.


Le dimensioni esterne determinano le dimensioni della matrice prodotto.

Elementi di Calcolo Matriciale

Paaina 20

Propriet della Moltiplicazione AB


La riga di A e la colonna di B devono avere lo stesso
numero n di elementi (matrici compatibili).
Il prodotto di matrici quadrate dello stesso ordine
definito ed una matrice quadrata dello stesso ordine
Non vale la propriet commutativa,
quindi (anche se BA esiste):

AB BA

Vale la propriet associativa:

(AB)C = A(BC)
Si pu scrivere quindi: ABC
21

In MATLAB il prodotto di pi matrici si pu scrivere come segue:


>> A*B*C;

Elementi di Calcolo Matriciale

Paaina 21

Esempio - Prodotto di due matrici

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
>>

Elementi di Calcolo Matriciale

Paaina 22

Prodotto matrice - vettore

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

Il prodotto della matrice quadrata per il vettore colonna


ancora un vettore colonna

23

Elementi di Calcolo Matriciale

Paaina 23

Prodotto vettore - matrice


1
A=
0

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

Il prodotto del vettore riga per la matrice quadrata


ancora un vettore riga

24

Elementi di Calcolo Matriciale

Paaina 24

Vettori riga e vettori colonna


Inserendo gli elementi di un vettore in una matrice di una
sola riga/colonna si possono applicare le regole del
prodotto di matrici
Il vettore riga premoltiplica una matrice quadrata e viene
trasformato in un altro vettore riga
Il vettore colonna postmoltiplica una matrice quadrata e
viene trasformato in un altro vettore colonna
Il vettore riga subisce la stessa trasformazione del
corrispondente vettore colonna se le due matrici sono
una trasposta dellaltra
Dora in avanti:

un vettore sar sempre un vettore colonna


25

Elementi di Calcolo Matriciale

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

>>

Elementi di Calcolo Matriciale

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

Determinante di una matrice 2x2

A=

a 11

a 12

a 21

a 22

Prodotto degli elementi della diagonale principale


meno prodotto elementi della diagonale secondaria

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
>>

Elementi di Calcolo Matriciale

Paaina 28

Matrici quadrate

Determinante di una matrice 3x3


Regola di Sarrus:

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

detA= a11a22a33 + a12a23a31 + a13a21a32 +


- a13a22a31 - a11a23a32- a12a21a33

29

Nel caso n=3 ogni prodotto costituito da tre fattori.


Sono possibili sei prodotti, ottenibili con la regola di Sarrus:
Si prende la diagonale principale, partendo dallelemento in alto a sinistra (elemento a11) e
moltiplicandolo per i successivi;
Si prende la prima colonna e la si ricopia a destra della matrice (si ottiene una matrice
provvisoria 34). Quindi si ripete loperazione precedente, partendo da una posizione pi a
destra (ossia dallelemento a12) e -muovendosi parallelamente alla diagonale principale- si
moltiplicano i tre elementi che si trovano allineati.
Si prende la seconda colonna e la si ricopia a destra della matrice precedentemente ampliata.
Quindi si ripete loperazione precedente, partendo da una posizione pi a destra (elemento
a13).
A questo punto si sono ottenuti tre prodotti, ai quali non va cambiato il segno. Ripartendo ora
dallelemento a13 e muovendosi parallelamente alla diagonale secondaria si ottengono altri tre
prodotti, cui si cambia segno.

Elementi di Calcolo Matriciale

Paaina 29

Matrici quadrate

Determinante di matrice 33 - Esempio


1 0 1
data la matrice: A = 2 1 0
0 1 3

Regola di Sarrus:

1 0 1 1 0
2 1 0 2 1
0 1 3 0 1

detA = 1(-1) 3 + 000 + 1 2 1-1(-1)0 - 101 - 023 = -1

30

Con MATLAB:
>> det([1 0 1; 2 1 0; 0 1 3])
ans =
-1
>>

Elementi di Calcolo Matriciale

Paaina 30

Matrici quadrate

Alcune propriet del determinante


Scambiando due righe (o due colonne) fra
loro il determinante cambia segno
Se due righe (o due colonne) sono uguali
il determinante nullo
detAT = detA
il determinante della matrice trasposta
uguale al determinante della matrice
il determinante della matrice nulla vale 0

31

Elementi di Calcolo Matriciale

Paaina 31

Altre propriet dei determinanti


det(AB) = detA detB
"il determinante del prodotto il prodotto dei
determinanti"
Se A triangolare detA = a11 a22 ... ann
"il determinante il prodotto degli elementi diagonali"
Quindi det I = 1

32

Elementi di Calcolo Matriciale

Paaina 32

Determinante di una matrice ortogonale


det(AB) = detA detB
det(ATA) = detAT detA = (detA)2
Se A ortogonale:
det(ATA) = detI = 1
(detA)2 = 1
detA = 1

Quindi il determinante di una


matrice ortogonale 1

33

Elementi di Calcolo Matriciale

Paaina 33

Matrici quadrate

Determinante di una matrice generica

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).

Elementi di Calcolo Matriciale

Paaina 34

Matrice 33 sviluppo secondo la 1a riga


a11 a12 a13
A = a21 a22 a23
a31 a32 a33

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.

Elementi di Calcolo Matriciale

Paaina 35

Matrice 33 prodotto vettore

a b = det ax ay az
bx by bz
SVILUPPANDO SECONDO LA PRIMA RIGA:

a b = i(aybz-azby) - j(axbz-azbx) + k(axby-aybx)


a b = i(aybz-azby) + j(azbx-axbz) + k(axby-aybx)

36

Elementi di Calcolo Matriciale

Paaina 36

Matrice 33 doppio prodotto misto

ax

ay

az

a b c = det bx
cx

by
cy

bz
cz

SVILUPPANDO SECONDO LA PRIMA RIGA:

abc = ax(bycz-bzcy) - ay(bxcz-bzcx) + az(bxcy-bycx)

37

Elementi di Calcolo Matriciale

Paaina 37