# Potenzmethode

Die Potenzmethode, Vektoriteration oder Von-Mises-Iteration (nach Richard von Mises) ist ein numerisches Verfahren zur Berechnung des betragsgrößten Eigenwertes und des dazugehörigen Eigenvektors einer Matrix. Der Name kommt daher, dass Matrixpotenzen $A^{k}x$ gebildet werden, wesentlicher Aufwand sind also Matrix-Vektor-Produkte. Deswegen ist das Verfahren insbesondere für dünnbesetzte Matrizen geeignet. Eine direkte Verallgemeinerung zur Berechnung mehrerer betragsgrößter Eigenwerte dünnbesetzter Matrizen ist die Unterraumiteration.
Die Potenzmethode lässt sich als nicht-optimales Krylow-Unterraum-Verfahren interpretieren, welches nur den jeweils letzten berechneten Vektor zur Eigenwertnäherung verwendet. Die Potenzmethode ist hinsichtlich der Konvergenzgeschwindigkeit den anderen Krylow-Raum-Verfahren, wie etwa dem Verfahren von Lanczos oder dem Verfahren von Arnoldi unterlegen. Dafür schneidet die Potenzmethode hinsichtlich der Stabilitätsanalyse besser ab.

## Algorithmus
### Motivation

Aus der Stochastik abgeleitet gibt es folgenden naiven Ansatz zur Eigenwertberechnung: Betrachtet man einen stochastischen Startvektor $v_{0}$ und eine spaltenstochastische Matrix $S$, dann ist die Wahrscheinlichkeitsverteilung einer Markow-Kette zum Zeitpunkt $t$ genau $v_{t}=Sv_{t-1}$. Falls nun die $v_{t}$ gegen einen Vektor $v$ konvergieren, so ist $Sv=v$ und wir haben eine vom Anfangszustand unabhängige stationäre Verteilung und damit auch einen Eigenvektor zum Eigenwert 1 gefunden. Formal ist also $v=\lim _{i\rightarrow \infty }S^{i}v_{0}$, es wurden Matrixpotenzen gebildet. Dieses Verfahren lässt sich nun für beliebige Matrizen verallgemeinern.

### Allgemeiner Algorithmus

Gegeben sei eine quadratische Matrix $A\in \mathbb {C} ^{n\times n}$ und ein Startvektor $r_{0}\in \mathbb {C} ^{n}$. Der Algorithmus approximiert den betragsmäßig größten Eigenwert $\lambda _{1}$ von $A$ unter der Voraussetzung, dass der Eigenwert halbeinfach ist und sein Betrag strikt größer als der aller anderen Eigenwerte. Zudem sei der Startvektor nicht orthogonal zum Eigenraum von $\lambda _{1}$. In jedem Iterationsschritt wird die Matrix $A$ auf die aktuelle Näherung $r_{k}$ angewandt und dann normiert.
    $r_{k+1}={\frac {Ar_{k}}{\Vert Ar_{k}\Vert }}$
oder in geschlossener Form
    $r_{k+1}={\frac {A^{k+1}r_{0}}{\Vert A^{k+1}r_{0}\Vert }}$
Die Vektoren $r_{k}$ konvergieren gegen einen Eigenvektor zum betragsgrößten Eigenwert, sofern dieser Eigenwert halbeinfach ist und alle anderen Eigenwerte einen echt kleineren Betrag haben. Es existiert also ein Index $d$, so dass für die Eigenwerte gilt $\lambda _{1}=\ldots =\lambda _{d}$ und $|\lambda _{d}|>|\lambda _{d+1}|\geq \ldots \geq |\lambda _{n}|$. Hierbei ist $d$ die geometrische (und algebraische) Vielfachheit des Eigenwerts $\lambda _{1}$.
Der zum Vektor $r_{k}$ gehörende approximierte Eigenwert kann auf zwei Arten berechnet werden:
* Bildet man die Skalare $\theta _{k}={\frac {\langle r_{k},\,Ar_{k}\rangle }{\langle r_{k},\,r_{k}\rangle }}={\frac {\langle r_{k},\,Ar_{k}\rangle }{\Vert r_{k}\Vert _{2}^{2}}}$ (den sogenannten Rayleigh-Quotienten), so konvergiert $\theta _{k}$ gegen $\lambda _{1}$. Dies folgt direkt aus der Konvergenz von $r_{k}$ gegen einen Eigenvektor.
* Ist man nicht am Vorzeichen des Eigenwertes interessiert, so bietet sich ein einfacher Ansatz an: Da $r_{k}$ gegen einen Eigenvektor konvergiert und in jedem Schritt auf 1 normiert wird, konvergiert $\Vert Ar_{k}\Vert$ gegen $|\lambda _{1}|$ (unabhängig von der verwendeten Norm).
Ist $A=VJV^{-1}$ die Darstellung der quadratischen Matrix in der jordanschen Normalform, dann ergibt sich daraus $A^{k}=(VJV^{-1})^{k}=VJ^{k}V^{-1}$, also $A^{k}V=VJ^{k}$. Ist nun $x=V{\tilde {x}}\in \mathbb {C}$ ein zufälliger Vektor, dann gilt
    $A^{k}x=A^{k}V{\tilde {x}}=VJ^{k}{\tilde {x}}=\sum _{i=1}^{n}v_{i}\lambda _{i}^{k}{\tilde {x}}_{i}$
Ausklammern eines konstanten Faktors ergibt
    $A^{k}x=\lambda _{1}^{k}\sum _{i=1}^{n}v_{i}\left({\frac {\lambda _{i}}{\lambda _{1}}}\right)^{k}{\tilde {x}}_{i}$
Dann gilt $\lim _{k\to \infty }\left({\frac {\lambda _{i}}{\lambda _{1}}}\right)^{k}=0$ für jedes $i>1$ und für große $k$ ist $A^{k}x$ und damit $r_{k}$ fast parallel zu $(\lambda _{1}/|\lambda _{1}|)^{k}v_{1}$, da nach Voraussetzung ${\tilde {x}}_{1}\neq 0$ (was z. B. durch eine zufällige Wahl des Vektors sichergestellt werden kann).Somit konvergiert $r_{k}$ gegen einen normierten Eigenvektor zum Eigenwert $\lambda _{1}$.

## Beweis der Konvergenz

Wir geben hier einen Beweis unter der Annahme, dass die Matrix $A$ diagonalisierbar ist. Der Beweis für den nichtdiagonalisierbaren Fall läuft analog.
O.B.d.A. seien die Eigenwerte wie oben angeordnet. Sei $V$ die Basiswechselmatrix zur Matrix $A$. Dann ist $A^{k}=VD^{k}V^{-1}$ wobei $D$ nach Voraussetzung eine Diagonalmatrix ist, welche die Eigenwerte enthält. Sei nun $v_{1},\ldots ,v_{n}$ eine Basis aus Eigenvektoren (die Spaltenvektoren von $V$) und $r_{0}$ ein Startvektor mit
    $r_{0}=\sum _{i=1}^{n}\beta _{i}v_{i}\quad {\text{mit}}\;\beta _{1}v_{1}+\ldots +\beta _{d}v_{d}\neq 0$
Dann ist
    $\displaystyle {\begin{aligned}A^{k}r_{0}&=VD^{k}V^{-1}r_{0}\\&=VD^{k}(\beta _{1}e_{1}+\ldots +\beta _{n}e_{n})\\&=\lambda _{1}^{k}V\left(\beta _{1}e_{1}+\ldots +\beta _{d}e_{d}+\sum _{i=d+1}^{n}\left({\frac {\lambda _{i}}{\lambda _{1}}}\right)^{k}e_{i}\right)\\&=\lambda _{1}^{k}\left(\beta _{1}v_{1}+\ldots +\beta _{d}v_{d}+\underbrace {\sum _{i=d+1}^{n}\left({\frac {\lambda _{i}}{\lambda _{1}}}\right)^{k}v_{i}} _{\to 0{\text{ für }}k\to \infty }\right)\end{aligned}}$
Da nach der Voraussetzung gilt, dass ${\tfrac {|\lambda _{i}|}{|\lambda _{1}|}}<1\;{\text{für}}\;i\geq d+1$. Wegen
    $\lim _{k\to \infty }\lambda _{1}^{k}={\begin{cases}\pm \infty &\;{\text{für}}\;|\lambda _{1}|>1\\0&\;{\text{für}}\;|\lambda _{1}|<1\end{cases}}$
wird in jedem Schritt die Normierung des Vektors auf 1 durchgeführt. Die oben angegebene Bedingung an den Startvektor besagt, dass er einen Nichtnullanteil in Richtung des Eigenvektors haben muss. Dies ist aber meist nicht einschränkend, da sich diese Bedingung durch Rundungsfehler in der Praxis oftmals von alleine ergibt.

## Konvergenzgeschwindigkeit

Unter der häufigen starken Voraussetzung, dass der Eigenwert einfach, betragsmäßig einfach und gut separiert ist, konvergieren sowohl die Eigenwertnäherungen als auch die Eigenvektornäherungen linear mit der Konvergenzgeschwindigkeit $|\lambda _{2}|/|\lambda _{1}|$, wobei die Eigenwerte dem Betrage nach abfallend sortiert angenommen werden, $|\lambda _{1}|>|\lambda _{2}|\geq \ldots \geq |\lambda _{n}|$. Diese Voraussetzung ist zum Beispiel nach dem Satz von Perron-Frobenius bei Matrizen mit positiven Einträgen erfüllt. Des Weiteren haben noch Jordanblöcke einen Einfluss auf die Konvergenzgeschwindigkeit. Betrachte dazu als Beispiel die Matrizen
    $A={\begin{pmatrix}1&0&0&0\\0&0{,}8&0&0\\0&0&0{,}8&0\\0&0&0&0{,}8\end{pmatrix}}\quad {\text{mit}}\quad A^{n}={\begin{pmatrix}1&0&0&0\\0&0{,}8^{n}&0&0\\0&0&0{,}8^{n}&0\\0&0&0&0{,}8^{n}\end{pmatrix}}$
und
    $B={\begin{pmatrix}1&0&0&0\\0&0{,}8&1&0\\0&0&0{,}8&1\\0&0&0&0{,}8\end{pmatrix}}\quad {\text{mit}}\quad B^{n}={\begin{pmatrix}1&0&0&0\\0&0{,}8^{n}&n\cdot 0{,}8^{n-1}&{\tfrac {n(n-1)}{2}}\cdot 0{,}8^{n-2}\\0&0&0{,}8^{n}&n\cdot 0{,}8^{n-1}\\0&0&0&0{,}8^{n}\end{pmatrix}}$
Beide haben den Eigenvektor $e=(1,0,0,0)^{T}$ zum betragsgrößten Eigenwert $\lambda _{1}=1$ und die Separation der Eigenwerte ist $|\lambda _{2}/\lambda _{1}|=0{,}8$. Unter Verwendung der Maximumsnorm $\|x\|_{\infty }:=\max(|x_{1}|,\ldots ,|x_{n}|)$ und des Startvektors $r_{0}=(1,1,1,1)^{T}$ konvergiert die Matrix $A$ mit linearer Konvergenzgeschwindigkeit, während die Matrix $B$ erst nach ca. 60 Iterationsschritten ein brauchbares Ergebnis liefert (vergleiche Bild).

## Verwendung

Da zur Berechnung des Gleichgewichtszustandes großer Markow-Ketten nur der Eigenvektor zum betragsgrößten Eigenwert bestimmt werden muss, kann hierfür die Potenzmethode verwendet werden, wie bereits im Abschnitt „Motivation“ beschrieben wurde. Insbesondere kann hier auf die Normierung in jedem Rechenschritt verzichtet werden, da die betrachtete Matrix stochastisch ist und damit die Betragsnorm des stochastischen Vektors erhält. Ein Beispiel dafür ist die Berechnung der PageRanks eines großen gerichteten Graphen als betragsgrößten Eigenvektor der Google-Matrix. Insbesondere sind bei der Google-Matrix die Eigenwerte gut separiert, sodass eine schlechte Konvergenzgeschwindigkeit ausgeschlossen werden kann.

## Varianten

Hat man einen Eigenwert $\lambda$ ausgerechnet, kann man das Verfahren auf die Matrix $A-\lambda V$ anwenden, um ein weiteres Eigenwert-Eigenvektor-Paar zu bestimmen. Hierbei sei $V$ das Kronecker-Produkt des Eigenvektors zum jeweiligen Eigenwert $\lambda$ mit sich selbst. Dabei wird vorausgesetzt, dass $A$ unitär diagonalisierbar ist. $A-\lambda V$ erhält dabei alle Eigenwerte von $A$ mit Ausnahme von $\lambda$ ($\lambda =0$).
Darüber hinaus gibt es die inverse Iteration, bei der das Verfahren auf $(A-\lambda I)^{-1}$ angewandt wird, indem in jedem Schritt lineare Gleichungssysteme gelöst werden.

## Vergleiche mit anderen Krylowraum-Verfahren

Die Potenzmethode ist den anderen Krylowraum-Verfahren sehr ähnlich. Es finden sich die typischen Bestandteile der komplexeren Verfahren wieder, so etwa die Normierung der konstruierten Basisvektoren, die Erweiterung des Krylowraumes und die Berechnung von (Elementen von) Projektionen im letzten Schritt.