next up previous contents index
Next: A. Esempi Up: 7. Autovalori e Autovettori Previous: 7.1 Introduzione   Indice   Indice analitico


7.2 Il metodo delle potenze

Il metodo delle potenze è un metodo di tipo iterativo utilizzato per approssimare l'autovalore di modulo massimo, che si fonda sul seguente teorema:

Teorema 7.2.1   Sia $A\in\mathbf{C}^{n\times n}$ una matrice con autovalori soddisfacenti le condizioni7.1

\begin{displaymath}
\vert\lambda_{1}\vert>\vert\lambda_{2}\vert\ge\ldots\ge\vert\lambda_{n}\vert
\end{displaymath}

e sia $z^{(0)}\in\mathbf{C}^{n}$ un vettore arbitrario. Allora il processo iterativo
$\displaystyle y^{(0)}$ $\textstyle =$ $\displaystyle z^{(0)}$  
$\displaystyle y^{(k)}$ $\textstyle =$ $\displaystyle Ay^{(k-1)}\qquad k=1,2,\ldots$  

è tale che

\begin{displaymath}
\lim_{k\rightarrow+\infty}\frac{y^{(k)}}{y_{j}^{(k)}}=v, \q...
...)^{H}}Ay^{(k)}}{\stackrel{}{y^{(k)^{H}}y^{(k)}}}=\lambda_{1},
\end{displaymath}

dove $j$ è un indice per cui $y_{j}^{(k)}\neq 0$, $v$ è l'autovettore associato a $\lambda_{1}$ e $y^{(k)^{H}}$ ? il trasposto coniugato7.2 di $y^{(k)}$.

DIMOSTRAZIONE. La diagonalizzabilità di \bgroup\color{darkgreen}$A$\egroup implica l'esistenza di \bgroup\color{darkgreen}$n$\egroup autovettori \bgroup\color{darkgreen}$x^{(i)}, i=1,2,\ldots,n$\egroup linearmente indipendenti e quindi che il vettore \bgroup\color{darkgreen}$z^{(0)}$\egroup possa rappresentarsi nella forma

\begin{displaymath}\bgroup\color{darkgreen}
z^{(0)}=\sum_{i=1}^{n}c_{i}x^{(i)}
\egroup\end{displaymath}

dove è lecito supporre che sia \bgroup\color{darkgreen}$c_{1}\neq 0$\egroup. Segue che
$\displaystyle y^{(k)}$ $\textstyle =$ $\displaystyle A^{k}y^{(0)}=A^{k}(c_{1}x^{(1)}+\ldots+c_{n}x^{(n)})$ (7.2)
  $\textstyle =$ $\displaystyle c_{1}A^{k}x^{(1)}+\ldots+c_{n}A^{k}x^{(n)}=
c_{1}\lambda_{1}^{k}x^{(1)}+\ldots+c_{n}\lambda_{n}^{k}x^{(n)}$  
  $\textstyle =$ $\displaystyle \Bigg(c_{1}x^{(1)}+\sum_{i=2}^{n}c_{i}\Big(\frac{\lambda_{i}}
{\lambda_{1}}\Big)^{k}x^{(i)}\Bigg)$  

e in particolare per ogni indice \bgroup\color{darkgreen}$j$\egroup,
\begin{displaymath}
y_{j}^{(k)}=\Bigg(c_{1}x_{j}^{(1)}+\sum_{i=2}^{n}c_{i}
\Big(\frac{\lambda_{i}}{\lambda_{1}}\Big)^{k}x_{j}^{(i)}\Bigg)
\end{displaymath} (7.3)

Scegliendo \bgroup\color{darkgreen}$y_{j}^{(k)}\neq 0$\egroup, tenendo conto dell'ipotesi sui moduli degli autovalori e dividendo membro a membro la (7.2) per la (7.3), si ottiene

\begin{displaymath}\bgroup\color{darkgreen}
\lim_{k\rightarrow\infty}\frac{y^{(k)}}{y_{j}^{(k)}}=b_{1}x^{(1)}=v
\egroup\end{displaymath}

dove \bgroup\color{darkgreen}$b_{1}=1/x_{j}^{(1)}$\egroup, perciò il vettore \bgroup\color{darkgreen}$v$\egroup è l'autovettore associato a \bgroup\color{darkgreen}$\lambda_{1}$\egroup, come afferma la tesi. Si ha quindi

\begin{displaymath}\bgroup\color{darkgreen}
Av=\lambda_{1}v
\egroup\end{displaymath}

e anche

\begin{displaymath}\bgroup\color{darkgreen}
v^{H}Av=\lambda_{1}v^{H}v
\egroup\end{displaymath}

da cui

\begin{displaymath}\bgroup\color{darkgreen}
\frac{v^{H}Av}{v^{H}v}=\lambda_{1}
\egroup\end{displaymath}

infine, tenendo conto dell'equazione precedente, si ha

\begin{displaymath}\bgroup\color{darkgreen}
\lim_{k\rightarrow+\infty}\frac{y^{...
...rightarrow+\infty}
\frac{v^{H}Av}{v^{H}v}=\lambda_{1}
\egroup\end{displaymath}

per cui è dimostrato il teorema. \bgroup\color{darkgreen}$\Box$\egroup
Il rapporto

\begin{displaymath}\bgroup\color{darkgreen}
R\left(y^{(k)}\right)=\frac{y^{(k)^{H}}Ay^{(k)}}{y^{(k)^{H}}y^{(k)}}
\egroup\end{displaymath}

è chiamato quoziente di Rayleigh. L' algoritmo appena considerato puó dar luogo a situazioni di overflow/underflow nel caso in cui il valore delle componenti in valore assoluto sia o troppo grande o troppo piccolo. È necessaria allora un'operazione di scaling, applicando a priori diversi tipi di norma di vettore. Si costruisce pertanto una successione di vettori \bgroup\color{darkgreen}$\{z^{(k)}\}$\egroup nel seguente modo

\begin{displaymath}\bgroup\color{darkgreen}
\left.\begin{array}{ccc}
y^{(k)} &...
...}}{\alpha_{k}}
\end{array}\right\}\qquad k=1,2,\ldots
\egroup\end{displaymath}

dove \bgroup\color{darkgreen}$z^{(0)}$\egroup è ancora arbitrario e \bgroup\color{darkgreen}$\alpha_{k}$\egroup è una costante di normalizzazione opportuna. Se ad esempio \bgroup\color{darkgreen}$\alpha_{k}$\egroup è una componente di massimo modulo di \bgroup\color{darkgreen}$y^{(k)}$\egroup scelta, a partire da un certo \bgroup\color{darkgreen}$k$\egroup, sempre con lo stesso indice, risulta \bgroup\color{darkgreen}$\vert\vert z^{(k)}\vert\vert _{\infty}=1$\egroup. Nelle ipotesi del teorema, si dimostra che

\begin{displaymath}\bgroup\color{darkgreen}
\lim_{k\rightarrow+\infty}z^{(k)}=w...
...\rightarrow+\infty}
R\left(z^{(k)}\right)=\lambda_{1}
\egroup\end{displaymath}

dove \bgroup\color{darkgreen}$w$\egroup è l'autovettore associato a \bgroup\color{darkgreen}$\lambda_{1}$\egroup.
[caption=Calcola l'autovalore dominante con il metodo delle potenze, label=codici/potenze.m, showstringspaces=false, frame=tRBl, extendedchars=true, basicstyle=pcrm, numbers=left, commentstyle= , frameround=fttt, stepnumber=1, numberstyle=, keywordstyle= , language=Matlab]codici/potenze.m



Esempi di potenze.m da pag. [*]


next up previous contents index
Next: A. Esempi Up: 7. Autovalori e Autovettori Previous: 7.1 Introduzione   Indice   Indice analitico
2005-02-09