Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NORMA DI MATRICI E
• Definizioni
• Algoritmi per operazioni di base tra matrici
• Valori singolari
• Norma di matrici
• Complementi: richiami sulle matrici
1
1 Definizioni
Si richiamano le seguenti definizioni:
• A matrice m × n:
a11 ... a1n
.. ..
A= . .
am1 ... amn
Si dice strettamente diagonale dominante per righe o per colonne se la disuguaglianza nella definizione
vale con il segno di “>”.
2
• Data A ∈ Rm×n , si dice matrice trasposta di A, si indica con AT , la matrice AT ∈ Rn×m i cui
elementi sono bij = aji , i = 1, ..., n, j = 1, ..., m.
Posto l’m–vettore ai la i–esima colonna di A, i = 1, ..., n, la matrice trasposta AT si può indicare
come T
a1
T ..
A = .
aTn
si dice che A è
– diagonale a blocchi se Aij = 0 per i ̸= j;
– tridiagonale a blocchi se Aij = 0 per j < i − 1 e j > i + 1;
– a banda a blocchi se Aij = 0 per j < i − p e j > i + q (p,q interi positivi; p = q = 1 tridiagonale
a blocchi, p = q = 2 pentadiagonale a blocchi, ...);
– triangolare superiore a blocchi se Aij = 0 per i > j;
– triangolare inferiore a blocchi se Aij = 0 per i < j
3
2 Algoritmi per operazioni di base tra matrici
2.1 Algoritmi per il calcolo di matrici
Si considerano algoritmi di base che utilizzano vettori e matrici. Le operazioni tra vettori e matrici devono
essere descritte in termini di operazioni elementari tra le singole componenti delle grandezze stesse.
Nella valutazione dell’efficienza di un algoritmo si considereranno la stabilità numerica, la complessità
computazionale, ovvero il numero di moltiplicazioni e divisioni presenti nell’algoritmo, e la richiesta di
memoria del calcolatore necessaria.
Si consideri per esempio ad una matrice A, di dimensione 1000 × 1000; se supponiamo che ciascun
elemento della matrice sia memorizzato mediante 4 byte, allora, per memorizzare per intero la matrice
in un array due dimensionale nel cui elemento a(i,j) viene memorizzato l’elemento aij della matrice A,
l’array richiederà una memoria di 4 · 106 byte.
Ad esempio, se la matrice è simmetrica, si può pensare di tenere conto solo degli elementi aij , della parte
triangolare inferiore o superiore, cosı̀ come se una matrice è sparsa si può pensare di memorizzare solo
gli elementi più significativi e dunque, utilizzare meno memoria possibile.
Una matrice si definisce sparsa se sono presenti molti elementi nulli; una matrice si definisce densa se
sono presenti molti elementi non nulli.1 È naturale pensare che solo gli elementi non nulli delle matrici
sparse possano essere memorizzate in un array.
Siano x ∈ Rn e y ∈ Rn due vettori dati di componenti xi e yi rispettivamente, (i = 1, ..., n), l’algoritmo
che fornisce come risultato il vettore z ottenuto come somma di x e y, è costituito da una sola istruzione
composta da un’operazione di somma tra scalari, eseguita n volte con dati diversi: zi = xi +yi , i = 1, ..., n.
Si può allora usare il costrutto di ciclo.
Se pensiamo che i vettori x, y e z siano memorizzati negli array x, y e z e la loro dimensione n nella
variabile intera n, la subroutine in linguaggio Fortran che calcola z = x + y si scrive:
subroutine sommav(x,y,z,n)
real x(n),y(n),z(n)
do i=1,n
z(i) = x(i) + y(i)
enddo
return
end
In modo analogo l’algoritmo che calcola la somma di due matrici A ∈ Rm×n e B ∈ Rm×n , C = A + B, si
descrive con la sola istruzione di somma eseguita per gli m · n elementi delle matrici A e B: cij = aij + bij ,
j = 1, ..., n, i = 1, ..., m.
La subroutine in linguaggio Fortran che calcola la somma di due matrici A e B memorizzate rispettiva-
mente negli array a e b, memorizza il risultato C nell’array c e le dimensioni m ed n nelle variabili intere
m e n rispettivamente, si scrive:
subroutine sommam(a,b,c,ld,m,n)
real a(ld,n),b(ld,n),c(ld,n)
do i=1,m
do j=1,n
c(i,j)=a(i,j) + b(i,j)
enddo
enddo
return
end
1 Si nota che la sparsità o la densità di una matrice sono legate alla dimensione della matrice stessa; una matrice diagonale
di ordine 10 ha una sparsità del 90% (densità del 10%), mentre se l’ordine è 1000, la sparsità aumenta al 99.999% (densità
del 0.001%).
Una matrice tridiagonale, o in generale a banda, si dice matrice sparsa con struttura tridiagonale o a banda.
4
Scambiando le istruzioni do i=1,m e do j=1,n, si ottiene il calcolo degli elementi c(i,j) per colonne,
ovvero si eseguono le stesse operazioni con diverso ordine.
L’operazione di somma tra vettori e matrici equivale alle somme delle rispettive componenti mentre
l’operatore prodotto tra vettori e matrici equivale al prodotto riga–colonna. Nel seguito, si analizzano i
casi del prodotto scalare, del prodotto matrice per vettore e matrice per matrice.
Siano x ∈ Rn e y ∈ Rn due vettori dati di componenti xi e yi rispettivamente, (i = 1, ..., n), il prodotto
scalare s tra x e y è dato da
y1
y2 ∑
n
s = xT y = (x1 , x2 , ..., xn ) . = x1 y1 + x2 y2 + ... + xn yn = xi yi
.. i=1
yn
subroutine mv(a,x,y,ld,m,n)
real a(ld,n),x(n),y(m)
do i=1,m
y(i)=0
enddo
do i=1,m
do j=1,n
y(i)=y(i)+a(i,j)*x(j)
enddo
enddo
return
end
Se si scambiano le istruzioni do i=1,m e do j=1,n del secondo ciclo, si esegue il prodotto matrice–
vettore come combinazione lineare delle n colonne della matrice A con le componenti xi del vettore x
5
come coefficienti della combinazione:
y1 a11 a12 a1n
y2
a21 a22 a2n
per i = 1, ..., m .. = .. x1 + .. x2 +... + .. xn
. . . .
ym am1 am2 amn
| {z }
j=1
| {z }
j=2
| {z }
j=n
subroutine mtv(a,x,y,ld,m,n)
real a(ld,n),x(m),y(n)
do i=1,n
y(i)=0
enddo
do i=1,n
do j=1,m
y(i)=y(i)+a(j,i)*x(j)
enddo
enddo
return
end
Se la matrice A è una matrice n × n triangolare (ad esempio inferiore), nel calcolo della matrice A per un
vettore x si eseguono solo le operazioni che coinvolgono gli elementi non nulli della matrice A, riducendo
la complessità computazionale.
subroutine mv trinf(a,x,y,ld,n)
real a(ld,n),x(n),y(n)
do i=1,n
y(i)=0
enddo
do i=1,n
do j=1,i
y(i)=y(i)+a(i,j)*x(j)
enddo
enddo
return
end
Si nota che questo è un esempio in cui un estremo dell’indice del ciclo interno dipende dal valore dell’indice
del ciclo esterno.
Siano date le matrici A ∈ Rm×p , B ∈ Rp×n e memorizzate negli array a e b con le variabili intere m, n e
p che memorizzano le dimensioni m, n e p rispettivamente.∑La matrice prodotto C = AB è una matrice
p
a coefficienti reali m × n i cui valori cij sono dati da cij = k=1 aik bkj ; i = 1, ..., m, j = 1, ..., n.
6
Supponendo di memorizzare i valori di C nell’array c, l’algoritmo per il calcolo degli elementi di C in
linguaggio Fortran viene implementato nel modo seguente:
subroutine mm(a,b,c,ld,ld1,m,n,p)
real a(ld,p),b(ld1,n),c(ld,n)
do i=1,m
do j=1,n
c(i,j)=0
enddo
enddo
do i=1,m
do j=1,n
do k=1,p
c(i,j)=c(i,j)+a(i,k)*b(k,j)
enddo
enddo
enddo
return
end
Il ciclo sopra interpreta il prodotto due matrici A per B come m × n prodotti scalari delle m righe di
A per le n colonne di B (ciclo ijk); se si scambia l’ordine dei cicli in i e in j (do i=1,m, do j=1,n), la
matrice prodotto C viene calcolata per colonne, ovvero ogni passo del ciclo esterno j viene calcolata la
j–esima colonna di C: C = [Ab1 , Ab2 , ...Abn ], dove b1 , b2 , ..., bn sono le n colonne della matrice B (ciclo
jik).
Vi sono ovviamente 6 modi per eseguire il prodotto matrice–matrice (cicli ijk, jik, ikj, jki, kij e kji).
La complessità computazionale del prodotto matrice per matrice è m × n × p; se le matrici sono quadrate
di ordine n, è n3 .
ESERCIZIO 1. Scrivere una subroutine in linguaggio Fortran per ciascuna delle seguenti operazioni:
(a) Siano x, y ∈ Rn , eseguire l’operazione di scambio dei valori delle componenti dei due vettori (opera-
zione detta swap);
(a) Siano A, B ∈ Rm×n , eseguire l’operazione di scambio dei valori degli elementi delle due matrici
(swap);
ESERCIZIO 2. Tenendo conto solo degli elementi non nulli delle matrici coinvolte, scrivere una subroutine
in linguaggio Fortran per ciascuna delle seguenti operazioni:
(a) Sia A ∈ Rn×n una matrice triangolare superiore ed x ∈ Rn , calcolare Ax;
7
(d) Sia A ∈ Rn×n e D = diag{d1 , d2 , ..., dn } una matrice diagonale, calcolare AD e DA;
(e) Siano A ∈ Rn×n e B ∈ Rn×n due matrici triangolari inferiori, calcolare la matrice prodotto AB;
Se indichiamo con nz, memorizzato nella variabile intera nz, il numero di elementi diversi da zero per
ciascuna riga2 di A, la subroutine in Fortran che calcola il prodotto matrice–vettore y = Ax, con x ∈ Rn
vettore assegnato e memorizzato nell’array x, e con A memorizzata mediante gli array a e ia come
descritto sopra, si scrive:
subroutine mv sparsa(a,ia,x,y,ld,n,nz)
real a(ld,nz),x(n),y(n)
integer ia(ld,nz)
do i=1,n
y(i)=0
enddo
do i=1,n
do j=1,nz
y(i)=y(i)+a(i,j)*x(ia(i,j))
enddo
enddo
return
end
8
Ad esempio se si vuole verificare che una matrice A, di ordine n, è simmetrica, si può scrivere la seguente
subroutine in Fortran dove l’array a memorizza i valori di A e la variabile intera n memorizza l’ordine n
della matrice A. Nella variabile tol si memorizza il valore della tolleranza introdotta in quanto la richiesta
della condizione di uguaglianza tra due numeri finiti non è affidabile per l’indecidibilità dell’uguaglianza
tra numeri finiti.
subroutine asimm(a,ld,n,tol,info)
real a(ld,n)
info=0
do i=2,n
do j=1,i-1
temp=a(i,j)-a(j,i)
if (abs(temp).gt.tol) then
info=1
return
endif
enddo
enddo
return
end
Alla fine dell’algoritmo, il valore di info (informatore) è uguale a 0 se la matrice è simmetrica oppure è
uguale a 1 se non è simmetrica.
Si nota che la richiesta di una proprietà che deve essere vera per ogni elemento della matrice, si implementa
richiedendo che se un solo elemento non verifica la proprietà si arresta l’algoritmo.
In modo analogo si descrive l’algoritmo per verificare se una matrice A, n × n, soddisfa la proprietà di
diagonale dominanza per righe. Si ha la subroutine in Fortran:
subroutine adiagdom(a,ld,n,info)
real a(ld,n)
info=0
do i=1,n
s=0
do j=1,i-1
s=s+abs(a(i,j))
enddo
do j=i+1,n
s=s+abs(a(i,j))
enddo
if (s.gt.abs(a(i,i))) then
info=1
return
endif
enddo
return
end
Alla fine dell’algoritmo, il valore di info è uguale a 0 se la matrice è diagonale dominante, se invece è 1
allora A non è diagonale dominante.
ESERCIZIO 3. Data una matrice A, n × n, scrivere una subroutine in linguaggio Fortran per ciascuna
delle seguenti verifiche:
(a) A è ortogonale (i.e. AAT = I);
9
(b) A è diagonale, tridiagonale o pentadiagonale;
(c) A è diagonale dominante per colonne;
(d) A è strettamente diagonale dominante per righe;
(e) A è strettamente diagonale dominante per colonne.
10
3 Valori singolari
Sia A ∈ Rm×n e si denoti con r il rango della matrice A (r ≤ min{m, n}). Si suppone m ≥ n.
Le matrici quadrate AT A e AAT di ordine n ed m, rispettivamente, sono simmetriche.
Si consideri la matrice A per colonne, i.e., A = [a1 , a2 , ..., an ], dove le colonne aj di A sono vettori di m
componenti; la matrice AT A ha elementi bij = aTi aj .
Se consideriamo la matrice A per righe, i.e.,
T
a1
aT2
A= .
. .
aTm
dove le righe aTi di A sono vettori di n componenti, allora la matrice AAT ha elementi cij = aTi aj .
Si possono provare le seguenti proprietà per AT A e AAT :
• La matrice AT A è una matrice n × n:3
dove con ρ(B) si indica il raggio spettrale della matrice quadrata B, ovvero l’autovalore di modulo
massimo della matrice B.
3 Dalla definizione di definita o semidefinita positività di una matrice, si ha, per ogni vettore x ̸= 0 di n componenti:
xT AT Ax = (Ax)T (Ax) = ∥Ax∥22
La norma di un vettore è positiva o nulla ed è nulla se e solo se il vettore è il vettore nullo. Poiché A = [a1 , a2 , ..., an ], dove
aj , j = 1, ..., n sono le colonne di A, il vettore Ax si può scrivere come combinazione lineare delle colonne di A
Ax = a1 x1 + a2 x2 + ... + an xn
Dunque, se le colonne di A sono linearmente indipendenti (rango massimo) si ha Ax ̸= 0; se le colonne di A non sono
linearmente indipendenti, esistono dei valori xj , j = 1, ..., n, non tutti nulli, tale che Ax = 0.
11
4 Norma di matrici
Una norma di una matrice A ∈ Rm×n si definisce a partire da una norma vettoriale. Ovvero, data una
norma vettoriale ∥ · ∥p , si definisce una norma di matrice ∥ · ∥q , se, per ogni vettore x ∈ Rn e per ogni
matrice A ∈ Rm×n , vale la condizione di compatibilità:
Si nota che, dalla condizione compatibilità, per ogni norma di matrice, vale
∥I∥ = 1
Ad esempio, la matrice ( )
2 −1 0.5
A=
−1 3 10
ha norme
Una particolare norma di matrice è quella associata alla norma vettoriale euclidea. Questa norma matri-
ciale prende il nome di norma spettrale in quanto rimane definita mediante gli autovalori della matrice.
Si definisce la norma spettrale di una matrice come il valore singolare massimo:
∥A∥2 = σ1 (4)
12
• Equivalenza tra norme matriciali, i.e. ∃c1 , c2 , costanti positive tale che:4
c1 ∥A∥q ≤ ∥A∥q̃ ≤ c2 ∥A∥q
Si consideri una matrice Q, di ordine n, ortogonale. Per la norma di Frobenius e la norma spettrale di
matrici ortogonali valgono i risultati seguenti:
• La norma spettrale e la norma di Frobenius di una matrice ortogonale Q vale 1, i.e.,
∥Q∥2 = ∥Q∥F = 1
• Per la norma spettrale e la norma di Frobenius, vale la proprietà di invarianza rispetto a trasfor-
mazioni ortogonali. Se A è una matrice m × n e Q e Z sono matrici ortogonali di ordine m ed n
rispettivamente, allora:
∥QAZ∥F = ∥A∥F
∥QAZ∥2 = ∥A∥2
−1 1
∥A ∥2 =
mini λi (A)
4 Ad esempio:
√
∥A∥2 ≤ ∥A∥F ≤ n∥A∥2
1 √
√ ∥A∥∞ ≤ ∥A∥2 ≤ m∥A∥∞
n
1 √
√ ∥A∥1 ≤ ∥A∥2 ≤ n∥A∥1
m
5 Dalla definizione si ha ∥Qx∥22 = xT QT Qx = xT x = ∥x∥22 .
13
4.1 Algoritmo per il calcolo di ∥A∥∞
Supponendo di memorizzare una matrice A ∈ Rm×n in un array a e le dimensioni di riga e di colonna
nelle variabili intere m e n, il sottoprogramma in linguaggio Fortran (function) che implementa la formula
(2) è il seguente:
La variabile anorinf (nome della function), alla fine dell’esecuzione dell’algoritmo, contiene il valore della
norma infinito della matrice A.
ESERCIZIO 4. Scrivere un sottoprogramma in linguaggio Fortran per ciascuna delle seguenti operazioni:
(a) Dato x ∈ Rn , calcolare ∥x∥1 ;
ESERCIZIO 5. Scrivere due sottoprogrammi in linguaggio Fortran che calcolano rispettivamente le norme
definite dalle formule (1) e (3) di una matrice reale A di m righe ed n colonne.
14
5 Complementi: richiami sulle matrici
In questa sezione si richiamano alcune definizioni e risultati di base sulle matrici (matrix theory) che si
incontrano nei primi corsi di Matematica.
La definizione
∑
n
< x, y >≡ xT y = xi yi ∀x, y ∈ Rn
i=0
In generale si possono definire le norme di vettori a n componenti come la norma–p (o norme di Hölder)
1
∥x∥p = (|x1 |p + ... + |xn |p ) p 1≤p<∞
15
Data una matrice A, m × n a valori reali, si definisce norma energia (o norma ellittica) di un n–vettore x
√ √
∥x∥A ≡ ∥Ax∥2 = (Ax)T Ax = xT AT Ax
Ad esempio:
√
∥x∥2 ≤ ∥x∥1 ≤ n∥x∥2
√
∥x∥∞ ≤ ∥x∥2 ≤ n∥x∥∞
∥x∥∞ ≤ ∥x∥1 ≤ n∥x∥∞
Inoltre, le norme sopra definite, se x e y sono due vettori di n componenti reali, vale la seguente proprietà:
ordine n.
16
Se con I si indica la matrice identità ed α è un numero reale, la matrice α · I si chiama matrice scalare.
Facendo uso della definizione di somma di matrici, si definisce la matrice
α1 · A1 + α2 · A2 + ... + αp · Ap
∑
p
cij = aik bkj (i = 1, ..., m; j = 1, ..., n)
k=1
• 0·A=A·0=0
• I ·A=A·I =A
A · B · C = (A · B) · C
Dunque, la potenza k–esima, con k ≥ 2, di una matrice A di ordine n, è il prodotto di k volte la matrice
A; si indica con Ak .
Si ha, 0k = 0 e I k = I.
Ponendo A0 = I e A1 = A, quando A ̸= 0, si ha per p e q numeri interi positivi
Ap · Aq = Ap+q
(Ap )q = Ap·q
α · (A · B) = (α · A) · B = A · (α · B)
17
• Se A, B ∈ Rm×p , C ∈ Rp×n , allora
(A + B) · C = A · C + B · C
C · (A + B) = C · A + C · B
(A · B) · C = A · (B · C)
Nel caso più generale in cui i singoli blocchi Aij e Bkl non sono quadrati di ordine n, ma hanno ordine
ni × nj e mk × ml rispettivamente (i = 1, ..., r, j = 1, ..., s, k = 1, ..., u, l = 1, ..., v), per eseguire le
operazioni su matrici partizionate a blocchi devono essere soddisfatte le compatibilità delle dimensioni
richieste dalle definizioni delle operazioni stesse.
18
Ad esempio per eseguire la somma tra le matrici A e B deve essere, oltre a r = u e s = v anche ni = mi
e nj = mj , con i = 1, ..., r e j = 1, ..., s.
Se si considerano i blocchi della matrice A di dimensione n × n e per la matrice B, v = 1, u = s e i blocchi
Bi1 di dimensione n × 1, i = 1, ..., s, ovvero la matrice B si scrive come un vettore b di n · s componenti
b1
b = ...
bs
Definizione. Si dice che n vettori a1 , a2 , ..., an di m componenti reali sono linearmente dipendenti se
esistono coefficienti α1 , α2 , ..., αn non tutti nulli per cui
α1 a1 + α2 a2 + ... + αn an = 0 (15)
con 0 il vettore nullo di m componenti. Se i soli coefficienti α1 , α2 , ..., αn per cui vale (15) sono α1 =
α2 = ... = αn = 0, allora i vettori a1 , a2 , ..., an sono linearmente indipendenti.
Gli n vettori di n componenti e1 , e2 , ..., en , ove ei ha componenti nulle ad eccezione della i–esima che è
uguale ad 1, i = 1, ..., n, sono linearmente indipendenti.
Ogni vettore x = [x1 , x2 , ..., xn ]T di n componenti reali può essere scritto come combinazione lineare dei
vettori e1 , e2 , ..., en . I coefficienti della combinazione lineare sono le componenti di x.
x = x1 e1 + x2 e2 + ... + xn en
Definizione. Si dice che gli n vettori di n componenti reali, a1 , a2 , ..., an costituiscono una base per
l’insieme dei vettori di n componenti se essi sono linearmente indipendenti e se un qualsiasi vettore a di
n componenti si può esprimere come una combinazione lineare di a1 , a2 , ..., an
a = α1 a1 + α2 a2 + ... + αn an (16)
19
5.4 Matrice inversa
È possibile introdurre l’operazione di divisione tra matrici essendo nota la moltiplicazione tra matrici,
occorre introdurre il concetto di matrice inversa. Il concetto di matrice inversa vale esclusivamente per
matrici quadrate.
Definizione. Data una matrice A, n × n, si chiama matrice inversa di A e si indica con A−1 , quella
matrice tale che
AA−1 = A−1 A = I
dove con I si è indicata la matrice identità di ordine n.
Le matrici dotate di inversa si dicono non singolari. Pertanto una matrice che non ammette inversa è
singolare.
Se una matrice A ammette inversa, questa è unica.
Una matrice A matrice di ordine 2 ( )
a b
A=
c d
ammette la matrice inversa di elementi
( )
1 d −b
A−1 =
ad − bc −c a
Per la matrice inversa valgono le seguenti proprietà:
• Il prodotto di due matrici AB è una matrice non singolare se e solo se le matrici A e B sono non
singolari. Inoltre:
(AB)−1 = B −1 A−1
•
1 −1
(A−1 )−1 = A; I −1 = I; (αA)−1 = A (con α ∈ R)
α
•
(AT )−1 = (A−1 )T ≡ A−T
• Una matrice diagonale e una matrice triangolare sono non singolari se e solo se tutti gli elementi
diagonali sono non nulli.
• Se A = diag{a11 , ..., ann } è una matrice diagonale di ordine n, allora la matrice inversa è una
matrice diagonale e A−1 = diag{ a111 , ..., ann
1
}.
• Se A = diag{A11 , ..., Ann } è una matrice di ordine m·n, diagonale a blocchi dove i blocchi diagonali,
sottomatrici di ordine m, sono non singolari, allora la matrice inversa è una matrice diagonale a
blocchi e A−1 = diag{A−1 −1
11 , ..., Ann }.
• La matrice inversa di una matrice triangolare inferiore (superiore) è una matrice triangolare infe-
riore (superiore). Per esempio gli elementi bij , i, j = 1, ..., n, della matrice inversa di una matrice
triangolare inferiore di elementi aij , i, j = 1, ..., n, sono:
1
bii = (i = 1, ..., n)
aii
{
0 per i<j
bij = ∑i−1
− a1ii k=j aik bkj per i>j
mentre gli elementi della matrice inversa di una matrice triangolare superiore sono:
1
bii = (i = 1, ..., n)
aii
{
0 per i>j
bij = ∑j−1
− a1ii k=i aik bkj per i<j
20
• Sia A una matrice a blocchi 2 × 2 a coefficienti reali
( )
P Q
A=
0 S
Ax = λx
Si può osservare che anche se una matrice di ordine n non ha n autovalori distinti, può ammettere n
autovettori linearmente indipendenti. Vale comunque il risultato:
Teorema. Sia A una n × n matrice con n autovalori distinti λ1 , λ2 , ..., λn . Allora A ha i corrispondenti
autovettori x1 , x2 , ..., xn linearmente indipendenti.
Inoltre, l’autovettore xj corrispondente all’autovalore λj è unico a meno di scalari non nulli.
Si nota che una matrice A, n × n, a coefficienti reali, può avere autovalori complessi.
Se A ∈ Rn×n è una matrice n × n simmetrica allora:
• i suoi autovalori sono reali, non necessariamente distinti;
• i suoi autovettori sono a due a due ortogonali.
Dunque, una matrice simmetrica ha autovettori linearmente indipendenti.
X −1 AX = Λ
Axi = λi xi i = 1, ..., n
21
altrimenti scritte
λ1
..
A[x1 , ..., xn ] = [x1 , ..., xn ] . =⇒ AX = XΛ
λn
dove X = [x1 , ..., xn ] è la matrice le cui colonne sono gli autovettori di A e Λ è la matrice diagonale
avente elementi diagonali λi , i = 1, ..., n.
Se gli autovettori x1 , ..., xn sono linearmente indipendenti, la matrice X è non singolare dunque ammette
inversa X −1 . Allora X −1 AX = Λ.
Valgono i seguenti risultati per una matrice A ∈ Rn×n :
• se λ è autovalore di A, allora è autovalore di AT ;
• se A è antisimmetrica, i suoi autovalori sono puramente immaginari (hanno parte reale nulla);
• se {λ, x} è un’autocoppia di A, allora {1/λ, x} lo è di A−1 . Dunque una matrice non singolare ha
tutti i suoi autovalori diversi da zero mentre una matrice singolare ha almeno un autovalore nullo;
• se {λ, x} è un’autocoppia di A, allora {λ2 , x} lo è di A2 . In generale, se {λ, x} è un’autocoppia di
A, allora {λk , x} lo è di Ak , con k intero positivo.
Se definiamo il polinomio di matrici come la matrice
22
Una matrice A ∈ Rn×n si dice simmetrica semidefinita negativa se
• è simmetrica;
• per ogni vettore x ̸= 0, xT Ax ≤ 0.
√
Gli autovalori di una matrice ortogonale8 sono ±1 e/o ±i, dove i = −1.
Se una matrice A ortogonale è simmetrica, allora è involutoria,9 i.e., A2 = I.
Definizione. Una matrice di permutazione P è ottenuta dalla matrice identità scambiando le righe o
le colonne di I. Ovvero, indicato con ei l’i–esimo vettore della base canonica, P = [es1 , ..., esn ] con
{s1 , ..., sn } una permutazione di {1, ..., n}.
Il prodotto di più matrici elementari di permutazione formano una matrice di permutazione.
Una matrice di permutazione è ortogonale.
8 Seuna matrice A è ortogonale vale che ∥Ax∥2 = ∥x∥2 per ogni vettore x. Dalla definizione di autovalore, Ax = λx
passando alla norma spettrale si ha
∥Ax∥2 = ∥λx∥2 =⇒ ∥Ax∥2 = |λ| ∥x∥2 =⇒ |λ| = 1
23