algebra matriciale - Dipartimento di Economia e Sistemi Arborei

Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Università degli studi di Sassari - Facoltà di Agraria
Corso di Laurea Specialistica in
PRODUZIONI ANIMALI
IN AMBIENTE MEDITERRANEO
Scuola di Dottorato di Ricerca in SCIENZE DEI SISTEMI AGRARI E FORESTALI E
DELLE PRODUZIONI ALIMENTARI,
indirizzo in SCIENZE E TECNOLOGIE ZOOTECNICHE
DISPENSE DEL CORSO DI
ALGEBRA MATRICIALE
DOCENTE
NICOLO’ MACCIOTTA
DIPARTIMENTO DI SCIENZE ZOOTECNICHE
ANNO ACCADEMICO 2007/2008
1
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
1. ALGEBRA DELLE MATRICI ED INTRODUZIONE ALLA REGRESSIONE LINEARE
SEMPLICE
Algebra delle matrici
Concetto di matrice e tipi di matrice
Per matrice si intende un insieme di numeri disposti secondo i righe j e colonne, solitamente
racchiusi da parentesi quadre.
 a11 a12 a13   1 0 9
A = a 21 a22 a23 =  3 15 7
a31 a32 a33 11 2 4
Il numero di righe (i) ed il numero delle colo nne (j) definiscono le dimensioni della matrice. Nel
caso di A, la dimensione è 3 righe e tre colonne e sarà indicata con A(3x3).. In generale:
 a11 a12
 a21 a 22
A=
 ... ...

 ai1 ai 2
... a1 j 
... a 2 j 
... ... 

... aij  (ixj )
Per convenzione, le matrici vengono solitamente indicate con lettere maiuscole in grassetto (A
nell’esempio sopra riportato. I numeri contenuti all’interno della matrice sono detti elementi della
matrice..
Matrici costituite da una sola riga (cioè i=1) o da una sola colonna (j=1) sono dette vettori. Per
convenzione sono rappresentate con lettere minuscole, sempre in grassetto.
a' = [3 12 1](1x3)
Vettore riga.
2
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
11
q = 43
 7 
Vettore colonna
Solitamente un vettore riga è indicato con l’apostrofo.
Una matrice è detta quadrata quando il numero delle righe è uguale al numero delle colonne (i = j).
A sopra descritta è una matrice quadrata (3 x 3). Se il numero delle righe è diverso dal numero delle
colonne si avrà una matrice rettangolare.
11
7
M=
9

1
8 0
7 2

5 6

1 3 (4 X 3)
In una matrice quadrata si distinguono una diagonale principale ed una diagonale secondaria.
 1 0 9
A =  3 15 7


11 2 4
Nel caso di A gli elementi della diagonale principale sono 1, 15 e 4 mentre quelli della diagonale
secondaria sono 9, 15 e 11.
Una matrice è detta diagonale quando presenta tutti gli elementi fuori della diagonale uguali a zero
3 0 0
D = 0 11 0


0 0 6
La matrice identità I è una matrice diagonale con tutti gli elementi sulla diagonale uguali ad 1.
3
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
1 0 0
I = 0 1 0
0 0 1
Nell’algebra delle matrici, la matrice identità equivale al numero 1 dell’algebra degli scalari. La
matrice in cui tutti gli elementi sono pari a zero è detta matrice nulla, mentre la matrici in cui gli
elementi sono tutti pari ad uno è detta unità ed è normalmente indicata con la lettera J..
0 0 0
N = 0 0 0
0 0 0
1 1 1
J = 1 1 1
1 1 1
Per matrice simmetrica si intende una matrice in cui gli elementi sopra alla diagonale e sotto la
diagonale sono tra loro simmetrici.
1

11
S=
3

9
9

15 7 2 
7 4 10

2 10 7 
11
3
11 3 9 
 1


11 15 7 2 

S=

4 10


7
simm
Come si vede sopra, una matrice simmetrica può essere rappresentata in due modi.
Una matrice è detta triangolare quando ha gli elementi sopra, oppure sotto, la diagonale uguali a
zero.
1 11 3 9 


0 15 7 2 

S=
0 0 4 10


0 0 0 7 
3 0 0
M = 5 11 0


4 8 6
Una matrice tridiagonale ha gli elementi sulla la diagonale e sulle sub-diagonali inferiore e
superiore diversi da zero, mentre tutti gli altri elementi sono uguali a zero.
4
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
1 2 0 0

8 14 4 0
S = 0 9 3 5

0 0 9 2
0 0 0 10
0

0
0

3
11
Si definisce trasposta di una matrice A, e si indica con A’, una matrice che si ottiene da A
scambiando le righe e le colonne.
1 2 
A = 8 14


9 3 
1 8 9
A' = 

2 14 3
Come si può notare, la prima colonna di A è diventata la prima riga di A’, e così via.
La traccia di una matrice quadrata A, indicata con tr(A), è data dalla somma degli elementi che si
trovano sulla sua diagonale.
 3 7 4
A =  5 11 2


 4 8 6
tr(A) = 3 + 11 + 6 = 20
La due righe di programma R seguenti creano e stampano la Matrice A > A<matrix(c(3,5,4,7,11,8,4,2,6),ncol=3)
>A
[,1] [,2] [,3]
[1,] 3 7 4
[2,] 5 11 2
[3,] 4 8 6
Trasposizione della matrice
> A1<-t(A)
5
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
> A1
[,1] [,2] [,3]
[1,] 3 5 4
[2,] 7 11 8
[3,] 4 2 6
Creazione di una matrice Identità di dimensioni 4x4
> I<-diag(4)
>I
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 1
0
0
[3,] 0 0 1 0
[4,] 0 0 0 1
Creazione di una matrice diagonale di dimensione 3x3 avente sulla diagonale il valore 2
> p<-diag(2,3)
>p
[,1] [,2] [,3]
[1,] 2 0 0
[2,] 0 2 0
[3,] 0 0 2
Creazione di una matrice diagonale 3x3 avente in diagonale la sequenza da 1 a 3
> p<-diag(1:3)
>p
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 2 0
[3,] 0 0 3
creazione di un vettore colonna 3x1
> b<-matrix(c(4,6,1),ncol=1)
6
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
>b
[,1]
[1,] 4
[2,] 6
[3,] 1
creazione di un vettore riga 1x4
> a<-matrix(c(1,2,3,4), ncol=4)
>a
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
Operazioni con le matrici
A differenza dell’algebra degli scalari in cui l’esecuzione delle operazioni elementari (addizione,
sottrazione, moltiplicazione e divisione) non richiede requisiti particolari per gli addendi o per i
fattori, le matrici invece possono essere o meno conformabili per una determinata operazione. Tale
conformabilità è legata alle loro dimensioni (m x n) e anche ed eventuali relazioni esistenti fra le
righe o le colonne della matrice stessa.
Le operazioni con le matrici possono essere realizzate sia su softwares di carattere generale, quali
fogli di calcolo tipo Excel (che presente una serie di funzioni dedicate al calcolo matriciale), o di
statistica avanzata, quali il SAS (che ha un modulo, denominato IML, che è dedicato al calcolo
matriciale) o infine da software che sono stati sviluppati appositamente per il calcolo con le matrici,
come il MATLAB. Recentemente è disponibile un nuovo software open access, R, con il quale è
possibile svolgere operazioni con matrici.
Somma
Due matrici sono conformabili per la somma, o per la sottrazione, quando hanno la stessa
dimensione, cioè presentano lo stesso numero di righe e colonne.
La somma di due matrici A e B, di dimensione m x n, sarà una matrice m x n i cui elementi sono il
risultato della somma degli elementi corrispondenti di A e B.
In generale:
7
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
 a11 a12
A =  a21 a 22


 a31 a32
 b11 b12 
B = b21 b22


b31 a32
la formula generale per la somma (o la sottrazione) sarà:
 a11 + b11 a12 + b12 
A + B =  a21 + b21 a22 + b22 


 a31 + b31 a321 + b32
Ora passiamo ad un esempio pratico
11 − 4
A = 6 0 


 8 13 
 3 2
B =  1 15


− 6 5 
A e B sono conformabili per la somma, perché hanno la stessa dimens ione (3 x 3).
11 − 4  3 2  11 + 3 − 4 + 2 14 − 2
A + B =  6 0  +  1 15 =  6 + 1 0 + 15  =  7 15 

 
 
 

 8 13   − 6 5   8 − 6 13 + 5   2 18 
Il risultato di A + B è lo stesso di B + A. Analogo discorso è valido per la sottrazione.
Si riporta la sintassi di R per lo svolgimento dell’esempio precedente
A<-matrix(c(11,6,8,-4,0,13),ncol=2)
B<-matrix(c(3,1,-6,2,15,5),ncol=2)
A+B
Prodotto
8
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Due matrici sono conformabili per il prodotto quando il numero di colonne della prima è uguale al
numero di righe della seconda. Il risultato della moltiplicazione è un matrice con un numero di righe
pari a quello della prima matrice ed un numero di colonne pari a quello della seconda matrice
Il prodotto di una matrice A (m x n) per una matrice B (n x q) è dato da una matrice (m x q) i cui
elementi sono la somma dei prodotti dei rispettivi elementi di A e B. In generale:
 a11 a12
A = a 21 a 22


 a31 a32 mxn
b11 b12 b13
B= 

b21 b22 b23 nxq
 a11xb11 + a12xb21 a11xb12 + a12xb22 a11xb13 + a12xb23
AB = a 21xb11 + a22xb21 a21xb12 + a22xb22 a21xb13 + a22xb23


 a31xb11 + a32xb21 a31xb12 + a32xb22 a31xb13 + a32xb23 mxq
Passiamo ad un esempio pratico.
11 − 4
A = 6 0 


 8 13 
3 2 
B=

1 15
Le due matrici sono conformabili per la moltiplicazione in quanto il numero di colonne di A (2) è
uguale al numero di righe di B (2). Il risultato sarà una matrice con un numero di righe pari a quello
della prima (3) e numero di colonne pari a quello della seconda (2).
(11x3) + ( −4 x1) (11x2) + ( −4x15)   29 − 38
AB =  ( 6x3) + (0x1)
(6x2) + ( 0x15)  = 18 12 

 

 (8x3) + (13x1) (8x2) + (13x15)   37 211 
Il seguente programma di R consente di svolgere l’esempio precedente
A<-matrix(c(11,6,8,-4,0,13),ncol=2)
B<-matrix(c(3,1,2,15),ncol=2)
9
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
A%*%B
A differenza di quanto avviene nell’algebra degli scalari, il prodotto delle matrici non gode della
proprietà commutativa. Infatti, anche quando la dimensione delle matrici lo consente, il prodotto
AB è diverso da BA. Consideriamo Prediamo due matrici quadrate 2x2.
3 2 
A=

1 15
 4 5
B=

 2 1
 (3x4) + ( 2x2) (3x5) + ( 2x1)  16 17 
AB = 
=

(1x4) + (15x2) (1x5) + (15x1)  34 20
mentre
(4 x3) + ( 5x1) (4 x2) + ( 5x15) 17 83
BA = 
 =  7 19
(
2
x
3
)
+
(
1
x
1
)
(
2
x
2
)
+
(
1
x
15
)

 

Poiché è importante l’ordine in cui la matrici sono moltiplicate fra loro, quando si parla di prodotto
fra matrici di solito si indicano le posizioni delle stesse nell’operazione. Per esempio, nel caso A x
B, si dirà che la matrice B è moltiplicata a sinistra per A (oppure che A è moltiplicata a destra per
B)
Nella regola generale del prodotto fra matrici rientrano anche i prodotti fra vettori e matrici. Ad
esempio
a' = [3 12 1](1x3)
11 − 4
A = 6 0 


 8 13 
Il prodotto a’A è realizzabile perché il numero di colonne di a (3) è uguale al numero di righe di A.
Il risultato sarà un vettore riga (1x2).
a' A = [113 1]
In questo caso non è realizzabile il prodotto A a’ poichè le due matrici non sono conformabili per
tale operazione (A ha un numero di colonne, 2, che è diverso dal numero di righe di a’, 1). La
matrice A può essere moltiplicata invece per il seguente vettore colonna
10
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
11
q= 
43
ed il risultato sarà un vettore colonna (1x 3)
− 51
Aq =  66 
 647 
Prodotti di matrici particolari
Il prodotto di un vettore riga v’ con un vettore colonna m dà come risultato uno scalare che è
costituito dalla somma dei prodotti degli elementi dei due vettori
v'= [3 4 1]
6
m = 2
3
v’m = (3 x 6) + (4 x 2) + (1 x 3) =29
Il prodotto di un vettore y moltiplicato a sinistra per la sua trasposta y’ dà come risultato uno
scalare costituito dalla somma dei quadrati degli elementi di y.
2 
3 
y= 
1 
 
4 
y'= [2 3 1 4]
y’y = 30
Il prodotto di un vettore per moltiplicato a sinistra per la sua trasposta è detto forma quadratica
Quindi una operazione di questo tipo consente di calcolare tramite un semplice prodotto di vettori la
somma dei quadrati di grandi quantità di dati. In generale, la formula delle forme quadratiche è l
seguente.
y’Gy
Dove G è una matrice qualsiasi. Nel caso dell’esempio sopra riportato, G è pari ad una matrice
identità 4x4. Cioè
11
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
1
0
y ' Gy = [2 3 1 4]
0

0
0 0 0  2 
1 0 0  3 
   = 30
0 1 0  1 
 
0 0 1  4 
Un vettore riga con gli elementi tutti uguali ad uno è detto vettore somma. Moltiplicato a destra per
un vettore colonna, fornisce come risultato uno scalare costituito dalla somma di tutti gli elementi
del vettore colonna.
m'= [1 1 1 1]
2 
3 
y= 
1 
 
4 
m’y = 10
Un vettore riga q’ può essere utilizzato per costruire una qualsiasi funzione degli elementi di un
vettore colonna y. Consideriamo il vettore y dell’esempio precedente. Il vettore q
q' = [1 0 0 − 1]
moltiplicato a destra per il vettore y fornisce come risultato uno scalare che è la differenza tra il
primo e l’ultimo elemento di y.
q’y = -2
Il prodotto di una matrice per la sua trasposta dà come risultato una matrice simmetrica.
15 23
A = 11 9 


31 12
754 372 741 
AA' = 372 202 449 


 741 449 1105
15 11 31
A' = 

 23 9 12
Il prodotto di uno scalare k per una matrice A è la matrice A con ogni elemento moltiplicato per k.
In generale
12
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
 a11 a12  ka11 ka12
kA = k  a21 a 22 = ka 21 ka 22

 

 a31 a32  ka31 ka32
Venendo ad un esempio pratico:
15 23 45 69
kA = 311 9  = 33 27

 

31 12 93 36
A<-matrix(c(15,11,31,23,9,12),ncol=2)
3*A
La trasposta del prodotto di due matrici A e B, è uguale al prodotto delle trasposte delle due matrici
prese in ordine inverso (B e A).
15 23
A = 11 9 


31 12
 68 76
AB =  42 40


105 86
3 2
B=

1 2
( AB)' = 
68 42 105

76 40 86 
oppure
15 11 31
A' = 

 23 9 12
3 1
B' = 

2 2
13
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
 68 42 105
B' A' = 

 76 40 86 
Una matrice A è detta idempotente se AA’=A
Una matrice B è detta nullipotente se BB’= 0
Una matrice U è detta ortogonale se UU’= I
Riassumendo alcune differenze fra l’algebra degli scalari e quella delle matrici:
1. Proprietà associativa
A + (B + C) = (A + B) + C
2. Proprietà distribut iva
A (B + C) = AB) + AC
3. Proprietà commutativa (valida solo per l’addizione o la sottrazione)
A+B =B+A
AB ≠ BA
Prodotto di Kroenecker.
Il prodotto di Kroenecker, o prodotto diretto, fra due matrici consiste nel moltiplicare ogni elemento
della prima matrice per tutta la seconda matrice. Si indica con il simbolo ⊗.
 a11B a12B 
A (2 x2 ) ⊗ B(mxn) = 

a21B a22B (2mx2 n)
Di sotto si riporta un esempio di applicazione del prodotto di Kroenecker
14
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
2x5
 2 x1
5 3 
 2 3 
 = 2 x3
⊗
1
9
1 2 
 

 3 2 1x5

  1x1

1x3
2x3 3x5 3x3  10 6 15 9 
2 x9 3x1 3x9   2 18 3 27
2x2 3x3 3x2   6 4 9 6 
=

1x3 2x5 2 x3  5 3 10 6 
1x9 2x1 2x9  1 9 2 18 
 

1x2 2x3 2x2  3 2 6 4 
Il prodotto di Kroenecker viene spesso per agevolare i calcoli nelle equazioni di soluzione dei
modelli genetici
Operatori elementari
Esistono delle matrici particolari, ottenute attraverso delle modifiche della matrice di identità I, che
consentono di manipolare un’altra matrice A per la quale vengono moltiplicate.
La matrice P per esempio, ottenuta dalla matrice I attraverso la sostituzione del primo elemento
della diagonale con 0.25, consente di dividere per 4 la prima riga di una matrice per la quale viene
moltiplicata a destra.
0.25 0 0
P =  0 1 0 ;


 0 0 1
8 4 32
A = 4 3 3  ;


6 1 1 
2 1 8
PA = 4 3 3


6 1 1
Se invece viene moltiplicata a sinistra per A, consente di divedere per quattro la prima colonna di
A. Cioè
 2 4 32
AP =  1 3 3 


1.5 1 1 
Un secondo tipo di operatori elementari consente di scambiare fra loro le righe e le colonne delle
matrici. In questo altro esempio, l’uso della matrice Q consente di scambiare fra loro la seconda e la
terza riga di una matrice per la quale viene moltiplicata a destra (Q x A) oppure la seconda e la terza
colonna di una matrice per la quale viene moltiplicata a sinistra (A x Q).
15
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
1 0 0
Q =  0 0 1 ;


 0 1 0
 8 4 32
QA =  6 2 1  ;


 4 5 3 
8 4 32
A = 4 5 3  ;


 6 2 1 
8 32 4
AQ = 4 3 5


6 1 2
Infine un terzo tipo di operatore elementare consente di combinare in vario modo le righe o le
colonne delle matrici per cui viene moltiplicata. La matrice T per esempio, moltiplicata a destra per
una matrice A (T x A), produce una matrice M in cui la prima riga è data dalla somma degli
elementi della prima e terza riga di A, mentre gli elementi della seconda e terza riga rimangono
uguali a quelli di A. Se invece viene moltiplicata a sinistra per A (A x T), produce una matrice F in
cui la terza colonna è data dalla somma degli elementi della prima e seconda colonna di A, mentre
gli elementi della prima e seconda colonna rimangono uguali rispetto ad A.
1 0 1
T = 0 1 0 ;


0 0 1
14 6 33
TA =  4 5 3 


 6 2 1 
8 4 32
A = 4 5 3  ;


 6 2 1 
8 4 40
AT = 4 5 7 


6 2 7 
In generale, quindi, l’uso degli operatori elementari consente di modificare le righe di una matrice
A se l’operatore elementare viene moltiplicato a destra per A (ad esempio T x A) mentre consente
di modificare le colonne di A se l’operatore elementare viene moltiplicato a sinistra per A (ad
esempio A x T).
Determinante di una matrice quadrata
16
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Il determinante di una matrice quadrata è un numero associato alla matrice stessa. Esso può essere
minore, maggiore o uguale a zero. Il determinante di una matrice 1 x 1 (cioè un numero) è il
numero stesso. Il determinante di una matrice A viene indicato con |A|. La conoscenza del
determinante di una matrice quadrata è importante ai fini dell’ottenimento dell’inversa della matrice
(vedi in seguito) che nell’algebra delle matrici equivale al reciproco dell’algebra degli scalari.
Il determinante di una matrice 2 x 2 è uguale alla differenza tra il prodotto degli elementi sulla
diagonale e quello degli elementi fuori della diagonale.
 a11 a12
A=

 a21 a22
|A| = (a11 * a22 ) - (a12 * a21 )
Esempio:
3 2 
A=

1 15
|A| = (3*15)-(2*1) = 45 -2 = 43
Il calcolo del determinante di una matrice quadrata di dimensioni superiori a 2x2 si presenta più
complesso. Nel caso di una matrice quadrata 3x3, si usa il cosiddetto metodo di espansione dei
minori. Si consideri la matrice
5 2 3
A = 9 5 2


5 4 1
Se si considerano gli elementi della prima riga, è possibile ricavare da A tre submatrici 2x2 che si
ottengono eliminando la riga e la colonna di appartenenza di ciascun elemento della riga 1. Cioè
5 2
A1 = 

 4 1
ottenuta eliminando riga e la colonna cui appartiene 5
17
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
9 2
A2 = 

5 1
ottenuta eliminando riga e la colonna cui appartiene 2
9 5
A3 = 

5 4
ottenuta eliminando riga e la colonna cui appartiene 3
I determinanti delle submatrici ottenute da A prendono il nome di minori. Il determinante di A sarà
dato dalla somma dei prodotti dei determinanti delle tre submatrici (cioè dei minori) per il
coefficiente (-1)i+j, dove i e j sono la riga e la colonna di appartenenza dell’elemento di A cui si
riferisce il minore. Continuando ne ll’esempio:
A = 5(−1)
1+1
5 2
4 1
+ 2(−1)
1+2
9 2
5 1
+ 3(− 1)
1+3
9 5
5 4
;
|A| = 5(5-8) -2(9-10) + 3(36-25) = 20
I determinanti delle submatrici ottenute da A moltiplicati per il coefficiente (-1)i+j sono detti
cofattori della matrice A. Nell’esempio sopra riportato, il calcolo del determinante di A è stato
sviluppato attraverso il metodo dell’espansione dei minori relativi agli elementi della prima riga. Ad
analogo risultato si può pervenire attraverso l’espansione dei minori relativi alla seconda riga
A = 9(−1)
2 +1
2 3
4 1
+ 5(−1)
2 +2
5 3
5 1
+ 2(− 1)
2+ 3
5 2
5 4
;
|A| = - 9 (2-12) + 5(5-15) -2(20-10) = 20
oppure della terza riga
A = 5(− 1)
3+1
2 3
5 2
+ 4(− 1)
3+ 2
5 3
9 2
+ 1(− 1)
3+3
18
5 2
9 5
;
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
|A| = 5(4-15) -4(10-27) + 1(25-18) = 20
A<-matrix(c(5,9,5,2,5,4,3,2,1),ncol=3)
det(A)
Il calcolo del determinante delle matrici quadrate di dimensione superiore alla 3x3 si presenta più
laborioso.
Inversa di una matrice quadrata
Come detto in precedenza, nell’algebra delle matrici non esiste la divisione diretta. Se si vuole
dividere una matrice A per una matrice B, occorre moltiplicare A a sinistra per l’inversa di B.
L’inversa di una matrice B, che si indica con B-1 , è una matrice che soddisfa la seguente condizione.
BB-1 = I
B-1B = I
Nell’algebra delle matrici, l’inversa equivale al reciproco dell’algebra degli scalari. Non tutte le
matrici quadrate sono invertibili. Lo sono solo quelle con il determinante diverso da zero.
L’inversa di una matrice quadrata può essere ottenuta utilizzando i cofattori degli elementi ed il
determinante. Riprendiamo l’esempio precedente
5 2 3
A = 9 5 2


5 4 1
Cofattori degli elementi della prima riga
(+ 1)
5 2
4 1
; (− 1)
9 2
5 1
; (−1)
9 5
5 4
= −3,+1,+11 ;
Cofattori degli elementi della seconda riga
(−1)
2 3
4 1
; (+ 1)
5 3
5 1
; (−1)
5 2
5 4
= +10,−10,−10 ;
19
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Cofattori degli elementi della terza riga
(+1)
2 3
5 2
; (− 1)
5 3
9 2
; (+1)
5 2
9 5
;−11,+17,+7 ;
Se si sostituiscono gli elementi di A con i rispettivi cofattori, si ottiene la matrice dei cofattori (C).
1
11 
 −3

C = 10 − 10 − 10


− 11 17
7 
L’inversa della matrice A si calcola come prodotto dell’inverso del suo determinate per la trasposta
della matrice dei cofattori, cioè
A −1
 − 3 10 11  − 0.15 0.5 − 0.55
1
1 
= C' =
1 −10 17 =  0.05 − 0.5 0.85 
 

A
20 
 11 10 7   0.55 − 0.5 0.35 
Si può verificare che
AA-1 = I
5 2 3 − 0.15 0. 5 − 0.55 1 0 0
9 5 2  0.05 − 0.5 0. 85  = 0 1 0


 

5 4 1  0.55 − 0.5 0. 35  0 0 1
La funzione solve di R consente di calcolare la matrice inversa di una matrice quadrata con
determinante diverso da zero
solve(A)
Rango di una matrice quadrata
20
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Come detto in precedenza, una matrice quadrata può essere invertita solo se il suo determinante è
diverso da zero. Se invece il determinante della matrice è uguale a zero, essa si dirà singolare e non
potrà essere calcolata la sua inversa.
Se A è un matrice quadrata, si ha |A|=0 quando una o più righe (o colonne) sono una combinazione
lineare di altre righe (o colonne). Ad esempio, la seguente matrice ha il determinante uguale a zero
 2 − 4 6
A =  6 2 4


10 8 2
Si può notare come la terza colonna sia uguale alla differenza della prima colonna meno la seconda
colonna. Quindi la terza colonna è una combinazione lineare delle altre due e pertanto la matrice è
singolare, cioè |A|=0.
Il rango di una matrice quadrata i x i è dato dal numero di righe (o colonne) che sono tra loro
indipendenti. Se il rango della matrice è uguale al numero delle righe (o colonne), allora la matrice
si dirà a pieno rango. Se invece il rango della matrice è inferiore al numero di righe (o colone)
allora la matrice si dirà non a pieno rango. La matrice A sopra riportata ha rango pari a due, quindi
è non a pieno rango.
Dato un insieme di vettori a1 , a2 ,…, an , questi si diranno linearmente dipendenti se esiste un vettore
q≠0 tale che a1 q11 + a2 q21 +…+ an qn1 = 0.
 2
− 4
6 
1 






a1 = 6 ; a2 = 2 ; a3 = 4 ; q = − 1
 
 
 
 
10
 8 
2
− 1
Si verifica facilmente che
 2  − 4 6  2   4  − 6 0
a1q11 + a2 q21 + a3 q31 = 1 6  − 1 2  − 14 =  6  + − 2 + − 4 = 0
             
10  8  2 10 − 8 − 2 0
Se chiamiamo A la matrice costituita dai tre vettori, se Aq = 0 per un vettore q non nullo, allora le
colonne di A sono vettori linearmente dipendenti.
21
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
 2 − 4 6
A =  6 2 4


10 8 2
1
q = − 1
 
− 1
0
Aq = 0
 
0
Se le colonne di A sono linearmente dipendenti, allora |A| = 0, la matrice è singolare e non esiste la
sua inversa A-1 .
Dato un insieme di vettori a1 , a2 ,…, an , se solo il vettore q=0 che verifica la condizione a1 q11 +
a2 q21 +…+ an qn1 = 0 i vettori si diranno tra loro linearmente indipendenti. I seguenti vettori sono tra
loro linearmente indipendenti.
1
− 2
3




a1 = 3 ; a2 = 3 ; a3 =  5 ;
 
 
 
5
 3 
11
Se chiamiamo M la matrice costituita dai tre vettori, se Mq = 0 solo per q = 0, allora le colonne di
M sono vettori linearmente indipendenti
1 − 2 3 
M = 3 3 5 


5 3 11
Se le colonne di M sono linearmente indipendenti, allora |M|=0, la matrice è non singolare ed esiste
la sua inversa M -1 .
Caso particolare di inversa di una matrice quadrata
L’inversa di una matrice diagonale D è una matrice diagonale in cui gli elementi della diagonale
sono uguali al reciproco degli elementi corrispondenti di D. Cioè
22
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
2 0 0
D = 0 4 0


0 0 3
1
2

−1
D = 0

0

0
1
4
0

0

0

1
3 
Inversa generalizzata
Nel caso della matrici quadrate singolari, quelle cioè per le quali non esiste l’inversa, comunque
possibile calcolare l’inversa generalizzata. L’inversa generalizzata di una matrice quadrata
singolare S, solitamente indicata con S-, è una matrice quadrata che soddisfa la seguente condizione
S S- S=S
Esercizi….
23
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Introduzione alla regressione lineare semplice
Uso delle matrici per la risoluzione dei sistemi di equazioni lineari
Il calcolo matriciale trova applicazione in numerosi settori scientifici. Una delle utilizzazioni più
frequenti consiste nell’uso delle matrici per risolvere i sistemi di equazioni lineari.
Si consideri il seguente sistema di tre equazioni lineari.
4x + 3y +2z = -5
x–y–z=8
2x + 5y + 5z = -26
Il sistema ammette delle soluzioni per le incognite (x = 2, y = -1, z = -5).
Questo sistema di equazioni può essere scritto in forma matriciale:
4 3 2   x   − 5 
1 − 1 − 1  y =  8 

  

2 5 5   z  − 26
cioè
Xb = y
dove X è la matrice dei coefficienti (che contiene cioè i coefficienti delle incognite), b è il vettore
delle incognite (o vetore delle soluzioni) e y è il vettore dei termini noti. Ai fini della risoluzione del
sistema di equazioni bisogna ricavare il vettore delle incognite, cioè
b = X-1 y
quindi condizione fondamentale per la risoluzione di un sistema di equazione con il calcolo
matriciale è che la matrice dei coefficienti abbia i determinante diverso da zero ed esista la sua
inversa X-1 . Nel caso del sistema di equazioni considerato, l’inversa della matrice dei coefficienti
sarà
 0 0.714286 0.142867 
X =  1 − 2.28571 − 0.85714 


− 1

2
1
−1
Continuando quindi a sviluppare l’esempio
24
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
 x  0 0.714286 0.142867  − 5   2 
 y =  1 − 2.28571 − 0.85714  8  =  − 1
  

  
2
1
 z  − 1
− 26 − 5
X<-matrix(c(4,1,2,3,-1,5,2,-1,5),ncol=3)
y<- matrix(c(-5,8,-26),ncol=1)
invX<-solve(X)
b<-invX%*%y
b
Esercizi……..
25
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Uso delle matrici per lo studio delle relazioni fra due variabili.
La disponibilità di più variabili misurate sulle stesse unità sperimentali può costituire un notevole
vantaggio ai fini della comprensione del fenomeno oggetto di studio. Ciò dipende dal grado di
relazione che esiste tra le variabili considerate. Due variabili si dicono statisticamente correlate
quando la variazione dell’una non è indipendente dalla variazione dell’altra, cioè quando esse in
qualche misura covariano. Il termine correlazione, ampiamente utilizzato anche nel linguaggio
comune per indicare l’esistenza di una relazione fra più aspetti degli stessi oggetti, assume quindi
nel campo statistico un significato ben preciso ed introduce al concetto della variazione comune a
due variabili, cioè della loro covariazione.
Nel miglioramento genetico degli animali in produzione zootecnica capita spesso di studiare
relazioni fra due variabili, una delle quali è di tipo temporale. Ad esempio, nella tabella 1 sono
riportati i valori di peso corporeo (espresso in chilogrammi) rilevato a diverse età (espresse in mesi)
di una agnella di razza Sarda.
Tabella 1. Evoluzione del peso corporeo
di una agnella di razza sarda in funzione dell’età.
Età (mesi)
Peso (kg)
2
15.2
3
17
4
18.5
5
24.1
6
27.2
7
30.8
8
32.8
9
33.4
10
33
Le due variabili quindi sono il peso (un carattere produttivo di interesse zootecnico) e l’età
dell’animale (variabile temporale). Una prima valutazione, qualitativa ma efficace, del legame
esistente tra due le variabili viene fornita dalla rappresentazione grafica. In figura 1 vengono
riportati i dati della tabella 1, ponendo in ascisse l’età dell’animale ed in ordinate il peso corporeo
26
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
35
Peso (kg)
30
25
20
15
10
0
5
Età (mesi)
10
Figura 1. Evoluzione del peso corporeo di una agnella
di razza Sarda in funzione dell’età
Dall’osservazione del grafico si nota come il peso dell’agnella aumenti all’aumentare dell’età con
un andamento di tipo sigmoidale, noto come curva di crescita o di accrescimento. Il fenomeno
dell’accrescimento, ben noto ed ampiamente studiato nelle specie di mammiferi, è il risultato dei
processi metabolici che hanno luogo durante la fase di crescita di un animale: fenomeni di
moltiplicazione cellulare, che caratterizzano le fasi di rapido accrescimento iniziale; fenomeni di
maturazione e differenziazione dei tessuti e degli organi, che caratterizzano la seconda fase lenta
che tende ad un plateau rappresentato dal peso dell’animale maturo.
Passiamo ora a considerare il tutto da un punto di vista statistico: le due variabili che definiscono il
problema sono il peso (cioè la variabile dipendente) e l’età (la variabile indipendente). La statistica
che esprime il grado di relazione tra due x e y variabili è la covarianza (Sxy):
Sxy =
∑ (x − x )⋅ (y − y)
n −1
Essa esprime la quota di variabilità comune che presentano due variabili. Maggiore è la covarianza
tra le due variabili, più stretta sarà la relazione tra esse. La covarianza relativa alle due variabili
riportate in tabella 1 è 1.73. Essendo un prodotto di differenze, la covarianza ha però la
caratteristica di non essere immediatamente interpretabile. Una misura di più facile lettura che
esprime l’intensità con la quale due variabili x e y sono legate è il coefficiente di correlazione (r),
che in effetti esprime la covarianza in termini standardizzati:
27
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
rxy =
S xy
S 2 xS 2 y
dove Sxy = covarianza di x e y, S2x = varianza di x, S2 y = varianza di y. Nel nostro caso, la
correlazione fra peso ed età (rpeso,età) è pari a 0.967. Tale valore del coefficiente di correlazione
indica un legame stretto e positivo tra le due variabili (cioè variano nello stesso senso, all’aumentare
dell’una aumenta l’altra e viceversa), peraltro ampiamente deducibile dell’andamento grafico
(questa è una ottima ragione per iniziare qualsiasi processo di elaborazione dati con una
rappresentazione grafica!).
Per scopi pratici, però accade che una delle due variabili sia di difficile o costosa misurazione:
ritornando all’esempio di figura 1, la rilevazione del peso delle agnelle (soprattutto nel caso di
greggi numerosi) potrebbe rilevarsi piuttosto costosa o comunque non applicabile con la dovuta
frequenza e complicata per poter essere applicata di routine, mentre la rilevazione dell’età non
richiede particolari sforzi (tranne la corretta identificazione dell’animale e la registrazione della sua
data di nascita). Lo sviluppo di un modello in grado di stimare il peso di una agnella in base alla sua
età potrebbe avere pertanto una certa rilevanza pratica. Osservando i dati riportati nella figura 1, si
nota come la relazione tra le due variabili possa essere considerata con buona approssimazione di
tipo lineare e quindi rappresentabile con una retta. In realtà la curva di crescita viene studiata con
funzioni più complesse della retta, come la logistica o l’equazione di Gompertz. Nel nostro caso,
però, considerato l’andamento dei dati e lo scopo didattico dell’esempio, si può utilizzare una retta
per modellizzare la curva. Dalla geometria analitica, l’equazione della retta
y = b0 + bx
dove b0 è l’intercetta, cioè il valore di y in corrispondenza del quale la retta interseca l’asse delle
ordinate; b è la pendenza (o coefficiente angolare) della retta, fornisce cioè la variazione di y al
variare di una unità di x. I termini b e b0 sono anche detti parametri della funzione (nel nostro caso,
della retta).
Nel caso in esame, la retta che rappresenta l’accrescimento in funzione dell’età si dirà retta di
regressione dell’età sul peso, la cui formula è
y = b0 + bx + e
dove e rappresenta il residuo, cioè la differenza tra il dato previsto dalla retta di regressione ed il
dato reale osservato.
La retta di regressione non è una retta qualsiasi, ma è quella retta che soddisfa la condizione
matematica di minimizzare la somma dei quadrati delle distanze dei punti reali da essa. In altre
parole, è la retta che passa più vicina a tutti i punti dell’insieme di dati. Il metodo matematico che
28
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
consente di stimare, sulla base dei dati reali, i valori di b0 e b della retta che soddisfa tale condizione
è detto metodo dei minimi quadrati (Least Squares). Lo sviluppo di tale metodo fornisce le seguenti
formule, che consentono di calcolare la pendenza e l’intercetta della retta di regressione:
b = rxy
Sy
SX
[1]
dove rxy è il coefficiente di correlazione fra le due variabili, Sx e Sy sono le rispettive deviazioni
standard
b 0 = y − bx
[2]
dove x e y sono le medie delle variabili x e y rispettivamente
Applichiamo ora le formule [1] e [2] per il calcolo dei parametri della retta di regressione
all’esempio del peso corporeo sull’età dell’animale:
b = 0.967 ×
7.34
= 2.595
2.74
b0 = 25.78 –(2.595*6) = 10.208
Quindi l’equazione della retta di regressione sarà:
y = 10.208 + 2.595x + e
[3]
o, in altri termini
peso = 10.208 + 2.595 · età + e
In precedenza si è detto che il coefficiente di regressione rappresenta la variazione della variabile
dipendente al variare di una unità della variabile indipendente. Nel caso specifico della retta che ci
siamo calcolati, quindi, il valore del coefficiente di regressione indica che il peso aumenta di 2.59
29
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
kg per un aumento di un mese di età (ovviamente nell’agnella che abbiamo cons iderato
nell’esempio).
L’equazione [3] può essere adesso utilizzata per la stima dei valori del peso a partire dall’età. I
valori della variabile dipendente stimati con la retta di regressione si indicano convenzionalmente
ŷ . Ad esemp io, il valore stimato del peso per un’età di 10 mesi sarà:
ŷ
= 10.208 + 2.595*10= 36.158
Poiché però il vero valore di peso misurato a 10 mesi era pari a kg 33, la differenza
y - ŷ
= 33-36.158 = -3.158
rappresenta il residuo dalla retta di regressione (e) e, graficamente, costituisce la distanza dal punto
sperimentale dalla retta di regressione. Allo stesso modo, utilizziamo l’equazione [3] per calcolare il
peso stimato per tutte le età:
Età (mesi)
Peso reale
Peso stimato
Residuo
2
15.2
15.397
-0.197
3
17
17.992
-0.992
4
18.5
20.588
-2.088
5
24.1
23.183
0.917
6
27.2
25.778
1.422
7
30.8
28.373
2.427
8
32.8
30.968
1.83
9
33.4
33.563
-0.163
10
33
36.158
-3.158
Si possono ora aggiungere i dati del peso stimato al grafico riportato in figura 1
30
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
40
Peso (kg)
35
30
25
20
15
10
0
5
Età (mesi)
10
Figura 2. Valori del peso osservato (♦) e stimato con la retta di regressione
Si può notare come i valori del peso stimato si trovino sulla retta di regressione. Le distanze fra i
rombi (che rappresentano il valore realmente osservato del peso) ed il corrispondente valore sulla
retta, rappresentano i residui.
Una regressione può essere rappresentata da un sistema di equazioni
y1 = b0 + b1 x1 + e1
y2 = b0 + b1 x2 + e2
……………….
yn = b0 + b1xn + en
Come detto nel paragrafo precedente, un sistema di equazioni può essere scritto in forma matriciale.
Nel caso della retta di regressione, quindi:
 y 1  1
 y 2  1
 =
 ...  ...
  
 y n  1
x1 
e1 

x2  b0  e2 

+ 
... b0 ì  ...

 
xn 
en 
[4]
Si può notare come la matrice dei coefficienti contenga la prima colonna con gli elementi tutti pari
ad uno. Questa colonna è necessaria perché nel modello è prevista l’intercetta (in termini
geometrici, cioè, la retta non passa per l’origine ma interseca l’asse delle y in un punto b0 ).
L’equazione della retta di regressione, detta anche regressione lineare semplice, può essere scritta
in forma sintetica come
31
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
y = Xb + e
dove
y
=
vettore della variabile indipendente
X
=
matrice dei valori della variabile indipendente
b
=
vettore dei parametri del modello di regressione
e
=
vettore dei residui
Analogamente
ŷ = Xb
ŷ
=
vettore dei valori stimati della variabile indipendente
X
=
matrice dei valori della variabile indipendente
b
=
vettore dei parametri del modello di regressione
Anche per il sistema di equazioni scritto in forma matriciale, il metodo dei minimi quadrati
consente di ricavare delle soluzioni che permettono di stimare i parametri della retta di regressione.
La seguenti equazioni
(X' X)bˆ = X' y
sono dette equazioni normali della regressione lineare semplice, la cui soluzione
−1
bˆ = (X ' X ) X ' y
[5]
consente di stimare il vettore delle soluzioni b della regressione lineare semplice che soddisfano la
condizione dei minimi quadrati.
Ritorniamo all’esempio della regressione lineare semplice applicata alla curva di crescita
dell’agnella di razza Sarda. Il sistema di equazioni scritto in forma matriciale, secondo la formula
[4], è
32
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
15.2 1 2 
 e1 
 17  1 3 
 17 

 



18.5 1 4 
18.5

 



 24.1 1 5 b0   24.1
27.2 = 1 6   + 27.2

 
 b  

30.8 1 7 
30.8
32.8 1 8 
32.8

 



33.4 1 9 
33.4
 33  1 10
 33 

 



y
= X
b+
e
applichiamo ora la relazione [5] per trovare le stime del vettore dei parametri della regressione b.
1 2 
1 3 


1 4 


1 5

1 1 1 1 1 1 1 1 1  
 9 45 
X'X = 
1 6 =


 45 285
2 3 4 5 6 7 8 9 10 
1
7


1 8 


1 9 
1 10


Dall’osservazione della struttura della matrice X’X si può notare come il primo elemento della
diagonale si uguale al numero dei dati considerati nella regressione (9), il secondo sia pari alla
somma dei quadrati delle x, mentre gli elementi fuori diagonale sono pari alla somma delle x. Cioè
la struttura generale della matrice X’X è
 n
X' X = 
∑ x
∑ x 
∑ x 
2
Ora calcoliamo l’inversa
− 0.1 
0.711111
0.016667 
 − 0 .1
(X' X)−1 = 
33
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
Si calcola quindi il prodotto X’y
15.2
 17 


18.5


24.1

1
1
1
1
1
1
1
1
1


 232 
X'y = 
27.2 = 


 1547 .7
2 3 4 5 6 7 8 9 10
30.8
32.8


33.4
 33 


Infine si moltiplica (X’X)-1 per X’y
− 0.1  232  10 .20778 
0 .711111
−1
b = (X' X) X' y = 
=
0.016667 1547 .7  2.595 
 − 0.1
Come si può notare, il vettore delle soluzione dei parametri della regressione lineare semplice
contiene gli stessi valori che erano stati precedentemente ottenuti con le formule [1] e [2].
Abbiamo quindi visto come la stima dei parametri di una retta di regressione semplice possa essere
ottenuta attraverso l’impiego del calcolo matriciale. Per semplicità didattica, l’esempio considerato
si riferiva ad un insieme di dati di numerosità estremamente ridotto, per cui, dal punto di vista
calcolistico è indifferente l’uso delle formule [1] e [2] o quello delle soluzioni matriciali [5]. Nel
caso però in cui debbano essere utilizzate grandi quantità di dati, come spesso capita nelle
valutazioni genetiche, allora l’impiego del metodo matriciale è praticamente obbligato in quanto è
l’unico che consente di gestire una grande mole di dati.
Sviluppo dell’esempio soprariportato con R
Y<-matrix(c(15.2,17,18.5,24.1,27.2,30.8,32.8,33.4,33),ncol=1)
X<-matrix(c(1,1,1,1,1,1,1,1,1,2,3,4,5,6,7,8,9,10),ncol=2)
X
X1<-t(X)
X1
X1X<-X1%*%X
34
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
X1X
invX1X<-solve(X1X)
invX1X
X1Y<-X1%*%Y
X1Y
b<-invX1X%*%X1Y
b
35
Algebra matriciale – a.a. 2007/2008 – Nicolò Macciotta
36