Calcolo numerico/Metodo della potenza inversa

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Autovalore di modulo minimo

Il metodo della potenza inversa serve a calcolare l'autovalore e autovettore di modulo minimo. Si richiede che l'autovalore di modulo minimo sia strettamente maggiore di tutti gli altri, cioè

|λ1|≥|λ2|≥…≥|λn−1|>|λn|

Considerando λ autovalore di A segue che:

A𝒙=λ𝒙⟶A−1λ𝒙=𝒙⟶A−1𝒙=1λ𝒙,

cioè se λ è autovalore di A, 1/λ è autovalore di A−1.

Allora

mini=1n{|λ(A)|}=mini=1n1|λi(A−1)|

=1max⁡{λi(A−1)}

Ma per calcolare l'autovalore di modulo massimo si può applicare il metodo della potenza alla matrice inversa A−1, e basta poi fare il reciproco dell'autovalore trovato.

Algoritmo del metodo

Dato 𝒛0, applichiamo il seguente algoritmo:

𝒚k=𝒛k|𝒛k|

𝒛k+1=A−1𝒚k

σk=𝒚kh𝒛k+1

testd′arresto

λmin=1σ

Si presenta il problema del calcolo dell'inversa A−1, che è mal condizionato. Allora invece di calcolare il prodotto matrice per vettore

𝒛k+1=A−1𝒚k

risolvo il sistema

A𝒛k+1=𝒚k

e per farlo uso la fattorizzazione PA=LU. I vettori 𝒚k vengono trovato nelle successive iterazioni, ma la fattorizzazione PA=LU dopo essere stata trovata nel primo passo viene sfruttata per tutte le iterazioni successive.

Calcolo dell'autovalore più vicino ad α

Supponiamo di avere un valore assegnato α: per calcolare l'autovalore di A più vicino a esso applichiamo il metodo delle potenze a B data da (A−αI)−1.

λi(B)=1λi(A−αI)=1λi(A)−α

otteniamo σk→1λ(A)−α, allora λ→1σk+α.

Algoritmo:

𝒚k=𝒛k|𝒛k|

𝒛k+1=B𝒚kpassaggio problematico, sostituito con (A−αI)𝒛k+1=𝒚k

σk=𝒚kh𝒛k+1

Test d'arresto:

σk=1/σk+α

Template:Avanzamento