Sei sulla pagina 1di 137

AUTOVALORI E VALORI SINGOLARI DI MATRICI

Letizia SCUDERI

Dipartimento di Scienze Matematiche, Politecnico di Torino


letizia.scuderi@polito.it

A.A. 2017/2018

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 1 / 89


Definizione
Data una matrice A ∈ Rn,n , un numero λ (reale o complesso), si dice
autovalore di A se esiste un vettore non nullo x (reale o complesso)
soluzione del sistema omogeneo

Ax = λx

Il vettore x è detto autovettore di A corrispondente all’autovalore λ.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 2 / 89


Definizione
Data una matrice A ∈ Rn,n , un numero λ (reale o complesso), si dice
autovalore di A se esiste un vettore non nullo x (reale o complesso)
soluzione del sistema omogeneo

Ax = λx

Il vettore x è detto autovettore di A corrispondente all’autovalore λ.

È immediato verificare che ogni autovettore è definito a meno di una


costante moltiplicativa.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 2 / 89


Definizione
Data una matrice A ∈ Rn,n , un numero λ (reale o complesso), si dice
autovalore di A se esiste un vettore non nullo x (reale o complesso)
soluzione del sistema omogeneo

Ax = λx

Il vettore x è detto autovettore di A corrispondente all’autovalore λ.

È immediato verificare che ogni autovettore è definito a meno di una


costante moltiplicativa.
Dalla precedente definizione si ha che
λ è un autovalore di A se, e solo se, la matrice A − λI è singolare

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 2 / 89


Pertanto, gli autovalori di A coincidono con le n radici dell’equazione
caratteristica (algebrica di grado n):

det(A − λI) = 0

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 3 / 89


Pertanto, gli autovalori di A coincidono con le n radici dell’equazione
caratteristica (algebrica di grado n):

det(A − λI) = 0

Ne consegue che una matrice quadrata di dimensione n ha esattamente n


autovalori (reali o complessi), non necessariamente distinti tra loro.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 3 / 89


Pertanto, gli autovalori di A coincidono con le n radici dell’equazione
caratteristica (algebrica di grado n):

det(A − λI) = 0

Ne consegue che una matrice quadrata di dimensione n ha esattamente n


autovalori (reali o complessi), non necessariamente distinti tra loro.
Si osservi che, poiché gli elementi di A sono numeri reali, allora
l’equazione caratteristica ha coefficienti reali e, di conseguenza, se A
ammette come autovalore un numero complesso λ, anche il suo coniugato
λ̄ sarà un autovalore.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 3 / 89


Dalla definizione di autovalore-autovettore si deducono immediatamente le
seguenti proprietà.

Proprietà
Se λ1 , λ2 , . . . , λn sono gli autovalori di una matrice A, con
corrispondenti autovettori x1 , x2 , . . . , xn , λk1 , λk2 , . . . , λkn rappresentano
gli n autovalori di Ak . Inoltre, gli autovettori di A sono anche
autovettori di Ak .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 4 / 89


Dalla definizione di autovalore-autovettore si deducono immediatamente le
seguenti proprietà.

Proprietà
Se λ1 , λ2 , . . . , λn sono gli autovalori di una matrice A, con
corrispondenti autovettori x1 , x2 , . . . , xn , λk1 , λk2 , . . . , λkn rappresentano
gli n autovalori di Ak . Inoltre, gli autovettori di A sono anche
autovettori di Ak .
Se λ1 , λ2 , . . . , λn sono gli autovalori di una matrice invertibile A, con
corrispondenti autovettori x1 , x2 , . . . , xn , λ−1 −1 −1
1 , λ2 , . . . , λn
−1
rappresentano gli n autovalori di A . Inoltre, gli autovettori di A
sono anche autovettori di A−1 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 4 / 89


La definizione di autovalore-autovettore

Axi = λi xi , i = 1, . . . , n

consente di scrivere l’identità

(Ax1 , Ax2 , . . . , Axn ) = (λ1 x1 , λ2 x2 , . . . , λn xn )

ovvero
AX = XD
con  
λ1 0
 λ2 
X = (x1 , x2 , . . . , xn ), D=
 
.. 
 . 
0 λn

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 5 / 89


I seguenti comandi Matlab consentono di calcolare gli autovalori e gli
autovettori ad essi associati di una matrice A.

Comandi Matlab
d = eig(A) restituisce il vettore d contenente tutti gli autovalori di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 6 / 89


I seguenti comandi Matlab consentono di calcolare gli autovalori e gli
autovettori ad essi associati di una matrice A.

Comandi Matlab
d = eig(A) restituisce il vettore d contenente tutti gli autovalori di A.
[X,D] = eig(A) restituisce la matrice diagonale D i cui elementi
sono gli autovalori di A e la matrice X i cui vettori colonna sono i
corrispondenti autovettori (cioè l’i-esimo vettore colonna X(:,i) è un
autovettore associato all’autovalore D(i,i)).

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 6 / 89


Definizione
Data una matrice A di ordine n e un vettore non nullo x di dimensione n,
si definisce quoziente di Rayleigh il numero

xH Ax
rA (x) =
xH x
ove xH denota il vettore trasposto coniugato di x, ovvero il vettore i cui
elementi sono i coniugati x̄j degli elementi xj , j = 1, . . . , n. Se gli elementi
di x sono tutti reali, allora xH = xT .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 7 / 89


Definizione
Data una matrice A di ordine n e un vettore non nullo x di dimensione n,
si definisce quoziente di Rayleigh il numero

xH Ax
rA (x) =
xH x
ove xH denota il vettore trasposto coniugato di x, ovvero il vettore i cui
elementi sono i coniugati x̄j degli elementi xj , j = 1, . . . , n. Se gli elementi
di x sono tutti reali, allora xH = xT .

Si osservi che se x è un autovettore con autovalore λ si ha rA (x) = λ.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 7 / 89


Definizione
Data una matrice A di ordine n e un vettore non nullo x di dimensione n,
si definisce quoziente di Rayleigh il numero

xH Ax
rA (x) =
xH x
ove xH denota il vettore trasposto coniugato di x, ovvero il vettore i cui
elementi sono i coniugati x̄j degli elementi xj , j = 1, . . . , n. Se gli elementi
di x sono tutti reali, allora xH = xT .

Si osservi che se x è un autovettore con autovalore λ si ha rA (x) = λ.


Pertanto noto l’autovalore λ di A, un corrispondente autovettore può
essere calcolato risolvendo il sistema omogeneo Ax = λx; viceversa, noto
un autovettore x, l’autovalore λ ad esso associato è fornito dal quoziente
di Rayleigh.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 7 / 89


Utilizzando l’espressione del quoziente di Rayleigh e la definizione di
matrice simmetrica e definita positiva, si dimostra immediatamente la
seguente proprietà.

Proprietà
Una matrice A di ordine n è simmetrica e definita positiva se, e solo se, i
suoi autovalori sono tutti positivi.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 8 / 89


Definizione
Si definisce raggio spettrale della matrice A di ordine n il modulo
dell’autovalore di massimo modulo, cioè

ρ(A) = max {|λi | : λi è autovalore di A}


i=1,...,n

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 9 / 89


Definizione
Si definisce raggio spettrale della matrice A di ordine n il modulo
dell’autovalore di massimo modulo, cioè

ρ(A) = max {|λi | : λi è autovalore di A}


i=1,...,n

Il raggio spettrale di una matrice A si può calcolare mediante l’istruzione


Matlab max(abs(eig(A))).

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 9 / 89


Definizione
Si definisce norma 2 o norma spettrale di A ∈ Rm,n il numero reale
positivo: q
||A||2 = ρ(AT A)

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 10 / 89


Definizione
Si definisce norma 2 o norma spettrale di A ∈ Rm,n il numero reale
positivo: q
||A||2 = ρ(AT A)

Osservazioni
p p
Se A ∈ Rn,n è simmetrica, allora ||A||2 = ρ(A2 ) = ρ(A)2 = ρ(A)
Se A ∈ Rn,n
p è ortogonale,√allora √
||Ax||2 = (Ax)T Ax = xT AT Ax = xT x = ||x||2

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 10 / 89


Definizione
Si definisce norma 2 o norma spettrale di A ∈ Rm,n il numero reale
positivo: q
||A||2 = ρ(AT A)

Osservazioni
p p
Se A ∈ Rn,n è simmetrica, allora ||A||2 = ρ(A2 ) = ρ(A)2 = ρ(A)
Se A ∈ Rn,n
p è ortogonale,√allora √
||Ax||2 = (Ax)T Ax = xT AT Ax = xT x = ||x||2

Comando Matlab
norm(A,2) oppure norm(A) restituisce la norma spettrale della matrice A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 10 / 89


Nell’applicazione di alcuni metodi numerici è necessario localizzare in
modo (più o meno accurato) gli autovalori di A nel piano complesso. A
tale scopo si introducono le seguenti definizioni.

Definizione
Si definisce i-esimo cerchio riga di Gershgorin associato alla i-esima riga
di A l’insieme
 
 n 
(r )
X
Ci = z ∈ C : |z − aii | ≤ |aij | , i = 1, . . . , n
 
j=1,j6=i

Si definisce j-esimo cerchio colonna di Gershgorin associato alla j-esima


colonna di A l’insieme
 
 n 
(c)
X
Cj = z ∈ C : |z − ajj | ≤ |aij | , j = 1, . . . , n
 
i=1,i6=j

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 11 / 89


Teorema
n
(r )
[
Tutti gli autovalori di A appartengono a R = Ci .
i=1

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 12 / 89


Teorema
n
(r )
[
Tutti gli autovalori di A appartengono a R = Ci .
i=1
n
(c)
[
Tutti gli autovalori di A appartengono a C = Cj .
j=1

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 12 / 89


Teorema
n
(r )
[
Tutti gli autovalori di A appartengono a R = Ci .
i=1
n
(c)
[
Tutti gli autovalori di A appartengono a C = Cj .
j=1

Esempio
A sinistra i cerchi riga di Gershgorin e a destra i cerchi colonna per la
matrice: A=[30 1 2 3; 4 15 -4 -2; -1 0 3 5; -3 5 0 1];
Cerchi riga di Gershgorin e autovalori di una matrice Cerchi colonna di Gershgorin e autovalori di una matrice

15
15

10
10

5 5

0 0

−5 −5

−10
−10

−15
−15

−5 0 5 10 15 20 25 30 35 −5 0 5 10 15 20 25 30 35

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 12 / 89


Teorema
Tutti gli autovalori di A appartengono alla regione del piano complesso
individuata dall’intersezione delle regioni R e C.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 13 / 89


Teorema
Tutti gli autovalori di A appartengono alla regione del piano complesso
individuata dall’intersezione delle regioni R e C.

Esempio
La regione in rosso punteggiata in nero rappresenta l’intersezione
dell’unione dei cerchi riga con l’unione dei cerchi colonna associata alla
matrice del precedente esempio. I circoletti verdi rappresentano gli effettivi
autovalori.
Intersezione cerchi riga e colonna di Gershgorin e autovalori di una matrice

15

10

−5

−10

−15

−5 0 5 10 15 20 25 30 35
L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 13 / 89
Teorema
k n
(r ) (r )
[ [
Denotate con R1 = Ci e con R2 = Ci , se risulta
i=1 i=k+1
R1 ∩ R2 = ∅, allora esattamente k autovalori appartengono a R1 e i
restanti n − k appartengono a R2 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 14 / 89


Teorema
k n
(r ) (r )
[ [
Denotate con R1 = Ci e con R2 = Ci , se risulta
i=1 i=k+1
R1 ∩ R2 = ∅, allora esattamente k autovalori appartengono a R1 e i
restanti n − k appartengono a R2 .
k n
(c) (c)
[ [
Denotate con C1 = Cj e con C2 = Cj , se risulta
j=1 j=k+1
C1 ∩ C2 = ∅, allora esattamente k autovalori appartengono a C1 e i
restanti n − k appartengono a C2 .

Esempio
(c)
Per la matrice del precedente esempio, se poniamo C1 = C1 e
4
(c)
[
C2 = Cj , abbiamo C1 ∩ C2 = ∅, e quindi un autovalore appartiene a
j=2
C1 e i restanti tre appartengono a C2 .
L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 14 / 89
Definizione
Due matrici A e B di ordine n si dicono simili se esiste una matrice S, di
ordine n e non singolare, tale che

S−1 AS = B

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 15 / 89


Teorema
Due matrici simili A e B hanno gli stessi autovalori.

Dimostrazione
Siano λ un autovalore di A, x un autovettore a esso corrispondente e
B = S−1 AS. Allora si ha

Ax = λx ⇒ S−1 Ax = λS−1 x ⇒ S−1 ASS−1 x = λS−1 x

⇒ Bz = λz con z = S−1 x
Quindi λ è anche autovalore di B con autovettore z.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 16 / 89


Definizione
Una matrice A con autovalori λi , i = 1, . . . , n, si dice diagonalizzabile se
è simile alla matrice diagonale D = diag(λ1 , λ2 , ..., λn ), ovvero se esiste
una matrice di ordine n e non singolare S tale che

S−1 AS = D = diag(λ1 , λ2 , ..., λn )

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 17 / 89


Definizione
Una matrice A con autovalori λi , i = 1, . . . , n, si dice diagonalizzabile se
è simile alla matrice diagonale D = diag(λ1 , λ2 , ..., λn ), ovvero se esiste
una matrice di ordine n e non singolare S tale che

S−1 AS = D = diag(λ1 , λ2 , ..., λn )

Osservazione
Se A è diagonalizzabile e S−1 AS = D, allora si ha

AS = SD

e, pertanto, le colonne della matrice S sono autovettori di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 17 / 89


Una matrice diagonalizzabile può essere caratterizzata mediante i suoi
autovettori.

Teorema
Una matrice A di ordine n è diagonalizzabile se, e solo se, A possiede n
autovettori linearmente indipendenti.

Ricordando che gli autovettori associati ad autovalori distinti sono


linearmente indipendenti, si ha la seguente condizione sufficiente.

Teorema
Una matrice è diagonalizzabile se i suoi autovalori sono distinti.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 18 / 89


Esempio
Una matrice reale e simmetrica A di ordine n ammette n autovettori
ortogonali tra loro (quindi linearmente indipendenti) e, pertanto, è
diagonalizzabile. In particolare, per essa esiste una matrice ortogonale V
(per la quale V−1 = VT ) tale che

VT AV = D = diag(λ1 , λ2 , ..., λn )

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 19 / 89


Condizionamento del calcolo degli autovalori

Si studia ora il condizionamento del problema del calcolo degli autovalori


di una matrice A ovvero si analizza come eventuali perturbazioni
(corrispondenti, ad esempio, agli errori di arrotondamento o agli errori
sperimentali) presenti negli elementi della matrice si propaghino sugli
autovalori.

Segue un esempio di matrice mal condizionata rispetto al calcolo dei suoi


autovalori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 20 / 89


Esempio
Sia  
101 −90
A=
110 −98
Gli autovalori di A sono λ1 = 2 e λ2 = 1.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 21 / 89


Esempio
Sia  
101 −90
A=
110 −98
Gli autovalori di A sono λ1 = 2 e λ2 = 1.
Denotiamo con  
101 − ε −90 − ε
à =
110 −98
una perturbazione della matrice A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 21 / 89


Esempio
Sia  
101 −90
A=
110 −98
Gli autovalori di A sono λ1 = 2 e λ2 = 1.
Denotiamo con  
101 − ε −90 − ε
à =
110 −98
una perturbazione della matrice A.
Per ε = 0.001, gli autovalori di à sono λ̃1 ≈ 1.701 e λ̃2 ≈ 1.298.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 21 / 89


Esempio
Sia  
101 −90
A=
110 −98
Gli autovalori di A sono λ1 = 2 e λ2 = 1.
Denotiamo con  
101 − ε −90 − ε
à =
110 −98
una perturbazione della matrice A.
Per ε = 0.001, gli autovalori di à sono λ̃1 ≈ 1.701 e λ̃2 ≈ 1.298.
Si osservi che ||A − Ã||2 ≈ 0.001, mentre |λ1 − λ̃1 |,|λ2 − λ̃2 | ≈ 0.3.
Pertanto, a una perturbazione assoluta pari allo 0.1% sugli elementi della
matrice è corrisposta una variazione del 30% sugli autovalori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 21 / 89


Una misura del condizionamento del calcolo degli autovalori, nel caso di
matrici diagonalizzabili, è fornita dal seguente teorema.

Teorema (Bauer-Fike)
Sia A una matrice diagonalizzabile e sia S invertibile tale che
S−1 AS = D con D = diag(λ1 , λ2 , ..., λn ). Sia A
e una perturbazione della
matrice A e sia λ
e un autovalore di A.
e Allora

min |λ
e − λi | ≤ K (S)||A − A||
e
1≤i≤n

dove K (S) = ||S|| ||S−1 || e || · || indica una qualsiasi delle norme di matrice
|| · ||p , con p = 1, 2, ∞.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 22 / 89


Il numero K (S) può essere assunto come numero di condizionamento del
problema degli autovalori di una matrice diagonalizzabile A:
se K (S) ≈ 1 il problema è ben condizionato, altrimenti il problema può
essere mal condizionato.

Esempio
Per l’esempio precedente, tenendo conto che gli autovalori di A sono
distinti e quindi A è diagonalizzabile, si ha
>> A = [101 -90; 110 -98];
>> [S,D] = eig(A);
>> condizionamento = cond(S)
condizionamento =
4.0000e+02

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 23 / 89


Osservazioni
Se A è simmetrica, allora A è diagonalizzabile con S ortogonale e
q q
K2 (S) = ||S||2 ||ST ||2 = ρ(ST S) ρ(SST ) = 1

Pertanto, per le matrici simmetriche il calcolo degli autovalori è un


problema ben condizionato.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 24 / 89


... continua osservazioni
Il condizionamento del problema del calcolo degli autovalori per una
matrice diagonalizzabile A non dipende dal numero di
condizionamento K (A) della matrice A, ma dal numero di
condizionamento K (S) della matrice S degli autovettori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 25 / 89


... continua osservazioni
Il condizionamento del problema del calcolo degli autovalori per una
matrice diagonalizzabile A non dipende dal numero di
condizionamento K (A) della matrice A, ma dal numero di
condizionamento K (S) della matrice S degli autovettori.
Il calcolo degli autovalori di una matrice mal condizionata non è
necessariamente un problema mal condizionato; per esempio, la
matrice di Hilbert Hn ha un numero di condizionamento K (Hn )
grande per n grande ma, essendo simmetrica, è ben condizionata per
quanto riguarda il calcolo degli autovalori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 25 / 89


Il seguente comando Matlab consente di calcolare il numero di
condizionamento di ciascun autovalore.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 26 / 89


Il seguente comando Matlab consente di calcolare il numero di
condizionamento di ciascun autovalore.

Comando Matlab
c = condeig(A) restituisce il vettore c contenente i numeri di
condizionamento di ciascun autovalore della matrice A. Se c(i),
i = 1, . . . , n, è circa 1, allora il calcolo di λi è ben condizionato, altrimenti
può essere mal condizionato.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 26 / 89


Il seguente comando Matlab consente di calcolare il numero di
condizionamento di ciascun autovalore.

Comando Matlab
c = condeig(A) restituisce il vettore c contenente i numeri di
condizionamento di ciascun autovalore della matrice A. Se c(i),
i = 1, . . . , n, è circa 1, allora il calcolo di λi è ben condizionato, altrimenti
può essere mal condizionato.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 26 / 89


Esempio 1
Calcoliamo gli autovalori della matrice
A=[1 2 -2; 1 1 1; 2 2 1]
e i corrispondenti numeri di condizionamento.
>> format short e
>> A = [1 2 -2; 1 1 1; 2 2 1];
>> d = eig(A)
d =
1.0000e+00 + 1.3398e-05i
1.0000e+00 - 1.3398e-05i
9.9998e-01
>> c = condeig(A)
c =
1.1818e+10
1.1818e+10
1.1818e+10
Gli autovalori calcolati e memorizzati in d non sono affidabili, perché il
numero di condizionamento degli autovalori è dell’ordine di 1010 .
Infatti, l’equazione caratteristica associata ad A è (1 − λ)3 = 0 e,
pertanto, λ1 = λ2 = λ3 = 1.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 27 / 89


Esempio 2
Calcoliamo gli autovalori della matrice
A=[1 2 -2; 2 1 1; -2 2 1]
e i corrispondenti numeri di condizionamento.
>> A = [1 2 -2; 2 1 1; -2 2 1];
>> d = eig(A)
d =
-2.6458e+00
3.0000e+00
2.6458e+00
>> c = condeig(A)
c =
1.0119e+00
2.0000e+00
2.0119e+00
Gli autovalori calcolati e memorizzati in d sono affidabili, perché il
condizionamento di ciascun autovalore è all’incirca 1.
Infatti, l’equazione caratteristica associata√alla matrice A è √
(3 − λ)(λ2 − 7) = 0 e, pertanto, λ1 = − 7, λ2 = 3 e λ3 = 7.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 28 / 89


Metodi numerici

Per il calcolo degli autovalori e autovettori di una matrice A, la procedura


matematica − calcolo delle radici λ dell’equazione caratteristica e
risoluzione del sistema omogeneo Ax = λx − non è, in generale, una
procedura numerica conveniente sia per il costo che per la stabilità.
Per il calcolo degli autovalori di una matrice esistono metodi numerici
alternativi.
I metodi numerici si classificano in due gruppi:
metodi per l’approssimazione di un solo autovalore, che in alcuni casi
richiedono la localizzazione dell’autovalore cercato;
metodi per l’approssimazione simultanea di tutti gli autovalori, che si
basano sulle similitudini di matrici.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 29 / 89


Metodi per l’approssimazione di un autovalore

I metodi per l’approssimazione di un autovalore generano, attraverso


procedimenti iterativi, una successione di autovalori convergente
all’autovalore cercato.
Metodo delle potenze
Il metodo delle potenze consente di calcolare l’autovalore di modulo
massimo di una matrice A e, conseguentemente, il raggio spettrale ρ(A).
Per introdurre l’idea del metodo, per semplicità, si supponga che A sia
reale, diagonalizzabile e che, indicati con λk , k = 1, ..., n, i suoi
autovalori, esista un solo autovalore di modulo massimo, ossia

|λ1 | > |λ2 | ≥ |λ3 | ≥ ... ≥ |λn |

Si osservi che, poiché A è reale, la prima diseguaglianza stretta comporta


che λ1 sia certamente reale.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 30 / 89


Si denotino con x1 , x2 , . . . , xn , n autovettori corrispondenti agli autovalori
λ1 , λ2 , . . . , λn , rispettivamente. Essendo A diagonalizzabile, i vettori xk
sono linearmente indipendenti e, pertanto, ogni vettore z ∈ Rn si
rappresenta come
z = α1 x1 + α2 x2 + ... + αn xn
per opportuni coefficienti αk .
Moltiplicando ambo i membri a sinistra per la matrice A, si ha

Az = α1 Ax1 + α2 Ax2 + ... + αn Axn = α1 λ1 x1 + α2 λ2 x2 + ... + αn λn xn

Moltiplicando nuovamente per A,

A2 z = A(Az) = α1 λ21 x1 + α2 λ22 x2 + ... + αn λ2n xn

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 31 / 89


Iterando la procedura, dopo m moltiplicazioni1 per A, si ottiene

z(m) := Am z = α1 λm m m
1 x1 + α2 λ2 x2 + ... + αn λn xn

Tale vettore si può riscrivere come


  m  m 
(m) m λ2 λn
z = λ1 α1 x1 + α2 x2 + ... + αn xn =: λm
1y
(m)
λ1 λ1

Poiché per ipotesi |λ1 | > |λk | per k > 1, si ha


 m m
αk λk = |αk | λk → 0 per m → ∞

λ1 λ1

e ciò comporta che


y(m) → α1 x1 per m → ∞
Pertanto, supponendo α1 6= 0, il vettore y(m) tende ad allinearsi al primo
autovettore x1 della matrice A.
1
Il nome del metodo deriva dalla presenza delle potenze di A.
L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 32 / 89
Corrispondentemente anche il vettore z(m) = λm 1y
(m) tende ad allinearsi a

x1 , ma la sua lunghezza tende a 0 oppure a ∞ a seconda che |λ1 | < 1


oppure |λ1 | > 1. È quindi opportuno, per evitare fenomeni di underflow o
overflow, normalizzare tale vettore, riportandolo a ogni iterazione ad avere
lunghezza unitaria.
Partendo da un vettore iniziale z(0) := z, si costruisce quindi per
m = 0, 1, 2, ... la successione di vettori

z(m)
w(m) =
||z(m) ||2

z(m+1) = Aw(m)

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 33 / 89


Per quanto riguarda l’approssimazione dell’autovalore λ1 , si osservi che se
w(m) approssima un autovettore x1 relativo all’autovalore λ1 , allora

Aw(m) ≈ λ1 w(m)

e
(w(m) )T Aw(m) ≈ λ1 (w(m) )T w(m)

Appare quindi naturale approssimare l’autovalore λ1 al passo m mediante


il quoziente di Rayleigh

(m) (w(m) )T Aw(m)


λ1 = = (w(m) )T Aw(m) = (w(m) )T z(m+1)
(w(m) )T w(m)
T
ove si è tenuto conto che w(m) w(m) = ||w(m) ||22 = 1 e Aw(m) = z(m+1) .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 34 / 89


Di seguito l’algoritmo che implementa il metodo delle potenze.

Function Matlab
function [lambda max,w,m] = potenze(A,z,tol,m max)
w = z/norm(z);
lambda = 0;
for m = 1:m max
z = A*w;
lambda max = w’*z ;
w = z/norm(z);
if abs(lambda max-lambda) <= tol*abs(lambda max)
break
end
lambda = lambda max;
end

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 35 / 89


Osservazioni
L’ipotesi che il vettore iniziale z(0) abbia componente non nulla
rispetto all’autovettore x1 (cioè l’ipotesi α1 6= 0) non è restrittiva
nella pratica perché, grazie questa volta agli errori di arrotondamento,
dopo poche iterazioni compare una componente nella direzione di x1 ,
anche se questa non era presente nel vettore iniziale z(0) .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 36 / 89


Osservazioni
L’ipotesi che il vettore iniziale z(0) abbia componente non nulla
rispetto all’autovettore x1 (cioè l’ipotesi α1 6= 0) non è restrittiva
nella pratica perché, grazie questa volta agli errori di arrotondamento,
dopo poche iterazioni compare una componente nella direzione di x1 ,
anche se questa non era presente nel vettore iniziale z(0) .
Se λ1 = λ2 = ... = λk e |λ1 | > |λk+1 | ≥ ... ≥ |λn | il metodo delle
potenze converge (lentamente) ancora a λ1 e a un autovettore ad
esso associato.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 36 / 89


... continua osservazioni
Se λ1 = −λ2 , cioè se esistono due autovalori distinti di ugual modulo
massimo, allora in generale il metodo delle potenze non converge.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 37 / 89


... continua osservazioni
Se λ1 = −λ2 , cioè se esistono due autovalori distinti di ugual modulo
massimo, allora in generale il metodo delle potenze non converge.
Se λ1 e λ2 sono complessi e coniugati, cioè se esistono due autovalori
complessi distinti di ugual modulo massimo, allora il metodo delle
potenze non converge perché, cosı̀ come è stato formulato, non può
convergere ad autovettori e autovalori complessi.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 37 / 89


... continua osservazioni
(m)
Per una generica matrice A, la velocità
m di convergenza di λ1 a λ1
λ2
per m → ∞ è pari a quella con cui λ1 → 0 per m → ∞.
Si può dimostrare che per una matrice simmetrica A la convergenza è
più rapida perchè dipende dal quadrato del suddetto rapporto, ossia la
(m)
velocità di convergenza di λ1 a λ1 per m → ∞ è pari a quella con
2m
cui λλ21 → 0 per m → ∞.

(m)
Se |λ2 | ≈ |λ1 | la convergenza della successione λ1 a λ1 può risultare
eccessivamente lenta. In questa situazione il metodo viene utilizzato
solo per una stima iniziale, da migliorare successivamente con un
metodo più veloce (per esempio, il metodo delle potenze inverse).

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 38 / 89


Metodo delle potenze inverse
Una variante del metodo delle potenze, detta metodo delle potenze
inverse, consente di approssimare un qualunque autovalore λ di A purché
se ne conosca un’approssimazione p.
Infatti, osservando che da Ax = λx segue

(A − pI)x = Ax − px = (λ − p)x

si ha che λ − p è autovalore della matrice A − pI con autovettore x.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 39 / 89


Metodo delle potenze inverse
Una variante del metodo delle potenze, detta metodo delle potenze
inverse, consente di approssimare un qualunque autovalore λ di A purché
se ne conosca un’approssimazione p.
Infatti, osservando che da Ax = λx segue

(A − pI)x = Ax − px = (λ − p)x

si ha che λ − p è autovalore della matrice A − pI con autovettore x.


Conseguentemente,
1
(A − pI)−1 x = x
λ−p
e, dunque, (λ − p)−1 è autovalore della matrice (A − pI)−1 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 39 / 89


Se allora p è sufficientemente vicino a un autovalore λ di A, il numero
µ = λ−p1
è l’autovalore di modulo massimo di (A − pI)−1 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 40 / 89


Se allora p è sufficientemente vicino a un autovalore λ di A, il numero
µ = λ−p1
è l’autovalore di modulo massimo di (A − pI)−1 .
Pertanto, applicando il metodo delle potenze alla matrice (A − pI)−1 , si
determina µ e, quindi,
1
λ=p+
µ

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 40 / 89


Osservazione
Nell’algoritmo che implementa il metodo delle potenze occorrerebbe allora
sostituire A con (A − pI)−1 ma, tenendo conto che

z(m+1) = (A − pI)−1 w(m) ⇐⇒ (A − pI)z(m+1) = w(m) ,

non è necessario né conveniente invertire la matrice A − pI, ma è


sufficiente calcolare la sua fattorizzazione PA=LU una volta per tutte e, a
ogni passo, calcolare la soluzione del sistema (A − pI)z(m+1) = w(m)
mediante la risoluzione di due sistemi triangolari.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 41 / 89


Di seguito l’algoritmo che implementa il metodo delle potenze inverse.

Function Matlab
function [lambda p,w,m] = potenze inverse(A,p,z,tol,m max)
n = size(A);
w = z/norm(z);
lambda = 0;
[L,U,P] = lu(A-p*eye(n));
for m = 1:m max
y = L\(P*w);
z = U\y;
lambda p = p+1/(w’*z);
w = z/norm(z);
if abs(lambda p-lambda) <= tol*abs(lambda p)
break
end
lambda = lambda p;
end

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 42 / 89


Osservazioni
Se si assume p = 0 il metodo delle potenze inverse permette di
approssimare l’autovalore di minimo modulo di A, nell’ipotesi che
esista un solo autovalore (reale) di modulo minimo.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 43 / 89


Osservazioni
Se si assume p = 0 il metodo delle potenze inverse permette di
approssimare l’autovalore di minimo modulo di A, nell’ipotesi che
esista un solo autovalore (reale) di modulo minimo.
Un’approssimazione di p può essere ottenuta mediante i cerchi di
Gershgorin.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 43 / 89


Osservazioni
Se si assume p = 0 il metodo delle potenze inverse permette di
approssimare l’autovalore di minimo modulo di A, nell’ipotesi che
esista un solo autovalore (reale) di modulo minimo.
Un’approssimazione di p può essere ottenuta mediante i cerchi di
Gershgorin.
Il valore di p potrebbe essere modificato nel corso delle iterazioni,
ponendo p = λ(m+1) . Ciò comporta una diminuzione del numero di
iterazioni necessarie per soddisfare il test d’arresto, ma anche un
considerevole aumento del costo computazionale in quanto la matrice
(A − pI)−1 cambia a ogni passo e non sarà più possibile fattorizzarla
una volta per tutte prima del processo iterativo.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 43 / 89


Assegnata una matrice A, i seguenti comandi Matlab ci consentono di
calcolare solo alcuni suoi autovalori, per esempio quelli più grandi in
modulo oppure quelli più vicini a un dato valore p.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 44 / 89


Assegnata una matrice A, i seguenti comandi Matlab ci consentono di
calcolare solo alcuni suoi autovalori, per esempio quelli più grandi in
modulo oppure quelli più vicini a un dato valore p.

Comandi Matlab
[X,D] = eigs(A,k) restituisce in D e in X rispettivamente, i k
autovalori di A di modulo più grande e i corrispondenti autovettori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 44 / 89


Assegnata una matrice A, i seguenti comandi Matlab ci consentono di
calcolare solo alcuni suoi autovalori, per esempio quelli più grandi in
modulo oppure quelli più vicini a un dato valore p.

Comandi Matlab
[X,D] = eigs(A,k) restituisce in D e in X rispettivamente, i k
autovalori di A di modulo più grande e i corrispondenti autovettori.
[X,D] = eigs(A,k,p) restituisce in D e in X rispettivamente, i k
autovalori di A più vicini a p e i corrispondenti autovettori.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 44 / 89


Metodi per l’approssimazione di tutti gli autovalori

Metodo QR
Il metodo più efficiente e più usato per il calcolo di tutti gli autovalori, ed
eventualmente autovettori, di una matrice A è il metodo QR, il cui nome
deriva dal fatto che esso di basa sulla fattorizzazione A = QR.
Il metodo verrà descritto solo nella forma più elementare, che non sempre
però garantisce la convergenza agli autovalori di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 45 / 89


Nel metodo QR viene generata una successione di matrici nel modo
seguente: posto
A1 := A
per k = 1, 2 . . . si calcola una fattorizzazione QR della matrice Ak ,

A k = Q k Rk

ove Qk è ortogonale e Rk è triangolare superiore, e si definisce la matrice


Ak+1 mediante la relazione

Ak+1 := Rk Qk

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 46 / 89


Dalle precedenti relazioni risulta che A2 è simile ad A1 = A

A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1

e quindi A2 ha gli stessi autovalori di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 47 / 89


Dalle precedenti relazioni risulta che A2 è simile ad A1 = A

A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1

e quindi A2 ha gli stessi autovalori di A.


Tenendo conto che la relazione di similitudine è transitiva e che Ak+1 è
simile ad Ak , le matrici Ak della successione sono tutte simili tra loro e,
quindi, alla matrice assegnata A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 47 / 89


Dalle precedenti relazioni risulta che A2 è simile ad A1 = A

A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1

e quindi A2 ha gli stessi autovalori di A.


Tenendo conto che la relazione di similitudine è transitiva e che Ak+1 è
simile ad Ak , le matrici Ak della successione sono tutte simili tra loro e,
quindi, alla matrice assegnata A.
Inoltre, se A è simmetrica, tutte le Ak lo sono; se A è di Hessenberg
superiore tutte le Ak lo sono.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 47 / 89


Sotto opportune ipotesi, la successione di matrici Ak converge per k → ∞
verso una matrice limite A∞ con le seguenti proprietà:
se la matrice A è simmetrica, allora A∞ è diagonale; gli elementi sulla
diagonale sono gli autovalori di A;

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 48 / 89


Sotto opportune ipotesi, la successione di matrici Ak converge per k → ∞
verso una matrice limite A∞ con le seguenti proprietà:
se la matrice A è simmetrica, allora A∞ è diagonale; gli elementi sulla
diagonale sono gli autovalori di A;
se la matrice A non è simmetrica, ma ha autovalori tutti reali, allora
A∞ è triangolare superiore; gli elementi sulla diagonale sono gli
autovalori di A;

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 48 / 89


Sotto opportune ipotesi, la successione di matrici Ak converge per k → ∞
verso una matrice limite A∞ con le seguenti proprietà:
se la matrice A è simmetrica, allora A∞ è diagonale; gli elementi sulla
diagonale sono gli autovalori di A;
se la matrice A non è simmetrica, ma ha autovalori tutti reali, allora
A∞ è triangolare superiore; gli elementi sulla diagonale sono gli
autovalori di A;
se la matrice A non è simmetrica e ha alcuni autovalori complessi
(coniugati), allora A∞ è quasi triangolare superiore, ossia presenta
lungo la diagonale sottomatrici 1 × 1 contenenti gli autovalori reali di
A, e sottomatrici 2 × 2, i cui autovalori sono una coppia di autovalori
complessi coniugati di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 48 / 89


Osservazioni
La convergenza del metodo nella sua versione base è garantita se la
matrice A ha autovalori tutti distinti.
Il metodo QR è alla base della function MATLAB eig.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 49 / 89


Osservazioni
La convergenza del metodo nella sua versione base è garantita se la
matrice A ha autovalori tutti distinti.
Il metodo QR è alla base della function MATLAB eig.

Di seguito l’algoritmo che implementa la versione base del metodo QR.

Function Matlab
function [d,m] = qr base(A,tol,m max)
% la convergenza e’ garantita solo se A ha autovalori distinti in modulo
for m = 1:m max
[Q,R] = qr(A);
A = R*Q;
if norm(tril(A,-1),inf) <= tol
break
end
end
d = diag(A);

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 49 / 89


Applicazione 1. Viabilità interurbana
Consideriamo n città e sia A la matrice di ordine n con elementi

1, se la città i ha un collegamento diretto con la città j;
aij =
0, altrimenti.

Si può dimostrare che le componenti dell’autovettore x (di norma unitaria)


associato all’autovalore di modulo massimo forniscono una misura della
facilità di accesso alle varie città.
La città più facilmente raggiungibile è quella associata alla componente di
x più grande in modulo, mentre la peggiore è quella associata alla
componente più piccola in modulo.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 50 / 89


... continua esempio
In figura si riporta una rappresentazione schematica delle connessioni
ferroviarie in Piemonte tra i capoluoghi di provincia: 1 Torino, 2 Cuneo, 3
Asti, 4 Vercelli, 5 Biella, 6 Verbania, 7 Novara, 8 Alessandria.

5
7
1 4

3
8

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 51 / 89


... continua esempio
La matrice A di ordine 8 associata alla rete ferroviaria in figura è
 
1 1 1 1 1 0 0 0
 1 1 1 0 0 0 0 0 
 
 1 1 1 0 0 0 0 1 
 
 1 0 0 1 0 0 1 0 
 
 1 0 0 0 1 1 0 0 
 
 0 0 0 0 1 1 1 0 
 
 0 0 0 1 0 1 1 0 
0 0 1 0 0 0 0 1

e l’autovettore x di lunghezza unitaria associato all’autovalore di modulo


massimo di A è
x = (0.5772, 0.4059, 0.4564, 0.3038, 0.3038, 0.1964, 0.1964, 0.1792)T
Pertanto, la città più facilmente raggiungibile è quella associata alla
componente 1, cioè Torino, mentre la città meno facilmente raggiungibile
è Alessandria, associata alla componente 8.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 52 / 89


Applicazione 2. (Siti web)
Procedendo in maniera analoga all’applicazione 2, è possibile misurare
l’importanza di un determinato sito web tenendo conto dei siti che
puntano ad esso. Denotando con n il numero dei principali siti riguardanti
un determinato argomento, e con A la matrice di ordine n con elementi

1, se il sito web j ha un link al sito web i
aij =
0, altrimenti,

le componenti dell’autovettore x (di norma unitaria) associato


all’autovalore di modulo massimo forniscono una misura dell’importanza
dei vari siti: il sito più importante è quello che corrisponde alla
componente maggiore di tale autovettore.
In questo modo, quando si esegue una ricerca in rete, si riceve una lista di
siti in ordine di importanza decrescente, con ai primi posti i siti più visitati
e interessanti. Questa è, ad esempio, l’idea utilizzata dal motore di ricerca
Google.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 53 / 89


Valori singolari e decomposizione SVD

Le nozioni di autovalore, determinante e inversa perdono di significato per


una matrice rettangolare; esse vengono sostituite rispettivamente con le
nozioni più generali di valore singolare, rango e pseudo-inversa di una
matrice.
Il termine valore singolare è collegato al fatto che mediante tali quantità è
possibile misurare la distanza di una matrice dall’insieme delle matrici
singolari.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 54 / 89


Teorema
Ogni matrice A ∈ Rm,n è fattorizzabile nella forma

UT AV = S = diag(s1 , ..., sp ) ∈ Rm,n , p = min{m, n}

con U ∈ Rm,m e V ∈ Rn,n matrici ortogonali, e

s1 ≥ s2 ≥ ... ≥ sp ≥ 0

La matrice S è univocamente determinata, mentre U e V non lo sono.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 55 / 89


Definizioni
La fattorizzazione UT AV = S è detta decomposizione ai valori singolari
di A (o Singular Value Decomposition, SVD).
I valori si sono detti valori singolari di A.
I vettori colonna vi per i = 1, . . . , n della matrice V e ui per i = 1, . . . , m
della matrice U sono definiti vettori singolari destri e vettori singolari
sinistri della matrice A, rispettivamente.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 56 / 89


Definizioni
La fattorizzazione UT AV = S è detta decomposizione ai valori singolari
di A (o Singular Value Decomposition, SVD).
I valori si sono detti valori singolari di A.
I vettori colonna vi per i = 1, . . . , n della matrice V e ui per i = 1, . . . , m
della matrice U sono definiti vettori singolari destri e vettori singolari
sinistri della matrice A, rispettivamente.

Tenendo conto che U e V sono ortogonali, la decomposizione ai valori


singolari si può scrivere anche nella seguente forma:

A = USVT

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 56 / 89


La matrice S ∈ Rm,n ha una delle seguenti forme
 
s1 0 ... ... 0 0 0
 0 s2 ... ... 0 0 0 
S=  se p = m (m < n),
 
.. .. .. .. ..
 . . . . . 0 0 
0 0 ... . . . sm 0 0
oppure
 
s1 0 ... ... 0
 0 s2 ... ... 0 
.. .. . 
 
.. ..
. .. 

 . . .
S= .. ..
 se p = n (m > n),
 .. .. 

 . . . . sn 

 0 0 ... ... 0 
0 0 ... ... 0
oppure

S = diag(s1 , . . . , sn ) ∈ Rn,n se p = m = n.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 57 / 89


Sia S ∈ Rm,n con m > n. Allora si ha
 
s1 0 ... ... 0  
v1T
 0 s2 ... ... 0 

.. .. .. .. .  v2T 
. .. 
 
. . . ..
USVT =
  
u1 u2 . . . . . . . . . um 
.. .. .. ..
 . 
..
  
 . . . . sn   
  . 
0 0 ... ... 0 
vnT

0 0 ... ... 0
s1 v1T
 
 s2 v2T 
..
 
 .

= u1 u2 . . . . . . . . . um
 
 sn vnT
 

 
 0 
0
n
X
= u1 s1 v1T + . . . + un sn vnT = si ui viT
i=1
T Pp T
In generale vale USV = i=1 si ui vi
L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 58 / 89
I seguenti comandi Matlab consentono di calcolare i valori singolari e i
fattori U, S e V della decomposizione ai valori singolari della matrice A.

Comandi Matlab
d = svd(A) restituisce il vettore d contenente, in ordine decrescente,
i valori singolari di A.
[U,S,V] = svd(A) restituisce la matrice diagonale S, delle stesse
dimensioni di A e con elementi diagonali (non negativi e in ordine
decrescente) coincidenti con i valori singolari, e due matrici ortogonali
U e V tali che A = USVT .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 59 / 89


Il calcolo dei valori singolari di una matrice A è un problema sempre ben
condizionato. Si può infatti dimostrare il seguente teorema.

Teorema
Sia A ∈ Rm,n e Ā una sua perturbazione. Siano si e s̄i i valori singolari di
A e di Ā, rispettivamente. Si ha1

|si − s̄i | ≤ ||Ā − A||2 , i = 1, .., p

1
Il concetto di norma può essere estesopanche a matrici rettangolari A ∈ Rm,n . In
particolare, per la norma 2 si ha ||A||2 = ρ(AT A).
L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 60 / 89
Proprietà della decomposizione SVD

Teorema
Sia A ∈ Rm,n e sia
A = USVT
la sua decomposizione ai valori singolari. Se risulta

s1 ≥ s2 ≥ . . . ≥ sr > sr +1 = . . . = sp = 0

allora
1) Il rango di A è r .
2) A = Ur Sr VrT = ri=1 si ui viT ove
P

Ur ∈ Rm,r è la matrice le cui colonne sono u1 , ..., ur ,


Vr ∈ Rn,r è la matrice le cui colonne sono v1 , ..., vr ,
Sr ∈ Rr ,r è la matrice diagonale i cui elementi diagonali sono s1 , ..., sr .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 61 / 89


... continua teorema
3) Le colonne u1 , ..., ur di U formano una base ortonormale dello spazio
vettoriale immagine di A, cioè di Im(A) = {Ax : x ∈ Rn }.
4) Le colonne vr +1 , ..., vn di V formano una base ortonormale dello
spazio vettoriale nucleo di A, cioè di Ker(A) = {x ∈ Rn : Ax = 0}.
5) Le colonne ur +1 , ..., um formano una base ortonormale dello spazio
vettoriale Ker(AT ).
6) Le colonne v1 , ..., vr formano una base ortonormale dello spazio
vettoriale Im(AT ).

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 62 / 89


... continua teorema
7) λi = si2 , i = 1, ..., r , sono gli autovalori della matrice AT A ∈ Rn,n (i
restanti n − r autovalori sono nulli) e i corrispondenti autovettori
formano la matrice ortogonale V.
8) µi = si2 , i = 1, ..., r , sono gli autovalori della matrice AAT ∈ Rm,m (i
restanti m − r autovalori sono nulli) e i corrispondenti autovettori
formano la matrice ortogonale U.
9) ||A||2 = s1 .
10) Se m = n e A è simmetrica, allora si = |λi |, i = 1, . . . , n e i vettori
singolari destri e sinistri coincidono con gli autovettori di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 63 / 89


Osservazione
In virtù della proprietà 7), in teoria si potrebbe pensare di determinare i
valori singolari di A, calcolando gli autovalori della matrice simmetrica
AT A. Questa procedura, come mostra l’esempio che segue, può però
portare a una perdita di accuratezza.

Esempio
Consideriamo la matrice
 
1 1

A =  ε 0  , |ε| < eps
0 ε

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 64 / 89


... continua esempio
Calcoliamo
1 + ε2
 
T 1
A A=
1 1 + ε2

È facile verificare che gli autovalori di√AT A sono λ1 = 2 + ε2 e λ2 = ε2 ; i


valori singolari di A sono allora s1 = 2 + ε2 e s2 = |ε|.
In aritmetica finita con precisione di macchina εm , denotate con A e AT A
le matrici di macchina associate ad A e ad AT A rispettivamente, si ha
 
1 1
A = A, AT A =
1 1

Gli autovalori di AT A sono


√ η1 = 2 e η2 = 0 e, di conseguenza, i valori
singolari di A sono σ1 √
= 2 e σ2 = 0. Pertanto, nella aritmetica fissata,
σ1 concorda con s̄1 = 2, mentre σ2 non concorda con s̄2 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 65 / 89


Teorema
Sia A ∈ Rm,n e sia
A = USVT
la sua decomposizione ai valori singolari, con

s1 ≥ s2 ≥ . . . ≥ sr > sr +1 = . . . = sp = 0

e sia k un intero positivo minore o uguale a r . Indicando con


k
X
Ak = si ui viT
i=1

e
Bk = {B : rango di B è k}
si ha
min ||A − B||2 = ||A − Ak ||2 = sk+1
B∈Bk

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 66 / 89


Il precedente teorema stabilisce due importanti risultati:
la matrice Ak rappresenta la migliore approssimazione in norma 2 di
rango k della matrice A;
sk+1 rappresenta la minima distanza in norma 2 della matrice A
dall’insieme delle matrici di rango k.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 67 / 89


Applicazioni della decomposizione SVD

Descriviamo ora alcune importanti applicazioni della decomposizione ai


valori singolari.
Applicazione 1. Calcolo del rango di una matrice
La decomposizione ai valori singolari costituisce lo strumento più efficace
per la determinazione del rango di una matrice.
Il rango di una matrice coincide con il numero dei suoi valori singolari
diversi da zero, cioè se risulta

s1 ≥ s2 ≥ . . . ≥ sr > sr +1 = . . . = sp = 0,

allora il rango di A è r .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 68 / 89


Tuttavia, in precisione finita di calcolo, i valori singolari devono essere
selezionati sulla base di una tolleranza tol; pertanto, si definisce rango
numerico, il numero dei valori singolari maggiori di una tolleranza fissata.

Comandi Matlab
r = rank(A) restituisce in r il rango della matrice A sulla base di
una tolleranza di default, che dipende dalla matrice fornita in input e
dalla precisione di macchina.
r = rank(A,tol) restituisce in r il rango numerico della matrice A,
calcolato come il numero dei valori singolari maggiori della tolleranza
tol.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 69 / 89


Applicazione 2. Calcolo del condizionamento di una matrice
La decomposizione ai valori singolari costituisce uno strumento efficace per
la determinazione del condizionamento spettrale di una matrice.
Sia A una matrice di ordine n e di rango n, allora esistono due matrici
ortogonali U e V tali che A = USVT dove S è diagonale con elementi
(S)ii = si > 0, i = 1, . . . , n. Si ha
q q q
||A||2 = ρ(AT A) = ρ(VST UT USVT ) = ρ(VS2 VT )
q
= ρ(S2 ) = s1

Analogamente si dimostra che ||A−1 ||2 = 1/sn . Pertanto,


s1
K2 (A) = ||A||2 ||A−1 ||2 =
sn

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 70 / 89


Applicazione 3. Risoluzione del sistema lineare Ax = b
Dato il sistema lineare Ax = b, con A di dimensione n e non singolare, e
nota la decomposizione A = USVT , è possibile ottenere la soluzione x
mediante la risoluzione di un sistema diagonale e di due prodotti
matrice-vettore:
(
Sy = UT b ⇒ y
USVT x = b =⇒ S |{z}VT x = UT b =⇒
y
VT x = y ⇒ x = Vy

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 71 / 89


Applicazione 3. Risoluzione del sistema lineare Ax = b
Dato il sistema lineare Ax = b, con A di dimensione n e non singolare, e
nota la decomposizione A = USVT , è possibile ottenere la soluzione x
mediante la risoluzione di un sistema diagonale e di due prodotti
matrice-vettore:
(
Sy = UT b ⇒ y
USVT x = b =⇒ S |{z}VT x = UT b =⇒
y
VT x = y ⇒ x = Vy

Il costo di tale algoritmo, quando occorre calcolare la decomposizione ai


valori singolari, è all’incirca pari a 32/3n3 operazioni aritmetiche per n
grande. Pertanto, avendo un costo di gran lunga superiore a quello
richiesto dalla fattorizzazione PA = LU, la decomposizione SVD non viene
generalmente utilizzata per risolvere sistemi lineari. Tuttavia, essa risulta
preferibile a PA = LU quando il sistema è mal condizionato e prossimo ad
essere singolare.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 71 / 89


Applicazione 4. Risoluzione di un sistema lineare
sovradeterminato
Si consideri il sistema lineare Ax = b con A di dimensione m × n, con
m ≥ n. Si supponga che il rango di A sia uguale a r ≤ n.
Si determina come soluzione del suddetto sistema, il vettore x? di minima
norma e soluzione del seguente problema dei minimi quadrati

||Ax? − b||2 = minn ||Ax − b||2


x∈R

Per calcolare x? verrà utilizzata la decomposizione ai valori singolari


A = USVT della matrice A.
Ricordando che, se U è ortogonale ||Uy||2 = ||y||2 , si ha:

||Ax − b||22 = ||UT (Ax − b)||22 = ||UT AVVT x − UT b||22 = ||Sy − c||22

con y := VT x e c := UT b.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 72 / 89


Tenendo conto che r è il numero dei valori singolari non nulli di A,
partizioniamo S, y e c nelle seguenti forme:
 
S̃ O
S= , S̃ ∈ Rr ,r
O O
   
y1 c1
y= c= , y1 , c1 ∈ Rr , y2 ∈ Rn−r , c2 ∈ Rm−r
y2 c2
Allora risulta
S̃y1 − c1 2
 
||Ax − b||22 = ||Sy − c||22 =
= ||S̃y1 − c1 ||22 + ||c2 ||22
−c2
2

Poiché solo il primo addendo dipende da y = VT x si ha che ||Ax − b||22 è


minimo se e solo se ||S̃y1 − c1 ||22 è minimo.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 73 / 89


Essendo S̃ non singolare e diagonale, S̃y1 = c1 ammette una e una sola
soluzione y?1 , per la quale si ha ||S̃y1? − c1 ||22 = 0.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 74 / 89


Essendo S̃ non singolare e diagonale, S̃y1 = c1 ammette una e una sola
soluzione y?1 , per la quale si ha ||S̃y1? − c1 ||22 = 0. Denotando con (y1 )i le
componenti di y1 e con ui la i-esima colonna di U, e imponendo
r
X
||S̃y1 − c1 ||22 = (si (y1 )i − uT 2
i b) = 0,
i=1

si ricava
uT
i b
(y1? )i = , i = 1, . . . , r
si

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 74 / 89


Fra tutti i vettori y di lunghezza n con le prime r componenti coincidenti
con quelle di y1? , il vettore di minima norma euclidea y? è quello per cui le
restanti n − r componenti sono nulle.
In definitiva, 
T
 ui b , i = 1, . . . , r

?
yi = si

 0, i = r + 1, . . . , n

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 75 / 89


Fra tutti i vettori y di lunghezza n con le prime r componenti coincidenti
con quelle di y1? , il vettore di minima norma euclidea y? è quello per cui le
restanti n − r componenti sono nulle.
In definitiva, 
T
 ui b , i = 1, . . . , r

?
yi = si

 0, i = r + 1, . . . , n
Ricordando che x = Vy, il vettore soluzione nel senso dei minimi quadrati è
r
X
x? = Vy? = yi? vi
i=1

Si osservi che, poiché ||x? ||2 = ||y? ||2 , x? ha norma euclidea minima.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 75 / 89


Sia
 1,

i ≡ j = 1, . . . , r
S+ ∈ Rn,m +
: (S )ij = si
0, i ≡ j = r + 1, . . . , n, i 6= j

allora
y? = S+ UT b
e
x? = VS+ UT b
Posto
A+ = VS+ UT
si ha quindi che la soluzione nel senso dei minimi quadrati e di minima
norma del sistema sovradeterminato Ax = b è

x? = A+ b

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 76 / 89


Definizione
La matrice A+ è detta pseudo-inversa di Moore-Penrose oppure
inversa generalizzata di A.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 77 / 89


Definizione
La matrice A+ è detta pseudo-inversa di Moore-Penrose oppure
inversa generalizzata di A.

Si osservi che se A ∈ Rn,n e rank(A) = n, A+ = A−1 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 77 / 89


Definizione
La matrice A+ è detta pseudo-inversa di Moore-Penrose oppure
inversa generalizzata di A.

Si osservi che se A ∈ Rn,n e rank(A) = n, A+ = A−1 .

Comando Matlab
X = pinv(A) restituisce in X la pseudo-inversa della matrice A a partire
dalla sua SVD. I valori singolari al di sotto di una tolleranza di default
(dipendente da A) sono trattati come zeri.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 77 / 89


Definizione
La matrice A+ è detta pseudo-inversa di Moore-Penrose oppure
inversa generalizzata di A.

Si osservi che se A ∈ Rn,n e rank(A) = n, A+ = A−1 .

Comando Matlab
X = pinv(A) restituisce in X la pseudo-inversa della matrice A a partire
dalla sua SVD. I valori singolari al di sotto di una tolleranza di default
(dipendente da A) sono trattati come zeri.
X = pinv(A,tol) restituisce in X la pseudo-inversa di A ottenuta
ponendo uguali a zero i valori singolari al di sotto della tolleranza tol.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 77 / 89


Osservazione
Nel caso di un sistema lineare mal condizionato, una procedura numerica
che consente di ottenere una soluzione più accurata di quella che si ottiene,
per esempio, con la fattorizzazione PA = LU, consiste nel trascurare
(annullare) i valori singolari più piccoli (al di sotto di una prefissata
tolleranza), nell’approssimare la matrice A con una matrice di rango
inferiore e, infine, nel risolvere il risultante problema dei minimi quadrati.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 78 / 89


Esempio
Consideriamo, per esempio, il sistema lineare Ax = b con matrice A di
Hilbert di ordine n = 15 e con termine noto b definito in modo tale che la
soluzione coincida con il vettore x = (1, . . . , 1)T .
Il condizionamento in norma spettrale del suddetto sistema è all’incirca
1017 .
L’errore in norma 2 associato alla soluzione, ottenuta mediante il metodo
delle eliminazioni di Gauss con pivoting parziale, è superiore al 100%.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 79 / 89


Esempio
Consideriamo, per esempio, il sistema lineare Ax = b con matrice A di
Hilbert di ordine n = 15 e con termine noto b definito in modo tale che la
soluzione coincida con il vettore x = (1, . . . , 1)T .
Il condizionamento in norma spettrale del suddetto sistema è all’incirca
1017 .
L’errore in norma 2 associato alla soluzione, ottenuta mediante il metodo
delle eliminazioni di Gauss con pivoting parziale, è superiore al 100%.
Invece, indicato con r il numero dei valori singolari più grandi per esempio
= 10−12 , se si procede approssimando A con la matrice
di tol P
Ar = ri=1 si ui viT di rango r e risolvendo il risultante sistema, l’errore in
norma 2 associato alla soluzione è dell’ordine di 10−6 .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 79 / 89


... continua esempio
Infatti con le seguenti istruzioni Matlab e il metodo delle eliminazioni di
Gauss
>> n = 15;
>> A = hilb(n);
>> b = sum(A,2);
>> x gauss = A\b;
>> u = ones(n,1);
>> err gauss = norm(u-x gauss)/norm(u)

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 80 / 89


... continua esempio
Infatti con le seguenti istruzioni Matlab e il metodo delle eliminazioni di
Gauss
>> n = 15;
>> A = hilb(n);
>> b = sum(A,2);
>> x gauss = A\b;
>> u = ones(n,1);
>> err gauss = norm(u-x gauss)/norm(u)

si ha
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate.
RCOND = 5.460912e-19.
err gauss =
6.1408e+00

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 80 / 89


... continua esempio
Invece con il seguente algoritmo
>> tol = 1.0e-12;
>> [U,S,V] = svd(A);
>> s = diag(S);
% s contiene i valori singolari (ordinati dal piu’ grande al piu’ piccolo) di A
ind s = find(s<=tol);
% ind s contiene le componenti dei valori singolari piu’ piccoli di tol
r = ind s(1)-1;
% r e’ la componente dell’ultimo valore singolare piu’ grande di tol
y = zeros(n,1);
y(1:r) = (U(:,1:r)’*b)./s(1:r);
x svd = V*y
err svd = norm(u-x svd)/norm(u)

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 81 / 89


... continua esempio
Invece con il seguente algoritmo
>> tol = 1.0e-12;
>> [U,S,V] = svd(A);
>> s = diag(S);
% s contiene i valori singolari (ordinati dal piu’ grande al piu’ piccolo) di A
ind s = find(s<=tol);
% ind s contiene le componenti dei valori singolari piu’ piccoli di tol
r = ind s(1)-1;
% r e’ la componente dell’ultimo valore singolare piu’ grande di tol
y = zeros(n,1);
y(1:r) = (U(:,1:r)’*b)./s(1:r);
x svd = V*y
err svd = norm(u-x svd)/norm(u)

si ottiene un errore più piccolo:


err svd =
1.0667e-06
Si osservi che la soluzione x svd si può calcolare anche scrivendo
x svd = pinv(A,tol)*b.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 81 / 89


Risoluzione di un sistema lineare sottodeterminato
Si consideri il sistema lineare Ax = b con A di dimensione m × n, con
m < n. Si supponga che il rango di A sia uguale ad r e che A ammetta la
seguente decomposizione ai valori singolari A = USVT .
Si ha
Ax = b

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 82 / 89


Risoluzione di un sistema lineare sottodeterminato
Si consideri il sistema lineare Ax = b con A di dimensione m × n, con
m < n. Si supponga che il rango di A sia uguale ad r e che A ammetta la
seguente decomposizione ai valori singolari A = USVT .
Si ha
VT x = UT b
Ax = b =⇒ S |{z}
y

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 82 / 89


Risoluzione di un sistema lineare sottodeterminato
Si consideri il sistema lineare Ax = b con A di dimensione m × n, con
m < n. Si supponga che il rango di A sia uguale ad r e che A ammetta la
seguente decomposizione ai valori singolari A = USVT .
Si ha
Sy = UT b

T T
Ax = b =⇒ S |{z}
V x = U b =⇒
y

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 82 / 89


Risoluzione di un sistema lineare sottodeterminato
Si consideri il sistema lineare Ax = b con A di dimensione m × n, con
m < n. Si supponga che il rango di A sia uguale ad r e che A ammetta la
seguente decomposizione ai valori singolari A = USVT .
Si ha
Sy = UT b

T T
Ax = b =⇒ S |{z}
V x = U b =⇒
VT x = y
y

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 82 / 89


Riscrivendo S nella forma
 
S̃ O
S= , S̃ ∈ Rr ,r
O O

il sistema Sy = d, ove d := UT b, ammette come soluzione di norma


euclidea minima il vettore
di
yi? = , i = 1, ..., r , yi? = 0, i = r + 1, ..., n.
si
Inoltre, per l’ortogonalità di V, la norma euclidea di x è minima se e solo
se la norma euclidea di y = VT x è minima, pertanto la soluzione x? del
sistema assegnato è data da

x? = Vy? .

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 83 / 89


Applicazione 3. Compressione di immagini
La capacità della decomposizione SVD di fornire informazioni su come
ottenere approssimazioni di rango inferiore di una matrice assegnata, è
utile in molteplici applicazioni.
Segnaliamo, ad esempio, il suo utilizzo negli algoritmi di compressione dei
dati, in particolare, nella codifica di immagini.
Ogni foto può essere discretizzata decomponendo l’immagine in
quadrettini e assegnando un livello di grigio ad ogni quadrettino.
Imponendo, ad esempio, una griglia di dimensione 1000 × 1000 su una
foto e assegnando un livello di grigio da 0 a 10, si ha una matrice
(blackness matrix) di 1000000 interi.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 84 / 89


... continua esempio
Sia A la matrice che definisce i livelli di grigio. Mediante la decomposizione
in valori singolari si vede se l’approssimazione di rango inferiore
n
X
An = si ui viT
i=1

può rappresentare adeguatamente l’immagine. In caso affermativo, la


matrice An può essere codificata mediante 2n vettori ui e vi e i numeri si .
Se ad esempio è adeguato n = 5, per una matrice A di dimensione
1000 × 1000 sarà sufficiente memorizzare 2 · 5 · 1000 + 5 = 10005 valori
anziché 1000000, con un risparmio di quasi il 99%.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 85 / 89


... continua esempio
La matrice che genera la prima immagine nella slide che segue, occupa
uno spazio di memoria pari a
271 · 300 · 8 bytes = 650400 bytes
Le immagini successive sono state ottenute approssimando la suddetta
matrice con matrici di rango n = 10, 30, 50, rispettivamente.
In tal caso, l’occupazione di memoria è inferiore ed è data da
(271 · n + 300 · n + n) · 8 bytes
pari al 7%, 21% e 35% della memoria totale.

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 86 / 89


... continua esempio
650400 bytes n=10, 45760 bytes (7%)

n=30, 137280 bytes (21%) n=50, 228800 bytes (35%)

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 87 / 89


Esempio
Questa è l’approssimazione An , di rango n = 5,

n=5

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 88 / 89


... continua esempio
della matrice A che genera la seguente immagine:

L. Scuderi (Politecnico di Torino) Autovalori e SVD A.A. 2017/2018 89 / 89

Potrebbero piacerti anche