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