Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Letizia SCUDERI
A.A. 2017/2018
Ax = λx
Ax = λx
Ax = λx
det(A − λI) = 0
det(A − λI) = 0
det(A − λI) = 0
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 .
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 .
Axi = λi xi , i = 1, . . . , n
ovvero
AX = XD
con
λ1 0
λ2
X = (x1 , x2 , . . . , xn ), D=
..
.
0 λn
Comandi Matlab
d = eig(A) restituisce il vettore d contenente tutti gli autovalori di 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)).
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 .
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 .
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 .
Proprietà
Una matrice A di ordine n è simmetrica e definita positiva se, e solo se, i
suoi autovalori sono tutti positivi.
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
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.
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
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
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 .
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
Dimostrazione
Siano λ un autovalore di A, x un autovettore a esso corrispondente e
B = S−1 AS. Allora si ha
⇒ Bz = λz con z = S−1 x
Quindi λ è anche autovalore di B con autovettore z.
Osservazione
Se A è diagonalizzabile e S−1 AS = D, allora si ha
AS = SD
Teorema
Una matrice A di ordine n è diagonalizzabile se, e solo se, A possiede n
autovettori linearmente indipendenti.
Teorema
Una matrice è diagonalizzabile se i suoi autovalori sono distinti.
VT AV = D = diag(λ1 , λ2 , ..., λn )
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, ∞.
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
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.
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.
z(m) := Am z = α1 λm m m
1 x1 + α2 λ2 x2 + ... + αn λn xn
z(m)
w(m) =
||z(m) ||2
z(m+1) = Aw(m)
Aw(m) ≈ λ1 w(m)
e
(w(m) )T Aw(m) ≈ λ1 (w(m) )T w(m)
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
(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).
(A − pI)x = Ax − px = (λ − p)x
(A − pI)x = Ax − px = (λ − p)x
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
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.
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.
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.
A k = Q k Rk
Ak+1 := Rk Qk
A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1
A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1
A 2 = R1 Q 1 = Q T
1 Q
T
1 R1 Q1 = Q1 A1 Q1
| {z }
A1
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);
5
7
1 4
3
8
s1 ≥ s2 ≥ ... ≥ sp ≥ 0
A = USVT
S = diag(s1 , . . . , sn ) ∈ Rn,n se p = m = n.
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 .
Teorema
Sia A ∈ Rm,n e Ā una sua perturbazione. Siano si e s̄i i valori singolari di
A e di Ā, rispettivamente. Si ha1
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
Esempio
Consideriamo la matrice
1 1
√
A = ε 0 , |ε| < eps
0 ε
s1 ≥ s2 ≥ . . . ≥ sr > sr +1 = . . . = sp = 0
e
Bk = {B : rango di B è k}
si ha
min ||A − B||2 = ||A − Ak ||2 = sk+1
B∈Bk
s1 ≥ s2 ≥ . . . ≥ sr > sr +1 = . . . = sp = 0,
allora il rango di A è r .
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.
||Ax − b||22 = ||UT (Ax − b)||22 = ||UT AVVT x − UT b||22 = ||Sy − c||22
con y := VT x e c := UT b.
si ricava
uT
i b
(y1? )i = , i = 1, . . . , r
si
Si osservi che, poiché ||x? ||2 = ||y? ||2 , x? ha norma euclidea minima.
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
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.
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.
si ha
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate.
RCOND = 5.460912e-19.
err gauss =
6.1408e+00
x? = Vy? .
n=5