Sei sulla pagina 1di 133

AUTOVALORI E VALORI SINGOLARI DI MATRICI

Autovalori e SVD 1 / 87
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 λ.

Autovalori e SVD 2 / 87
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.

Autovalori e SVD 2 / 87
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

Autovalori e SVD 2 / 87
Pertanto, gli autovalori di A coincidono con le n radici dell’equazione
caratteristica (algebrica di grado n):

det(A − λI) = 0

Autovalori e SVD 3 / 87
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.

Autovalori e SVD 3 / 87
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.

Autovalori e SVD 3 / 87
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 .

Autovalori e SVD 4 / 87
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 .

Autovalori e SVD 4 / 87
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

Autovalori e SVD 5 / 87
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.

Autovalori e SVD 6 / 87
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)).

Autovalori e SVD 6 / 87
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 .

Autovalori e SVD 7 / 87
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) = λ.

Autovalori e SVD 7 / 87
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.

Autovalori e SVD 7 / 87
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 simmetrica A di ordine n è definita positiva se, e solo se, i
suoi autovalori sono tutti positivi.

Autovalori e SVD 8 / 87
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

Autovalori e SVD 9 / 87
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))).

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

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

Osservazione
q
ρ(A2 ) = ρ(A)2 = ρ(A)
p
Se A ∈ Rn,n è simmetrica, allora ||A||2 =

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

Osservazione
q
ρ(A2 ) = ρ(A)2 = ρ(A)
p
Se A ∈ Rn,n è simmetrica, allora ||A||2 =

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

Autovalori e SVD 10 / 87
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

Autovalori e SVD 11 / 87
Teorema
n
(r )
[
Tutti gli autovalori di A appartengono a R = Ci .
i=1

Autovalori e SVD 12 / 87
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

Autovalori e SVD 12 / 87
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

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

Autovalori e SVD 13 / 87
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
Autovalori e SVD 13 / 87
Teorema
Denotate con R1 l’unione di k cerchi riga e con R2 l’unione dei
rimanenti cerchi (riga), se risulta R1 ∩ R2 = ∅, allora esattamente k
autovalori appartengono a R1 e i restanti n − k appartengono a R2 .

Autovalori e SVD 14 / 87
Teorema
Denotate con R1 l’unione di k cerchi riga e con R2 l’unione dei
rimanenti cerchi (riga), se risulta R1 ∩ R2 = ∅, allora esattamente k
autovalori appartengono a R1 e i restanti n − k appartengono a R2 .
Denotate con C1 l’unione di k cerchi colonna e con C2 l’unione dei
rimanenti cerchi (colonna), se risulta 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 .

Autovalori e SVD 14 / 87
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

Autovalori e SVD 15 / 87
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.

Autovalori e SVD 16 / 87
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 )

Autovalori e SVD 17 / 87
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.

Autovalori e SVD 17 / 87
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.

Autovalori e SVD 18 / 87
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 )

Autovalori e SVD 19 / 87
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.

Autovalori e SVD 20 / 87
Esempio
Sia  
101 −90
A=
110 −98
Gli autovalori di A sono λ1 = 2 e λ2 = 1.

Autovalori e SVD 21 / 87
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.

Autovalori e SVD 21 / 87
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.

Autovalori e SVD 21 / 87
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.

Autovalori e SVD 21 / 87
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, ∞.

Autovalori e SVD 22 / 87
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

Autovalori e SVD 23 / 87
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.

Autovalori e SVD 24 / 87
... 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.

Autovalori e SVD 25 / 87
... 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.

Autovalori e SVD 25 / 87
Il seguente comando Matlab consente di calcolare il numero di
condizionamento di ciascun autovalore.

Autovalori e SVD 26 / 87
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.

Autovalori e SVD 26 / 87
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.
Autovalori e SVD 27 / 87
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.

Autovalori e SVD 28 / 87
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.

Autovalori e SVD 29 / 87
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.

Autovalori e SVD 30 / 87
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

Autovalori e SVD 31 / 87
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.
Autovalori e SVD 32 / 87
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)

Autovalori e SVD 33 / 87
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) .

Autovalori e SVD 34 / 87
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

Autovalori e SVD 35 / 87
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) .

Autovalori e SVD 36 / 87
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.

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

Autovalori e SVD 37 / 87
... 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.

Autovalori e SVD 37 / 87
... 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).

Autovalori e SVD 38 / 87
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.

Autovalori e SVD 39 / 87
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 .

Autovalori e SVD 39 / 87
Se allora p è sufficientemente vicino (rispetto agli altri autovalori)
1
all’autovalore λ di A, il numero µ = λ−p è l’autovalore di modulo
massimo di (A − pI) . −1

Autovalori e SVD 40 / 87
Se allora p è sufficientemente vicino (rispetto agli altri autovalori)
1
all’autovalore λ di A, il numero µ = λ−p è 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+
µ

Autovalori e SVD 40 / 87
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.

Autovalori e SVD 41 / 87
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 = p;
[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

Autovalori e SVD 42 / 87
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.

Autovalori e SVD 43 / 87
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.

Autovalori e SVD 43 / 87
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.

Autovalori e SVD 43 / 87
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.

Autovalori e SVD 44 / 87
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.

Autovalori e SVD 44 / 87
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.

Autovalori e SVD 44 / 87
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.

Autovalori e SVD 45 / 87
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

Autovalori e SVD 46 / 87
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.

Autovalori e SVD 47 / 87
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.

Autovalori e SVD 47 / 87
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;

Autovalori e SVD 48 / 87
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;

Autovalori e SVD 48 / 87
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.

Autovalori e SVD 48 / 87
Osservazioni
La convergenza del metodo nella sua versione base è garantita se la
matrice A ha autovalori tutti distinti in modulo.
Il metodo QR è alla base della function MATLAB eig.

Autovalori e SVD 49 / 87
Osservazioni
La convergenza del metodo nella sua versione base è garantita se la
matrice A ha autovalori tutti distinti in modulo.
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)
% l’algoritmo è applicabile 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);

Autovalori e SVD 49 / 87
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.

Autovalori e SVD 50 / 87
... 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

Autovalori e SVD 51 / 87
... 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.

Autovalori e SVD 52 / 87
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.

Autovalori e SVD 53 / 87
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.

Autovalori e SVD 54 / 87
Teorema
Ogni matrice A ∈ Rm,n è fattorizzabile nella forma

A = US VT

con

S = diag(s1 , ..., sp ) ∈ Rm,n , p = min{m, n}, s1 ≥ s2 ≥ ... ≥ sp ≥ 0


e con U ∈ Rm,m e V ∈ Rn,n matrici ortogonali.
La matrice S è univocamente determinata, mentre U e V non lo sono.

Autovalori e SVD 55 / 87
Definizioni
La fattorizzazione A = US VT è detta decomposizione ai valori
singolari di A (o Singular Value Decomposition, SVD).
I valori si sono detti valori singolari di A.

Autovalori e SVD 56 / 87
Definizioni
La fattorizzazione A = US VT è detta decomposizione ai valori
singolari di A (o Singular Value Decomposition, SVD).
I valori si sono detti valori singolari di A.

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


singolari si può scrivere anche nella seguente forma:

UT AV = S

Da questa riscrittura della decomposizione ai valori singolari segue la


seguente definizione.
Definizione
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.

Autovalori e SVD 56 / 87
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.

Autovalori e SVD 57 / 87
Sia S ∈ Rm,n con m > n. Allora si ha
 
s1 0 ... ... 0  
vT 1
 0 s2 ... ... 0 

.. .. .. .. .  vT 2

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

n
0 0 ... ... 0
s1 vT
 
1
 s2 vT 2

..
 
 .

= u1 u2 . . . . . . . . . um
 
 sn vT
 
n

 
 0 
0
n
X
= u1 s1 vT T
1 + . . . + un sn vn = si ui vT
i
i=1
T Pp T
In generale vale USV = i=1 si ui vi , con p = min{m, n}.
Autovalori e SVD 58 / 87
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 .

Autovalori e SVD 59 / 87
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 Ae una sua perturbazione. Siano si e s̃i i valori singolari di
A e di A,
e rispettivamente. Si ha

|si − s̃i | ≤ ||A − A||


e 2, i = 1, .., p

Autovalori e SVD 60 / 87
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 .
Pr
2) A = Ur Sr VTr =
T ove
i=1 si ui vi
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 .

Autovalori e SVD 61 / 87
... 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 ).

Autovalori e SVD 62 / 87
... 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) 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.

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 può però portare a una perdita di accuratezza.

Autovalori e SVD 63 / 87
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 vT
i
i=1

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

Autovalori e SVD 64 / 87
Il precedente teorema stabilisce due importanti risultati:
la matrice Ak rappresenta la migliore approssimazione in norma 2 di
rango k della matrice A;
poiché la distanza d(A, Bk ) di A dall’insieme delle matrici di rango k
è cosı̀ definita d(A, Bk ) = infB∈Bk ||A − B||, il teorema afferma che
sk+1 rappresenta la distanza in norma 2 della matrice A dall’insieme
delle matrici di rango k.

Autovalori e SVD 65 / 87
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 .

Autovalori e SVD 66 / 87
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.

Autovalori e SVD 67 / 87
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, e siano

s1 ≥ s2 ≥ ... ≥ sn > 0

i suoi valori singolari.


Dalla proprietà 7) del precedente teorema segue
q q
T
||A||2 = ρ(A A) = s12 = s1

Inoltre,
q q q
−1 −1 T −1 T −1 −1
||A ||2 = ρ((A ) A ) = ρ((A ) A ) = ρ((AAT )−1 ) = 1/sn .

Pertanto,
s1
K2 (A) = ||A||2 ||A−1 ||2 =
sn
Autovalori e SVD 68 / 87
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 = US VT , è possibile ottenere la soluzione x
mediante la risoluzione di un sistema diagonale e di due prodotti
matrice-vettore:
(
Sy = UT b ⇒ y
US V x = b =⇒ S |{z}
T T T
V x = U b =⇒
y
VT x = y ⇒ x = Vy

Autovalori e SVD 69 / 87
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 = US VT , è possibile ottenere la soluzione x
mediante la risoluzione di un sistema diagonale e di due prodotti
matrice-vettore:
(
Sy = UT b ⇒ y
US V x = b =⇒ S |{z}
T T T
V x = U 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.

Autovalori e SVD 69 / 87
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 = US VT 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 = ||S y − c||22

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

Autovalori e SVD 70 / 87
Tenendo conto che r è il numero dei valori singolari non nulli di A,
partizioniamo S , y e c nelle seguenti forme:


 
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 = ||S y − 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.

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

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

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

Autovalori e SVD 72 / 87
Fra tutti i vettori y di lunghezza n con le prime r componenti coincidenti
con quelle di y?1 , 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

Autovalori e SVD 73 / 87
Fra tutti i vettori y di lunghezza n con le prime r componenti coincidenti
con quelle di y?1 , 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.

Autovalori e SVD 73 / 87
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 + U T
si ha quindi che la soluzione nel senso dei minimi quadrati e di minima
norma del sistema sovradeterminato Ax = b è

x? = A+ b

Autovalori e SVD 74 / 87
Definizione
La matrice A+ è detta pseudo-inversa di Moore-Penrose oppure
inversa generalizzata di A.

Autovalori e SVD 75 / 87
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 .

Autovalori e SVD 75 / 87
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.

Autovalori e SVD 75 / 87
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.

Autovalori e SVD 75 / 87
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.

Autovalori e SVD 76 / 87
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%.

Autovalori e SVD 77 / 87
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 vTi di rango r e risolvendo il risultante sistema, l’errore in
norma 2 associato alla soluzione è dell’ordine di 10−6 .

Autovalori e SVD 77 / 87
... continua esempio
Infatti con le seguenti istruzioni e il metodo delle eliminazioni di Gauss
implementato nativamente in Matlab
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)

Autovalori e SVD 78 / 87
... continua esempio
Infatti con le seguenti istruzioni e il metodo delle eliminazioni di Gauss
implementato nativamente in Matlab
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

Autovalori e SVD 78 / 87
... continua esempio
Invece con il seguente algoritmo
tol = 1.0e-12;
[U,S,V] = svd(A);
r = rank(A,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)

Autovalori e SVD 79 / 87
... continua esempio
Invece con il seguente algoritmo
tol = 1.0e-12;
[U,S,V] = svd(A);
r = rank(A,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.

Autovalori e SVD 79 / 87
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 = m e che A
ammetta la seguente decomposizione ai valori singolari A = US VT .
Si ha
Ax = b

Autovalori e SVD 80 / 87
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 = m e che A
ammetta la seguente decomposizione ai valori singolari A = US VT .
Si ha
VT x = UT b
Ax = b =⇒ S |{z}
y

Autovalori e SVD 80 / 87
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 = m e che A
ammetta la seguente decomposizione ai valori singolari A = US VT .
Si ha
Sy = UT b

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

Autovalori e SVD 80 / 87
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 = m e che A
ammetta la seguente decomposizione ai valori singolari A = US VT .
Si ha
Sy = UT b

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

Autovalori e SVD 80 / 87
Riscrivendo S nella forma

S = S̃ O , S̃ ∈ Rm,m


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


euclidea minima il vettore
di
yi? = , i = 1, ..., m, yi? = 0, i = m + 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? .

Autovalori e SVD 81 / 87
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.

Autovalori e SVD 82 / 87
... 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 vT
i
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%.

Autovalori e SVD 83 / 87
... 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.

Autovalori e SVD 84 / 87
... continua esempio
650400 bytes n=10, 45760 bytes (7%)

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

Autovalori e SVD 85 / 87
Esempio
Questa è l’approssimazione An , di rango n = 5,
n=5

Autovalori e SVD 86 / 87
... continua esempio
della matrice A che genera la seguente immagine:

Autovalori e SVD 87 / 87

Potrebbero piacerti anche