Metodi numerici per l`approssimazione degli autovalori e degli

Transcript

Metodi numerici per l`approssimazione degli autovalori e degli
Corso di Matematica per la Chimica
Dott.ssa Maria Carmela De Bonis
a.a. 2013-14
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Autovalori ed Autovettori di una matrice
Siano
A = (ai,j )i,j=1,...,n ∈ Rn×n ,
λ∈R
0 6= x = (xi )i=1,...,n ∈ Rn
Se
Ax = λx
(1)
allora λ è detto autovalore di A e x è detto autovettore corrispondente
a λ. L’insieme degli autovalori di A è detto spettro di A e
ρ(A) = max{|λi | : λi autovalore di A}
è detto raggio spettrale di A.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Noto l’autovalore λ di A, il corrispondente autovettore può essere
calcolato risolvendo il sistema omogeneo
(A − λI)x = 0;
viceversa, noto l’autovettore x, l’autovalore λ ad esso associato è
fornito dall’espressione
xT Ax
λ= T
x x
denominata quoziente di Rayleigh.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il sistema
(A − λI)x = 0;
ammette soluzioni non nulle se e soltanto se
det(A − λI) = 0.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il polinomio
P(λ) = det(A − λI)
= a1 λn + a2 λn−1 + · · · + an λ + an+1 ,
dove ai , i = 1, . . . , n + 1, ∈ R, è detto polinomio caratteristico di A.
L’equazione
P(λ) = 0
è detta equazione caratteristica di A.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il polinomio P(λ) ha nel campo complesso n radici, ciascuna contata
con la sua molteplicità.
Pertanto una matrice di ordine n ha autovalori
λm1 , . . . , λmp
con
p
X
mi = n.
i=1
Un autovettore corrispondente ad un autovalore λ risulta determinato
a meno di una costante moltiplicativa non nulla, cioè se x è un
autovettore di A corrispondente all’autovalore λ anche αx, α 6= 0, è
un autovettore di A corrispondente allo stesso autovalore.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Esempio
Il polinomio caratteristico della matrice
a b
A=
c d
è
P(λ) = det
a−λ
b
c
d−λ
= (a − λ)(d − λ) − cb
= λ2 − (a + d)λ + (ad − cb) = λ2 − tr(A)λ + det(A),
dove tr(A) denota la traccia di A, ossia la somma dei suoi elementi
diagonali.
I suoi autovalori sono
p
p
tr(A) + tr(A)2 − 4 det(A)
tr(A) − tr(A)2 − 4 det(A)
λ1 =
e λ2 =
.
2
2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Proprietà degli autovalori e degli autovettori
1
Valgono le seguenti relazioni
n
Y
λi = det(A)
i=1
2
4
5
λi = tr(A);
i=1
Gli autovalori di una matrice diagonale o triangolare sono uguali
agli elementi principali di A, cioè
λi = ai,i ,
3
n
X
i = 1, . . . , n;
A e AT hanno gli stessi autovalori;
Se λ è un autovalore di una matrice A non singolare e x è il
corrispondente autovettore, allora risulta λ 6= 0 e λ1 autovalore di
A−1 con x corrispondente autovettore;
Autovettori corrispondenti ad autovalori distinti sono
linearmente indipendenti.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Un teorema di localizzazione degli autovalori
Teorema
(di Hirsch) Sia A una matrice di ordine n e sia k · k una qualsiasi
norma matriciale indotta. Allora il cerchio
{z ∈ C : |z| ≤ kAk}
contiene tutti gli autovalori di A.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Esempio
Consideriamo la matrice


15 −2 2
A =  1 10 −3 
−2 1
0
Gli autovalori di A sono
λ1 = 0.5120848255718684
λ2 = 14.10255576008863
λ3 = 10.38535941433950
Poichè
kAk1 = 18, kAk2 ' 15.44428, kAk∞ = 19,
per il teorema di Hirsch, si ha che gli autovalori di A appartengono al
cerchio
{z : |z| ≤ 15.4}
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodi di Calcolo
Poichè, gli autovalori di una matrice A sono gli zeri del polinomio
caratteristico
P(λ) = det(A − λI),
si potrebbe pensare di calcolare i coefficienti del polinomio P(λ) e poi
applicare un metodo numerico per la risoluzione dell’equazione
algebrica P(λ) = 0.
Tuttavia, questo metodo di procedere non è conveniente per tre motivi:
il costo computazionale è elevato;
può succedere che il problema del calcolo degli autovalori della
matrice è ben condizionato ma non lo è il problema del calcolo
degli zeri del corrispondente polinomio caratteristico;
gli errori di arrotondamento generati nel calcolo dei coefficienti
di P(λ) possono indurre elevate variazioni degli zeri del
polinomio.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Condizionamento del Problema
Analizziamo ora la variazione indotta sul calcolo degli autovalori da
una perturbazione indotta sugli elementi della matrice.
Premettiamo alcune definizioni e alcune teoremi necessari per
enunciare il teorema di perturbazione.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Definizione
Due matrici A, B ∈ Rn×n si dicono simili se esiste una matrice non
singolare S per cui
A = SBS−1 .
Teorema
Due matrici simili hanno gli stessi autovalori.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Definizione
Una matrice A ∈ Rn×n si dice diagonalizzabile se è simile ad una
matrice diagonale D.
Teorema
Una matrice A ∈ Rn×n è diagonalizzabile se e soltanto se ha n
autovettori linearmente indipendenti. Inoltre la matrice D ha per
elementi principali gli autovalori di A e la matrice S ha per colonne i
corrispondenti autovettori.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Teorema
Una matrice A ∈ Rn×n normale, cioé tale che AT A = AAT , è
diagonalizzabile e la matrice S è unitaria, cioé ST S = SST = I
Casi particolari di matrici normali sono le matrici simmetriche e le
matrici unitarie.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Teorema
Sia k · kp , con p = 1, 2, ∞, e sia A ∈ Rn×n una matrice
diagonalizzabile con S matrice che ha per colonne gli autovettori di
A. Se δA ∈ Rn×n è la matrice delle perturbazioni indotte su A e ξ è un
autovalore di A + δA, allora esiste almeno un autovalore λ di A tale
che
|λ − ξ| ≤ cond(S)kδAk.
Dunque perturbando gli elementi della matrice A gli autovalori
cambiano proporzionalmente all’entità della perturbazione δA.
Il condizionamento del problema del calcolo degli autovalori di A è
legato al numero di condizionamento della matrice S, le cui colonne
sono gli autovettori di A: è tanto meglio condizionato quanto più
basso è il numero di condizionamento di S.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
Se la matrice A è normale il problema del calcolo degli autovalori è
ben condizionato per tutti gli autovalori. Infatti, se la matrice A è
normale, allora S è unitaria e
q
q
cond2 (S) = kSk2 kST k2 = ρ(ST S) ρ(SST ) = 1.
Dunque
|λ − ξ| ≤ kδAk2 .
Per matrici che non sono normali il problema del calcolo degli
autovalori può essere ben condizionato o mal condizionato a seconda
delle proprietà dell’autovalore considerato. Per questo motivo è
necessario analizzare il problema per ogni singolo autovalore
distinguendo il caso di un autovalore di molteplicità algebrica 1 dal
caso di un autovalore di molteplicità algebrica maggiore di 1.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Condizionamento di un autovalore di molteplicità
algebrica 1
Teorema
Sia A ∈ Rn×n una matrice diagonalizzabile con S matrice che ha per
colonne gli autovettori di A. Se δA ∈ Rn×n è la matrice delle
perturbazioni indotte su A e ξ è un autovalore di A + δA, allora esiste
almeno un autovalore λ di A tale che
|ξ − λ| ≤
1
|yT x|
kδAk2 ,
dove x è una colonna di S e y è la corrispondente riga di S−1 .
Dunque, la variazione dell’autovalore λ dovuta alla perturbazione δA
è proporzionale a kδAk e il condizionamento dipende dalla quantità
1
.
|yT x|
Se s(λ) := |yT x| è piccolo allora il problema del calcolo di λ è
malcondizionato.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Se la matrice A è normale allora, essendo S unitaria, si ha S−1 = ST e,
conseguentemente, s(λ) = 1.
Quindi, in accordo con il teorema precedente, il problema del calcolo
dell’autovalore λ è ben condizionato.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
La function condeig del Matlab
[c]=condeig(A): prende in input la matrice A di ordine n e
h
iT
restituisce il vettore c = s(λ11 ) , s(λ12 ) , . . . , s(λ1n ) di lunghezza n.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il caso in cui λ è un autovalore di molteplicità algebrica > 1 è più
complicato e lo tralasciamo.
Osservazione
Se una matrice A è mal condizionata può non essere mal
condizionato il problema del calcolo dei suoi autovalori.
Per esempio, la matrice di Hilbert di ordine n
H = (hi,j )i,j=1,...,n ,
hi,j =
1
,
(i + j − 1)
è malcondizionata, infatti per n = 10 si ha
cond2 (H) ∼ 1.602528637652488e + 013,
ma, essendo simmetrica, il problema del calcolo dei suoi autovalori è
ben condizionato.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Metodo delle Potenze
Sia A ∈ Rn×n , con n autovettori x1 , . . . , xn linearmente indipendenti e
autovalori λ1 , . . . , λn tali che
|λ1 | > |λ2 | ≥ |λ3 | ≥ · · · ≥ |λn |,
ossia l’autovalore λ1 di massimo modulo ha molteplicità 1 e non
esistono altri autovalori con lo stesso modulo.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Fissato un vettore t0 ∈ Rn , si genera la successione {yk }k=1,2,... cosı̀
definita
(
y1 = At0 ,
yk = Ayk−1 , k = 2, 3, . . . .
Poichè i vettori x1 , . . . , xn sono linearmente indipendenti, il vettore t0
può essere scritto nel seguente modo:
t0 =
n
X
αi xi
i=1
e si supponga scelto in modo tale che α1 6= 0.
Quindi
yk = Ayk−1 = Ak t0
n
n
X
X
k
=
αi A xi =
αi λki xi
i=1
"
= λk1 α1 x1 +
i=1
n
X
i=2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
αi
λi
λ1
k #
xi
Corso di Matematica per la Chimica
(2)
Analogamente
"
yk+1 = λk+1
α1 x1 +
1
n
X
αi
i=2
λi
λ1
k+1 #
xi .
Conseguentemente
n
X
yk+1
yk
λi k+1
α1 x1 +
αi
xi
λ1
i=2
.
= λ1
k
n
X
λi
xi
α1 x1 +
αi
λ1
i=2
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Denotando con (u)r = eTr u l’r−esima componente di un vettore u, si
ha
k+1
n
X
λi
α1 (x1 )r +
αi
(xi )r
λ
1
(yk+1 )r
i=2
.
= λ1
k
n
X
(yk )r
λi
(xi )r
α1 (x1 )r +
αi
λ1
i=2
λi Poichè, per ipotesi < 1, i = 2, . . . , n, si ha
λ1
(yk+1 )r
= λ1 ,
k→∞ (yk )r
lim
cioè, da un certo indice k in poi, l’autovalore λ1 di massimo modulo
(y )r
può essere approssimato mediante uno dei rapporti (yk+1
.
k )r
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Inoltre, tenendo conto che
yk
= α1 x1
k→∞ λk
1
lim
e, per r = 1, . . . , n, anche
(yk )r
= α1 (x1 )r ,
k→∞ λk
1
lim
per tutti gli indici r per cui (x1 )r 6= 0, si ha
lim
k→∞
yk
x1
=
.
(yk )r
(x1 )r
Tenendo conto che, da un certo indice k in poi, l’indice m di una
componente di massimo modulo di yk rimane invariato, la successione
yk
(yk )m converge all’autovettore x1 normalizzato in norma ∞.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
(y
)
r
L’ordine di convergenza delle successioni (yk+1
e (yykk)m per k → ∞
k )r
λ2 dipende dal rapporto : essa è tanto più rapida quanto più tale
λ1
rapporto è piccolo.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
Per k → ∞, la potenza λk1 in (2) tende a zero se |λ1 | < 1 e tende ad
infinito se |λ1 | > 1. Dunque, se si implementa l’algoritmo su un
computer che lavora in aritmetica finita, con la (2) dopo pochi passi
si possono presentare condizioni di overflow o di underflow. Per
evitare che ciò accada, è necessario eseguire ad ogni passo una
normalizzazione del vettore ottenuto.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Normalizzazione con la norma 2
Sia t0 scelto in modo tale che kt0 k2 = 1 e consideriamo la successione


u
= Atk ,

 k+1
k = 0, 1, 2, . . .

uk

tk =
.
kuk k2
In questo caso si può utilizzare come approssimazione dell’autovalore
λ1 il quoziente di Rayleigh
σk :=
tTk Atk
= tTk uk+1 .
tTk tk
Dunque si ha
lim σk = λ1
k→∞
e
lim tk =
k→∞
x1
kx1 k2
k
Anche in questo caso la velocità di convergenza è dell’ordine di λλ21 .
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
La normalizzazione con la norma 2 è particolarmente conveniente se
la matrice A è normale in quanto σk per k → ∞ tende a λ1 come
2k
λ2 λ1 .
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
È possibile modificare opportunamente il metodo delle potenze per
approssimare l’autovalore di massimo modulo di una matrice A.
Ci sono dei casi in cui si conosce un’approssimazione molto scadente
di un autovalore di una matrice A (Ad esempio dopo aver applicato un
teorema di localizzazione) e la si vuole migliorare, cioè si vuole
conoscere un’approssimazione con un un numero maggiore di cifre
significative. È possibile modificare opportunamente il metodo delle
potenze per migliorare tale approssimazione e per calcolarne il
corrispondente autovettore.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Generalità sui metodi iterativi
Un metodo iterativo per approssimare la soluzione x̄ di un problema è
un metodo numerico che consiste nel costruire una successione di
approssimazioni x1 , x2 , . . . , xn , . . . che, sotto opportune condizioni,
converge ad x̄.
Poiché non è possibile “arrivare al limite” della successione, occorre
in genere fissare uno o più criteri d’arresto della procedura.
Un metodo iterativo si dice semplice se ogni approssimazione della
successione dipende dall’approssimazione costruita al passo
precedente.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Criteri di Arresto
Come già accennato per implementare una procedura di tipo iterativo
in maniera automatica, occorrono dei criteri per “arrestarla”.
Si utilizzano in genere entrambi i seguenti criteri di arresto:
1
Fissata una tolleranza toll, arbitrariamente piccola, si verifica che
kxk − xk−1 k∞
< toll.
kxk k∞
Tale condizione è suggerita dal fatto che se la successione di
approssimazioni converge, allora la successione kxk − xk−1 k∞
tende a zero.
2
Si fissa un numero massimo di iterazioni itmax.
itmax è dunque una variabile intera fissata, detta “variabile
tappo”.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Function Matlab
function [lam,k]=potenze(A,z,toll,itmax)
y=z/norm(z);
k=2;
err=1;
lam(1)=0;
while k<itmax && err>toll
z=A∗y;
lam(k)=(y’∗z);
y=z/norm(z);
err=abs(lam(k)-lam(k-1))/abs(lam(k));
k=k+1;
end
k=k−1;
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazioni
1
2
3
4
5
Il metodo, per come è stato formulato, non può convergere ad
autovalori complessi. Dunque se λ1 e λ2 sono complessi
coniugati (|λ1 | = |λ2 |) il metodo non converge.
Se |λ1 | = |λ2 | e λ1 = −λ2 , il metodo generalmente non
converge.
Se λ1 è reale con molteplicità algebrica k e
|λ1 | = · · · = |λk | > |λk+1 | ≥ · · · ≥ |λn |, il metodo converge a
λ1 e ad un suo autovettore ma la convergenza è molto lenta.
Se |λ2 | ' |λ1 |, la convergenza del metodo a λ1 può risultare
molto lenta.
Se il vettore t0 scelto per inizializzare il metodo è tale che
n
X
t0 =
αi xi , con α1 = 0,
i=1
allora il metodo converge a λ2 anziché λ1 . Dunque, poichè non
conosciamo l’autovalore di massimo modulo della matrice data,
è preferibile provare il metodo con diverse scelte del vettore t0 .
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Il metodo QR
Sia A ∈ Rn×n . Si dimostra che esistono sempre una matrice unitaria Q
e una matrice triangolare superiore R tali che
A = QR.
Posto A1 = A, il metodo QR consiste nel costruire una succesione
{Ak }k di matrici nel seguente modo:
1o passo
Si effettua la fattorizzazione QR di A1 :
A1 = Q1 R1
Si calcola A2 = R1 Q1
2o passo
Si effettua la fattorizzazione QR di A2 :
A2 = Q2 R2
Si calcola A3 = R2 Q2
k−esimo passo
Si effettua la fattorizzazione QR di Ak :
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Osservazione
Le matrici Ak della successione sono tutte simili, infatti:
Ak+1 = Rk Qk = QTk Ak Qk
= QTk QTk−1 · · · QT2 QT1 AQ1 Q2 · · · Qk−1 Qk
= [Q1 Q2 · · · Qk−1 Qk ]T AQ1 Q2 · · · Qk−1 Qk .
Dunque hanno tutte gli stessi autovalori.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Teorema
Se A ∈ Rn×n ha n autovalori reali e distinti tali che
|λ1 | > |λ2 | > · · · > |λn |
allora
lim Ak = U,
k→∞
dove U è una matrice triangolare superiore avente per elementi
diagonali gli autovalori di A. In particolare, se A è simmetrica allora
U è una matrice diagonale.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
Se la matrice A ammette coppie di autovalori complessi coniugati,
allora la successione {Ak }k converge ad una matrice “quasi
triangolare”. Ad esempio, se gli autovalori di A ∈ R5×5 sono
λ1 , λ̄1 , λ2 , λ3 , λ̄3 ,
|λ1 | > |λ2 | > |λ3 |,
la matrice U è del tipo






a
c
0
0
0
b ∗
d ∗
0 λ2
0 0
0 0
∗
∗
∗
e
g
∗
∗
∗
f
h






e λ1 , λ̄1 sono gli autovalori della sottomatrice
e f
gli autovalori della sottomatrice
.
g h
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
a b
c d
, λ3 , λ̄3 sono
Corso di Matematica per la Chimica
Costo computazionale del metodo QR
Ad ogni passo si effettua una fattorizzazione QR che ha costo
computazionale 32 n3 .
Il costo della fattorizzazione si riduce a 2n2 se la matrice è in forma di
Hessemberg superiore e a n se la matrice è tridiagonale simmetrica.
Poichè il metodo QR non cambia la forma della matrice a cui viene
applicato, è preferibile trasformare la matrice A in forma di
Hessemberg superiore o in forma tridiagonale simmetrica (se A è
simmetrica) prima di applicare il metodo QR.
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica
La function eig del Matlab
[d] = eig(A): prende in input una matrice A di ordine n e
restituisce in output un vettore colonna d che ha per componenti gli
autovalori di A.
[S,D] = eig(A): prende in input una matrice A di ordine n e
restituisce in output una matrice diagonale D che ha per elementi
diagonali gli autovalori di A e una matrice piena S le cui colonne sono
i corrispondenti autovettori, cioé A = SDS−1 .
Dott.ssa Maria Carmela De Bonis a.a. 2013-14
Corso di Matematica per la Chimica