Analisi Numerica Auto Valori e Autovettori Valentina Campisi

  • Slides: 11
Download presentation
Analisi Numerica: Auto. Valori e Autovettori Valentina Campisi

Analisi Numerica: Auto. Valori e Autovettori Valentina Campisi

Autovalori e Autovettori (1/2) Sia A Cnxn. Un vettore v Cn, v≠ 0 si

Autovalori e Autovettori (1/2) Sia A Cnxn. Un vettore v Cn, v≠ 0 si dice autovettore per A se Av = v con C è detto autovalore per A. Si ricava il sistema (A- I)v = 0. Da cui segue che gli autovalori sono le radici del polinomio caratteristico p. A( )=det(A- I) cioè�i valori per cui la matrice A- I è�singolare e quindi il sistema ammette soluzioni diverse da v=0.

Autovalori e Autovettori (2/2) Ricavarsi gli autovalori in questo modo comporta il calcolo del

Autovalori e Autovettori (2/2) Ricavarsi gli autovalori in questo modo comporta il calcolo del determinante di una matrice che �una operazione altamente costosa. Si cercano quindi strade alternative per la ricerca degli autovalori. Noi considereremo solo uno di questi metodi, che si applica ad un caso molto particolare e tuttavia molto frequente nelle applicazioni: la ricerca dell'autovalore dominante cio�è di un autovalore maggiore in modulo di tutti gli altri.

Quoziente di Rayleigh L’autovalore corrispondente all’autovettore v si ottiene calcolando il quoziente di Rayleigh

Quoziente di Rayleigh L’autovalore corrispondente all’autovettore v si ottiene calcolando il quoziente di Rayleigh =v. TAv/ v. Tv Implementazione: function [lam, x] = ray_quo Riceve in input la matrice A a partire da un vettore non nullo calcola il quoziente di Rayleigh per restituire l’autovalore in lam e in x l’autovettore associato

Metodo delle Potenze (1/3) Supponiamo che la matrice A abbia un autovalore dominante 1

Metodo delle Potenze (1/3) Supponiamo che la matrice A abbia un autovalore dominante 1 tale che | 1|> | 2|≥…. ≥ | n| Il metodo delle potenze fornisce un metodo iterativo per approssimare l'autovalore dominante. Dato un vettore di innesco u 0≠ 0 si definisce una successione di vettori in questo modo: uk+1 = A uk Si pu�ò dimostrare che l'autovalore dominante �approssimato dalla seguente espressione: k= (uk)Tuk+1 / (uk)Tuk

Metodo delle Potenze (2/3) Per evitare problemi di overflow o underflow si usa una

Metodo delle Potenze (2/3) Per evitare problemi di overflow o underflow si usa una versione normalizzata del metodo delle potenze, nella quale tutti i vettori uk sono divisi per la loro norma in modo che la norma dei vettori cos�ottenuti sia sempre unitaria. yk= uk /||uk||2 uk+1 = Ayk k+1= (yk)Tuk+1/ (yk)Tyk= (yk)Tuk+1 dove l'ultima eguaglianza deriva dal fatto che (yk)Tyk=||yk||2=1

Metodo delle potenze (3/3) • Implementazione: La procedura metodo. Potenze utilizza lo schema usando

Metodo delle potenze (3/3) • Implementazione: La procedura metodo. Potenze utilizza lo schema usando come condizione di arresto | k- k-1 |<. [lambda, x, iter]=potenze Riceve in A la matrice di cui si vuole calcolare l'autovalore dominante, in x 0 un vettore di innesco (non nullo), in toll l’accuratezza desiderata e in nmax un limite superiore al numero di iterazioni. Restituisce in lambda l'approssimazione dell'autovalore dominante, in x l’autovettore e in iter il numero di iterazioni effettuate.

Matrice di Hessenberg Siano A, B simili, aventi cioè gli stessi autovalori, S, S-1

Matrice di Hessenberg Siano A, B simili, aventi cioè gli stessi autovalori, S, S-1 : A=SBS-1 Inoltre, per motivi di efficienza, il calcolo degli autovalori di B deve essere più facile di quello di A. Se B è triangolare gli autovalori sono gli elementi della diagonale. Si ha: U : A=UTU* dove T è triangolare superiore. Ma ricavare A in questo modo non è semplice allora troviamo S tale che B=SAS-1 sia una matrice di Hessenberg: H = h 11 h 21 0 h 12 …. h 1 n h 21. h 2 n. . hmn-1 hmn Per ridurre una matrice qualunque in forma di Hessenberg utilizziamo il metodo di House. Holder

Metodo di Householder (1/2) Se v �è dato come un vettore colonna unità�e I

Metodo di Householder (1/2) Se v �è dato come un vettore colonna unità�e I �è la matrice identità la trasformazione lineare è data dalla matrice di Householder P=I-2 vv. T/v. Tv La matrice di Householder ha le seguenti propriet�à: • simmetrica: P = PT • ortogonale: P-1 = PT Si trova che P riflette effettivamente un punto x, che viene rappresentato con il suo vettore posizione x: Px = x − 2 vv. Tx Questo vettore è detto vettore di riflessione o di Householder

Metodo di Householder (2/2) Implementazione: Ciascun passo k-esimo consiste in una trasformazione per similitudine

Metodo di Householder (2/2) Implementazione: Ciascun passo k-esimo consiste in una trasformazione per similitudine di A tramite la matrice di Householder che ha l’effetto di rendere nulli gli elementi di posizione di k+2, . . , n della colonna k-esima della matrice per k=1, . . , n-2. function [Q, H] = house. Holder_Hessenberg(A) Riceve in A una matrice e restituisce in H la matrice trasformata in forma di Hessenberg e in G la matrice ortognale. Per il calcolo del vettore di Householder si utlizza il programma: function[v, beta]=v. House(x)

Metodo di Givens Le matrici di Givens sono matrici di rotazioni ortogonali che hanno

Metodo di Givens Le matrici di Givens sono matrici di rotazioni ortogonali che hanno la proprietà di annullare selettivamente singoli elementi di una matrice o di un vettore. Fissati due indici i e K e un certo angolo , esse sono definite come: G(i, k, ) = I - Y dove Y Cnxn è una matrice identicamente nulla fatta eccezione per gli elementi yii = ykk = 1 -cos e yik = -sin = -yki G(i, k, ) = 1 0 1 cos sin -sin cos 0 1 1 Data una matrice possiamo calcolare la fattorizzazione QR, ottenendo A=QR che tende ad assumere una forma triangolare. Utilizziamo function [Q, R]=rotqr_demo(A)