Calcolo di autovalori e autovettori

Documenti analoghi
Calcolo di autovalori e autovettori

Calcolo di autovalori e autovettori

Calcolo di autovalori e autovettori

AUTOVALORI DI UNA MATRICE

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

AUTOVALORI DI UNA MATRICE

Autovalori ed autovettori di una matrice

Università degli studi di Cagliari. Facoltà di ingegneria. Corso di laurea in ingegneria elettronica. Tesina per il corso di. Calcolo Numerico 2

Algebra Lineare Autovalori

Esercitazione 6: Metodi iterativi per sistemi lineari.

Analisi dell errore Metodo delle Potenze e delle Potenze inverse

Matrici elementari e fattorizzazioni

Sistemi sovradeterminati

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

Metodi iterativi per equazioni nonlineari.

Corso di Matematica per la Chimica

5 Un applicazione: le matrici di rotazione

0.1 Condizione sufficiente di diagonalizzabilità

Esercitazione 4: Vettori e Matrici

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Richiami di algebra delle matrici a valori reali

8 Metodi iterativi per la risoluzione di sistemi lineari

1 Il polinomio minimo.

Sistemi lineari - Parte Seconda - Esercizi

Corso di Matematica per la Chimica

Facoltá di Scienze MM.FF.NN. Corso di Studi in Informatica- A.A

Autovalori e autovettori, matrici simmetriche e forme quadratiche (cenni) (prof. M. Salvetti)

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A =

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

Universita degli Studi di Ancona Laurea in Ingegneria Meccanica ed Informatica a Distanza Anno Accademico 2005/2006. Matematica 2 (Analisi)

(VX) (F) Se A e B sono due matrici simmetriche n n allora anche A B è una matrice simmetrica.

Quale delle seguenti rappresentazioni del numero reale è in virgola mobile normalizzata?

NORMA DI UN VETTORE. Una NORMA VETTORIALE su R n è una funzione. : R n R +

Matlab. Istruzioni condizionali, cicli for e cicli while.

Esercizi di ripasso: geometria e algebra lineare.

Corso di Calcolo Numerico

det(a λi) = 0, (5.1) usando i metodi studiati nel Capitolo 4 e successivamente, per ogni autovalore λ trovato, risolvere il sistema lineare omogeneo

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Parte 8. Prodotto scalare, teorema spettrale

Altre trasformazioni elementari

ESERCIZI sui VETTORI

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

4 Autovettori e autovalori

Classificazione delle coniche.

1. Martedì 27/09/2016, ore: 2(2) Introduzione al corso: problemi ben posti, condizionamento, stabilità, complessità

1 Risoluzione di sistemi lineari

Corso di Calcolo Numerico

Algoritmo QR e zeri di una formula Gaussiana

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

SPAZI VETTORIALI CON PRODOTTO SCALARE A =

Metodi iterativi SISTEMI LINEARI. Metodi Iterativi. Metodo di rilassamento successivo e metodi del gradiente

Un sistema lineare si rappresenta in generale come

(P x) (P y) = x P t (P y) = x (P t P )y = x y.

Programma del corso di: Calcolo Numerico Corso di laurea in Matematica a.a Prof. B.Paternoster

Spazi euclidei, endomorfismi simmetrici, forme quadratiche. R. Notari

(E) : 4x 181 mod 3. h(h 1)x + 4hy = 0

Miglior approssimazione in spazi euclidei

Motivazioni. Sistemi lineari. Obiettivo. Il problema

Esercizi svolti. delle matrici

Autovalori e autovettori

3. Vettori, Spazi Vettoriali e Matrici

Soluzione del laboratorio 11 Metodi di punto fisso e sistemi di equazioni non lineari

Metodi iterativi per sistemi lineari

Spazi vettoriali euclidei.

Corso di Calcolo Numerico

A. Quarteroni, R. Sacco, F. Saleri, Matematica Numerica 3a Edizione. Springer, Milano Errata Corrige 16 aprile 2013

Esercizi di Geometria - 1

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Sistemi differenziali 2 2: esercizi svolti. 1 Sistemi lineari Stabilità nei sistemi lineari

A.A Prof. R. Morandi

Determinazione degli zeri di una formula Gaussiana mediante l'algoritmo QR per il calcolo degli autovalori di una matrice.

Appunti su Indipendenza Lineare di Vettori

Metodi per il calcolo di autovalori. e autovettori. e stabilità dei sistemi lineari

Prova di ammissione al Dottorato di Ricerca in Matematica XXVIII ciclo. Universitá del Salento, 9 Aprile 2013

Lezione n. 1. Introduzione all analisi numerica (richiami di algebra lineare e analisi funzionale)

Fattorizzazione LU ed eliminazione gaussiana

Analisi Matematica II - INGEGNERIA Gestionale - B 20 luglio 2017 Cognome: Nome: Matricola:

Appendice 1. Spazi vettoriali

2 Sistemi lineari. Metodo di riduzione a scala.

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

Esercizio 1. Esercizio 2

Facoltà di Scienze MM.FF.NN. Corso di Studi in Matematica- A.A Corso di ANALISI NUMERICA 1: Esempi di esercizi svolti

Metodi computazionali per i Minimi Quadrati

MATRICI ORTOGONALI. MATRICI SIMMETRICHE E FORME QUADRATICHE

CORSO DI LAUREA IN INFORMATICA CALCOLO NUMERICO Primo esonero - 20 Novembre

Esercitazione 6 - Soluzione

(1) Per ciascuno dei seguenti spazi dire se è o meno uno spazio vettoriale (spiegare)

Volumi in spazi euclidei 12 dicembre 2014

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo

Alcuni esercizi sulla diagonalizzazione di matrici. campo dei reali. Se lo è calcolare una base spettrale e la relativa forma diagonale di A.

Annamaria Mazzia. Corso di Metodi Numerici per l Ingegneria dispense e altro materiale su

TEORIA DEI SISTEMI ANALISI DEI SISTEMI LTI

RICHIAMI DI ALGEBRA LINEARE E NORME DI MATRICI E VETTORI. a 11 a 12 a 1n a 21 a 22 a 2n. a m1 a m2 a mn

0.1. MATRICI SIMILI 1

Corso di Matematica per la Chimica

DIAGONALIZZAZIONE. M(f) =

Transcript:

Calcolo di autovalori e autovettori Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 22 aprile 2013 Alvise Sommariva Calcolo di autovalori e autovettori 1/ 36

Metodo delle potenze Il problema del calcolo degli autovalori di una matrice quadrata A di ordine n consiste nel trovare gli n numeri (possibilmente complessi) λ tali che Ax = λx, x 0 (1) Sia A una matrice quadrata di ordine n con n autovettori x 1,..., x n linearmente indipendenti e autovalori λ 1,..., λ n tali che λ 1 > λ 2... λ n. (2) Il metodo delle potenze è definito come segue. Sia t 0 R n definito da n t 0 = α i x i, α 1 0, e si generi la successione i=1 y 0 = t 0 (3) y k = Ay k 1, k = 1, 2,... (4) Alvise Sommariva Calcolo di autovalori e autovettori 2/ 36

Metodo delle potenze Vale il seguente Teorema. Sia A è una matrice quadrata diagonalizzabile avente autovalori λ k tali che λ 1 > λ 2... λ n. Siano u k 0 autovettori relativi all autovalore λ k, cioè Sia y 0 = k Au k = λ k u k. α k u k, α 1 0. La succ. {y s } dove y s+1 = Ay s converge ad un vett. parallelo a x 1 e che il coeff. di Rayleigh (relativo al prodotto scalare euclideo) converge a λ 1. ρ(y s, A) := (y s, Ay s ) (y s, y s ) Alvise Sommariva Calcolo di autovalori e autovettori 3/ 36 (5)

Metodo delle potenze In virtú di alcune possibili problemi di underflow e underflow si preferisce normalizzare passo passo il vettore y k definito in (3). Conseguentemente l algoritmo del metodo delle potenze risulta u k = At k 1 (6) t k = u k β k, β k = u k 2 (7) l k = ρ(t k, A) (8) dove ρ(t k, A) è il coefficiente di Rayleigh definito in (5). Alvise Sommariva Calcolo di autovalori e autovettori 4/ 36

Metodo delle potenze f u n c t i o n [ lambda1, x1, niter, err ]= power_basic ( A, z0, toll, nmax ) % INPUT : % A : MATRICE % z0 : VETTORE INIZIALE (NON NULLO). % t o l l : TOLLERANZA. % nmax : NUMERO MASSIMO DI ITERAZIONI. % % OUTPUT: % lambda1 : SUCC. APPROX. AUTOVAL. DOMINANTE % x1 : AUTOVETT. DOMINANTE. % n i t e r : NUMERO ITERAZIONI. % e r r : VETTORE DEI RESIDUI PESATI RELATIVI A lambda1. % q=z0/norm ( z0 ) ; q2=q ; err = [ ] ; lambda1 = [ ] ; res=toll +1; niter =0; z=a q ; w h i l e ( res >= toll & niter <= nmax ) q=z/norm ( z ) ; z=a q ; lam=q z ; x1=q ; z2=q2 A ; q2=z2/norm ( z2 ) ; q2=q2 ; y1=q2 ; costheta=abs ( y1 x1 ) ; niter=niter +1; res=norm ( z lam q ) / costheta ; err =[ err ; res ] ; lambda1 =[ lambda1 ; lam ] ; end Alvise Sommariva Calcolo di autovalori e autovettori 5/ 36

Metodo delle potenze Qualche nota 1 il vettore iniziale z0 e normalizzato ed in err, lambda1 vengono memorizzati rispettivamente i valori dell errore compiuto e dell autovalore di massimo modulo λmax; 2 res=toll+1; forza l algoritmo ad entrare nel ciclo while, mentre z=a*q; serve per il calcolo dell autovalore λmax; 3 nel ciclo while, q è un approssimazione di un autoversore relativo a λmax, mentre lam di λmax; 4 il ciclo si interrompe se un numero massimo di iterazioni niter è raggiunto oppure Aq k λ k 2 cos(θ λk ) < tol dove θ λk è l angolo formato tra (un approssimazione del)l autovalore destro x1 e sinistro y1 associati a lam. Alvise Sommariva Calcolo di autovalori e autovettori 6/ 36

Metodo delle potenze. Esempio. Sia A = = 15.5 7.5 1.5 51 25 3 25.5 7.5 11.5 1 2 3 2 5 6 7 9 3 10 0 0 0 10 0 0 0 1 1 2 3 2 5 6 7 9 3 La matrice A è diagonalizzabile e ha autovalori 10, 10, 1. Si può vedere che una base di autovettori relativa agli autovalori 10, 10, 1 è composta da (1, 2, 7), (2, 5, 9), (3, 6, 3). Quale vettore iniziale del metodo delle potenze consideriamo z 0 = (1, 1, 1) = (7/6) (1, 2, 7) 1 (2, 5, 9) + (11/18) (3, 6, 3) e quindi il metodo delle potenze applicato ad A, e avente quale punto iniziale z 0 può essere utilizzato per il calcolo dell autovalore di massimo modulo di A, poichè α 1 = 7/6 0. Alvise Sommariva Calcolo di autovalori e autovettori 7/ 36 1 (9)

Metodo delle potenze. Esempio. Dalla shell di Matlab/Octave: >> S=[1 2 3 ; 2 5 6 ; 7 9 3 ] ; >> D=d i a g ( [ 1 0 10 1 ] ) ; >> A=S D i n v ( S ) A = 15.5000 7. 5 0 00 1. 5000 51.0000 25. 0000 3. 0 0 0 0 25.5000 7. 5 0 00 11. 5000 >> z0 =[1 1 1 ] ; >> toll =10ˆ( 8) ; >> nmax =10; >> format short e ; Alvise Sommariva Calcolo di autovalori e autovettori 8/ 36

Metodo delle potenze. Esempio. >> [ lambda1, x1, niter, err ]= power_basic ( A, z0, toll, nmax ) lambda1 = 1. 1587 e+001 1. 0138 e+001 1. 0014 e+001 1. 0001 e+001 1. 0000 e+001 1. 0000 e+001 1. 0000 e+001 1. 0000 e+001 1. 0000 e+001 1. 0000 e+001 x1 = 2.8583e 001 9.1466e 001 2.8583e 001 niter = 10 Alvise Sommariva Calcolo di autovalori e autovettori 9/ 36

Metodo delle potenze. Esempio. err = 2. 2466 e+000 2. 1028 e 001 2. 0934 e 002 2. 0925 e 003 2. 0924 e 004 2. 0924 e 005 2. 0924 e 006 2. 0924 e 007 2. 0924 e 008 2. 0924 e 009 >> La convergenza è abbastanza veloce come si vede dalla quantità err, che consiste in un particolare residuo pesato. Alvise Sommariva Calcolo di autovalori e autovettori 10/ 36

Metodo delle potenze. Esempio. Una questione sorge spontanea. Cosa sarebbe successo se avessimo utilizzato l algoritmo senza normalizzazione come ad esempio power method definito da f u n c t i o n [ lambda, v]= power_method ( A, x0, maxit ) v=x0 ; f o r end index =1: maxit v_old=v ; v=a v_old ; lambda=(v_old v ) /( v_old v_old ) ; Alvise Sommariva Calcolo di autovalori e autovettori 11/ 36

Metodo delle potenze. Esempio. Proviamo il test, facendo iterare il metodo prima 5, poi 100 volte e alla fine 1000 volte (si noti il settaggio della variabile maxit relativa al numero di iterazioni da compiere): >> x0 =[1 1 1 ] x0 = 1 1 1 >> A=[ 15.5 7. 5 1. 5 ; 51 25 3 ; 25.5 7. 5 1 1. 5 ] A = 15.5000 7. 5 0 00 1. 5000 51.0000 25. 0000 3. 0 0 0 0 25.5000 7. 5 0 00 11. 5000 >> [ lambda, v]= power_method ( A, x0, 5 ) lambda = 10. 0014 v = 1. 0 e+005 0.8333 2.6666 0.8333 Alvise Sommariva Calcolo di autovalori e autovettori 12/ 36

Metodo delle potenze. Esempio. >> [ lambda, v]= power_method ( A, x0, 1 0 0 ) lambda = 10. 0000 v = 1. 0 e+100 0.8333 2.6667 0.8333 >> [ lambda, v]= power_method ( A, x0, 1 0 0 0 ) lambda = NaN v = NaN NaN NaN >> Alvise Sommariva Calcolo di autovalori e autovettori 13/ 36

Metodo delle potenze. Esempio. La ragione è semplice. Per k relativamente piccolo si ha A t k 10 t k e quindi per s k da cui t s A s k t k 10 A s k 1 t k 10 s k t k t s 2 10 s k t k 2 spiegando quindi perchè si possano avere problemi di overflow applicando l algoritmo di base. Alvise Sommariva Calcolo di autovalori e autovettori 14/ 36

Metodo delle potenze. Esercizio 1. Sia A la matrice (diagonalizzabile) ( 1 2 A = 0 1 ), avente autovalori λ 1 = 1 e λ 2 = 1 e autovettori linearmente indipendenti (1, 0), ( 1, 1). Quale vettore iniziale poniamo x 0 = (1, 3) = 4 (1, 0) + 3 ( 1, 1) e quindi il metodo delle potenze applicato ad A, partendo da x 0 può essere sicuramente applicato. Si noti λ 1 = λ 2 = 1 pur essendo λ 1 λ 2. Si può dire a priori se il metodo converge? Verificarlo, utilizzando le routines precedentemente esposte. Alvise Sommariva Calcolo di autovalori e autovettori 15/ 36

Metodo delle potenze. Esercizio 2. Si consideri la matrice diagonalizzabile ( 1 2 A = 0 10 avente un solo autovalore di modulo massimo, uguale a 10. Si può dire a priori se il metodo converge? Verificarlo, utilizzando le routines precedentemente esposte. ), Alvise Sommariva Calcolo di autovalori e autovettori 16/ 36

Metodo delle potenze inverse. Si supponga A sia una matrice quadrata con n autovettori linearmente indipendenti, λ 1 λ 2... > λ n > 0. (10) e si desideri calcolare il piú piccolo autovalore in modulo, λ n. Applicando il metodo delle potenze ad A 1 si ottiene cosí la successione {t k } definita da Au k = t k 1 (11) t k = u k β k, β k = u k 2 (12) e convergente ad un vettore parallelo a x n. La succ. di coeff. di Rayleigh ρ(t k, A 1 ) := (t k, A 1 t k ) (t k, t k ) da cui si ottiene immediatamente λ n. = (t k, u k+1 ) (t k, t k ) 1/λ n. (13) Alvise Sommariva Calcolo di autovalori e autovettori 17/ 36

Metodo delle potenze inverse. Una versione di base invpower del metodo delle potenze inverse è f u n c t i o n [ lambda, x, niter, err ]= invpower ( A, z0, mu, toll, nmax ) % INPUT : % A : MATRICE % z0 : VETTORE INIZIALE (NON NULLO). % mu : VALORE DI CUI VOGLIAMO APPROX. L AUTOVAL. + VICINO. % t o l l : TOLLERANZA. % nmax : NUMERO MASSIMO DI ITERAZIONI. % % OUTPUT: % lambda : VETTORE DELLE APPROX DELL AUTOVAL. DI MIN. MOD. % x : AUTOVETTORE RELATIVO ALL AUTOVAL. DI MIN. MOD. % n i t e r : NUMERO DI ITERAZIONI. % e r r : VETTORE DEI RESIDUI PESATI RELATIVI A lambda. % % TRATTO DA QUARTERONI SALERI, MATEMATICA NUMERICA, p. 1 8 4. % Alvise Sommariva Calcolo di autovalori e autovettori 18/ 36

Metodo delle potenze inverse. f u n c t i o n [ lambda, x, niter, err ]= invpower ( A, z0, mu, toll, nmax ) n=max ( s i z e ( A ) ) ; M=A mu eye ( n ) ; [ L, U, P]= l u ( M ) ; q=z0/norm ( z0 ) ; q2=q ; err = [ ] ; lambda = [ ] ; res=toll +1; niter =0; w h i l e ( res >= toll & niter <= nmax ) niter=niter +1; b=p q ; y=l\ b ; z=u\ y ; q=z/norm ( z ) ; z=a q ; lam=q z ; b=q2 ; y=u \ b ; w=l \ y ; q2=(p w ) ; q2=q2/norm ( q2 ) ; costheta=abs ( q2 q ) ; i f ( costheta > 5e 2) res=norm ( z lam q ) / costheta ; err =[ err ; res ] ; lambda =[ lambda ; lam ] ; end e l s e end x=q ; d i s p ( \n \ t [ ATTENZIONE ] : AUTOVALORE MULTIPLO ) ; b r e a k ; Alvise Sommariva Calcolo di autovalori e autovettori 19/ 36

Metodo delle potenze inverse. Forniamo ora alcune spiegazioni del codice in invpower. 1 Per risolvere il sistema lineare, si effettua una fattorizzazione PM = LU della matrice M = A µi ; 2 All interno del ciclo while, nella prima riga si calcola z k, mentre nella successiva un suo versore q k, e σ k è immagazzinato in lam; 3 Similmente al metodo diretto si effettua il prodotto scalare di un autovalore sinistro con uno destro. Alvise Sommariva Calcolo di autovalori e autovettori 20/ 36

Metodo delle potenze inverse. Esempio. Applichiamo il metodo delle potenze inverse per il calcolo dell autovalore più piccolo in modulo della matrice 15.5 7.5 1.5 A = 51 25 3 25.5 7.5 11.5 1 2 3 10 0 0 1 2 3 = 2 5 6 0 10 0 2 5 6 7 9 3 0 0 1 7 9 3 1 (14) Come visto la matrice A è quindi diagonalizzabile, ha autovalori 10, 10, 1 e relativi autovettori è (1, 2, 7), (2, 5, 9), (3, 6, 3) formanti una base di R 3. Quale vettore iniziale consideriamo z 0 = (1, 1, 1) = (7/6) (1, 2, 7) 1 (2, 5, 9) + (11/18) (3, 6, 3) e quindi il metodo delle potenze inverse applicato ad A, e avente quale punto iniziale z 0 può essere utilizzato per il calcolo dell autovalore di minimo modulo di A. Alvise Sommariva Calcolo di autovalori e autovettori 21/ 36

Metodo delle potenze inverse. Esempio. >> z0 = [ 1 ; 1 ; 1 ] ; mu =0; toll =10ˆ( 8) ; nmax =10; >> A=[ 15.5 7. 5 1. 5 ; 51 25 3 ; 25.5 7. 5 1 1. 5 ] A = 15.50000000000000 7. 50000000000000 1. 50000000000000 51.00000000000000 25. 00000000000000 3. 00000000000000 25.50000000000000 7. 50000000000000 11. 50000000000000 >> [ lambda, x, niter, err ]= invpower ( A, z0, mu, toll, nmax ) lambda = 0. 39016115351993 0. 94237563941268 0. 99426922936854 0. 99942723776656 0. 99994272692315 0. 99999427272378 0. 99999942727270 0. 99999994272728 0. 99999999427273 x = 0. 40824829053809 0. 81649658085350 0. 40824829053809 niter = 9 Alvise Sommariva Calcolo di autovalori e autovettori 22/ 36

Metodo delle potenze inverse. Esempio. niter = 9 err = 0. 81535216507377 0. 08358101289062 0. 00838126258396 0. 00083836078891 0. 00008383842712 0. 00000838386620 0. 00000083838685 0. 00000008383868 0. 00000000838387 >> Alvise Sommariva Calcolo di autovalori e autovettori 23/ 36

Metodo delle potenze inverse. Esempio. La convergenza è lineare (come si intuisce dalle approssimazioni contenute nel vettore lambda). 10 0 10 1 10 2 10 3 10 4 10 5 10 6 10 7 10 8 10 9 1 2 3 4 5 6 7 8 9 Figura : Grafico che illustra la convergenza lineare del metodo delle potenze inverse nell esempio 1. Alvise Sommariva Calcolo di autovalori e autovettori 24/ 36

Metodo delle potenze inverse.esempio. Per vederlo, dalla shell di Matlab/Octave calcoliamo l errore assoluto/relativo relativo all autovalore 1: >> s=1 lambda s = 0. 60983884648007 0. 05762436058732 0. 00573077063146 0. 00057276223344 0. 00005727307685 0. 00000572727622 0. 00000057272730 0. 00000005727272 0. 00000000572727 >> s e m i l o g y ( 1 : l e n g t h ( s ), s ) Alvise Sommariva Calcolo di autovalori e autovettori 25/ 36

Metodo QR. Sia A una matrice quadrata di ordine n. Utilizzando il metodo di Gram-Schmidt è possibile fattorizzare la matrice A come prodotto di due matrici Q ed R con Q unitaria (cioè Q T Q = Q Q T = I ) ed R triangolare superiore. Nel caso sia non singolare, allora tale fattorizzazione è unica qualora si chieda che i coefficienti diagonali di R siano positivi. Sia A 0 = A = Q 0 R 0 e si ponga Poichè A 1 := R 0 Q 0. Q 0 A 1 Q T 0 = Q 0 A 1 Q T 0 = Q 0 R 0 Q 0 Q T 0 = A 0 la matrice A 1 è simile ad A 0 (si ponga S = Q 1 0 = Q T 0 ) e quindi ha gli stessi autovalori. Alvise Sommariva Calcolo di autovalori e autovettori 26/ 36

Metodo QR. Sia quindi in generale A k = Q k R k A k+1 = R k Q k. Per le stesse motivazioni A k+1 è simile ad A k, e per transitività ad A 0. Quindi A k+1 ha gli stessi autovalori di A 0. Nelle implementazioni, per motivi di complessità computazionale, si trasforma dapprima la matrice A in una matrice simile in forma di Hessenberg (cioè per cui a i,j = 0 se i < j 1), oppure se A è simmetrica in forma tridiagonale (cioè per cui a i,j = 0 se i j > 1), e quindi si applica l algoritmo QR. Alvise Sommariva Calcolo di autovalori e autovettori 27/ 36

Metodo QR. Convergenza Per la convergenza del metodo esistono vari risultati Se la matrice A R n n è con autovalori tutti distinti in modulo, con λ 1 >... > λ n (15) allora l algoritmo QR converge ad una matrice A = (ai,j ) triangolare superiore, cioè a1,1 a1,2...... a 1,n 0 a2,2 a2,3... a 2,n 0 0 a3,3... a 3,n lim A k = 0 0......... k..... 0 0 0 an 1,n 1 an 1,n 0 0 0 0 an,n con λ k = a k,k. Alvise Sommariva Calcolo di autovalori e autovettori 28/ 36 (16)

Metodo QR. Convergenza Inoltre, 1 Se la condizione (15) non è verificata si può dimostrare che la successione {A k } tende a una forma triangolare a blocchi. 2 se A k = (a (k) i,j ), e λ i 1 0 ( ) a (k) i,i 1 = O λi k, i = 2,..., n, k. (17) λ i 1 3 se la matrice è simmetrica, allora A = diag(λ 1,..., λ 1 ). 4 se A è una matrice Hessenberg superiore allora l algoritmo QR converge ad una matrice A triangolare a blocchi, simile ad A e con gli autovalori di ogni blocco diagonale tutti uguali in modulo. Alvise Sommariva Calcolo di autovalori e autovettori 29/ 36

Metodo QR. Implementazione. Una versione di base del metodo QR è la seguente. La routine houshess.m implementa la trasformazione per similitudine di A in una matrice di Hessenberg. f u n c t i o n [ H, Q]= houshess ( A ) % RIDUZIONE DI UNA MATRICE IN UNA SIMILE DI HESSENBERG. % DA QUARTERONI, SACCO, SALERI P. 1 9 2. n=max ( s i z e ( A ) ) ; Q=eye ( n ) ; H=A ; f o r end k =1:( n 2) [ v, b e t a ]= vhouse ( H ( k+1:n, k ) ) ; I=eye ( k ) ; N=z e r o s ( k, n k ) ; m=l e n g t h ( v ) ; R=eye ( m ) b e t a v v ; H ( k+1:n, k : n )=R H ( k+1:n, k : n ) ; H ( 1 : n, k+1:n )=H ( 1 : n, k+1:n ) R ; P=[I, N ; N, R ] ; Q=Q P ; Alvise Sommariva Calcolo di autovalori e autovettori 30/ 36

Metodo QR. Implementazione. La routine houshess.m richiama vhouse.m definita da f u n c t i o n [ v, b e t a ]= vhouse ( x ) % COSTRUZIONE DELLA TRASFORMAZIONE DI HOUSEHOLDER. % DA QUARTERONI, SACCO, SALERI P. 1 9 7. n=l e n g t h ( x ) ; x=x/norm ( x ) ; s=x ( 2 : n ) x ( 2 : n ) ; v =[1; x ( 2 : n ) ] ; i f ( s==0) b e t a =0; e l s e mu=s q r t ( x ( 1 ) ˆ2+s ) ; i f ( x ( 1 ) <= 0) v ( 1 )=x ( 1 ) mu ; e l s e v ( 1 )= s /( x ( 1 )+mu ) ; end b e t a =2 v ( 1 ) ˆ2/( s+v ( 1 ) ˆ2) ; v=v/v ( 1 ) ; end Alvise Sommariva Calcolo di autovalori e autovettori 31/ 36

Metodo QR. Implementazione. Definiamo ora QRbasicmethod.m che calcola la matrice triangolare T relativa a QR: f u n c t i o n [ T, h i s t ]= QRbasicmethod ( T_input, maxit ) % METODO QR PER UNA MATRICE T i n p u t. T=T_input ; h i s t=s o r t ( d i a g ( T ) ) ; f o r end index =1: maxit [ Q, R]= qr ( T ) ; T=R Q ; % MATRICE SIMILE. h i s t =[ h i s t s o r t ( d i a g ( T ) ) ] ; % REGISTRA ELEM. DIAG. Alvise Sommariva Calcolo di autovalori e autovettori 32/ 36

Metodo QR. Esempio. >> A=[1 2 3 ; 2 5 6 ; 7 9 3 ] ; >> [ H, Q]= houshess ( A ) H = 1. 0000 3. 4 3 4 0 1. 0 989 7. 2801 7. 1 1 3 2 8. 3 962 0. 0000 5. 3 9 6 2 0. 8 868 Q = 1. 0000 0 0 0 0. 2747 0. 9 6 15 0 0. 9615 0.2747 >> [ T, h i s t ]= QRbasicmethod ( H, 1 0 0 0 ) ; >> format short e >> T T = 1. 3153 e+01 4.5070 e+00 1.4572 e+00 0 4.4602 e+00 1.6012 e+00 0 0 3. 0682 e 01 >> Alvise Sommariva Calcolo di autovalori e autovettori 33/ 36

Metodo QR. Esempio. >> format long e >> e i g ( A ) ans = 1. 315341168250702 e+01 3. 068153783179930 e 01 4.460227060825006 e+00 >> d i a g ( T ) ans = 1. 315341168250701 e+01 4.460227060825004 e+00 3. 068153783179954 e 01 >> Da un confronto con la routine utilizzata da Matlab/Octave si vede immediatamente che la versione utilizzata di QR ha calcolato con una buona precisione gli autovalori richiesti. Alvise Sommariva Calcolo di autovalori e autovettori 34/ 36

Metodo QR. Esercizio 1. Data la matrice di Hilbert di ordine 5, ottenibile in Matlab col comando hilb(5) si calcolino col metodo delle potenze i suoi minimi e massimi autovalori in modulo. Da questi si calcoli il condizionamento della matrice in norma 2 e lo si confronti con cond(hilb(5),2). Eseguire lo stesso esercizio utilizzando il metodo QR. Alvise Sommariva Calcolo di autovalori e autovettori 35/ 36

Metodo QR. Esercizio 2 (facoltativo). In questa sezione desideriamo calcolare gli autovalori della matrice (simmetrica e a banda) di Poisson (scegliere il parametro 20) con A = B = B I 0... 0 I B I... 0 0 I B...... 0......... I 0 0... I B 4 1 0... 0 1 4 1... 0 0 1 4...... 0......... 1 0 0... 1 4. che si ottiene dalla definizione della matrice di Poisson presente nella gallery di Matlab. Alvise Sommariva Calcolo di autovalori e autovettori 36/ 36