Metodo delle potenze

Indice dei contenuti

    Il metodo delle potenze è un metodo iterativo per stimare l’autovalore dominante di una matrice e il relativo autovettore. È uno degli algoritmi più semplici per problemi agli autovalori e resta importante quando la matrice è grande, sparsa e interessa solo il modo principale.

    L’iterazione di base è:

    x_{k+1}=\dfrac{Ax_k}{\|Ax_k\|}.

    La normalizzazione evita che il vettore cresca o decada senza controllo. A ogni passo si moltiplica per A, amplificando le componenti lungo gli autovettori associati agli autovalori di modulo maggiore.

    Condizione di convergenza

    Se A è diagonalizzabile e possiede un autovalore dominante \lambda_1 tale che:

    |\lambda_1|>|\lambda_2|\ge \cdots \ge |\lambda_n|,

    e se il vettore iniziale x_0 ha componente non nulla nella direzione dell’autovettore dominante, allora x_k converge alla direzione di quell’autovettore. Scrivendo:

    x_0=c_1v_1+c_2v_2+\cdots+c_nv_n,

    si ha:

    A^kx_0 = c_1\lambda_1^kv_1+\cdots+c_n\lambda_n^kv_n.

    Dividendo per la scala dominante, i termini con |\lambda_i/\lambda_1|<1 si attenuano. La velocità di convergenza dipende soprattutto dal rapporto:

    \left|\dfrac{\lambda_2}{\lambda_1}\right|.

    Se questo rapporto è vicino a 1, la convergenza è lenta.

    Stima dell’autovalore

    L’autovalore si stima spesso con il quoziente di Rayleigh:

    \lambda_k=\dfrac{x_k^TAx_k}{x_k^Tx_k}.

    Per matrici simmetriche reali, il quoziente di Rayleigh ha un significato particolarmente forte e fornisce una stima stabile dell’autovalore associato alla direzione corrente. In implementazioni pratiche, se x_k è normalizzato con norma euclidea, la formula diventa semplicemente:

    \lambda_k=x_k^\mathsf T A x_k.

    Un’altra stima, meno simmetrica ma spesso usata, consiste nel confrontare componenti di Ax_k e x_k, evitando componenti troppo piccole.

    Perché è utile per matrici sparse

    Il metodo richiede quasi solo prodotti matrice-vettore. Se A è sparsa, il costo di ogni iterazione è proporzionale al numero di elementi non nulli, non a n^2 in modo pieno. Non è necessario costruire decomposizioni complete né memorizzare tutti gli autovettori.

    Questa caratteristica è importante in reti, grafi, problemi discretizzati, simulazioni agli elementi finiti, catene di Markov, PageRank, vibrazioni e analisi modale preliminare. Quando serve solo la direzione dominante, calcolare tutto lo spettro sarebbe uno spreco.

    Segno e oscillazioni

    Se l’autovalore dominante è negativo, le iterate possono alternare segno: x_k e -x_k rappresentano comunque la stessa direzione propria. Se esistono due autovalori con lo stesso modulo massimo, per esempio \lambda e -\lambda, la convergenza può fallire o produrre oscillazioni.

    Se la matrice non è diagonalizzabile o se il vettore iniziale è quasi ortogonale alla direzione dominante, il comportamento può essere più delicato. In aritmetica finita, una componente dominante molto piccola può comunque emergere per arrotondamento, ma non è una garanzia su cui progettare l’algoritmo.

    Varianti

    Il metodo delle potenze inverse applica la stessa idea ad A^{-1}, permettendo di trovare autovalori piccoli in modulo, a patto di risolvere sistemi lineari. Con shift, si applica il metodo a (A-\sigma I)^{-1} per trovare autovalori vicini a \sigma. Queste varianti sono alla base di metodi più sofisticati per autovalori selettivi.

    Per trovare più autovalori si usano deflazione, sottospazi di Krylov, metodo di Lanczos per matrici simmetriche o Arnoldi per matrici generali. Il metodo delle potenze resta il nucleo concettuale: ripetere l’azione della matrice per far emergere le componenti dominanti.

    Criteri di arresto

    Un criterio naturale è controllare il residuo:

    r_k=Ax_k-\lambda_kx_k.

    Se \|r_k\| è piccola, la coppia (\lambda_k,x_k) soddisfa quasi l’equazione agli autovalori. Controllare solo la variazione tra iterate può essere fuorviante, specialmente in presenza di oscillazioni di segno o convergenza lenta.

    Errori comuni

    Il primo errore è usarlo senza verificare l’esistenza di un autovalore dominante separato. Il secondo è interpretare il vettore ottenuto come unico autovettore importante: il metodo trova il modo dominante rispetto al modulo, non necessariamente quello più rilevante per ogni problema fisico.

    Il terzo errore è trascurare la normalizzazione e il condizionamento numerico. Senza normalizzazione, le iterate possono andare in overflow o underflow. Con matrici non normali, piccoli errori possono essere amplificati in modi non descritti solo dagli autovalori. Il metodo è semplice, ma va letto dentro la struttura spettrale della matrice.

    Ultimo aggiornamento: