Zum Inhalt springen

Arnoldi-Verfahren

aus Wikipedia, der freien Enzyklopädie

In der numerischen Mathematik ist das Arnoldi-Verfahren wie das Lanczos-Verfahren ein iteratives Verfahren zur Bestimmung einiger Eigenwerte und zugehöriger Eigenvektoren. Es ist nach Walter Edwin Arnoldi benannt. Im Arnoldi-Verfahren wird zu einer gegebenen Matrix <math>A\in\mathbb{C}^{n\times n}</math> und einem gegebenen Startvektor <math>q\in\mathbb{C}^n</math> eine orthonormale Basis des zugeordneten Krylowraumes

<math>\mathcal{K}_m(A,q)=\mbox{span}\{q,Aq,A^2q,\ldots\,A^{m-1}q\}</math>

berechnet. Da die Spalten <math>A^iq</math> bis auf eine etwaige Skalierung genau den in der Potenzmethode berechneten Vektoren entsprechen, ist es klar, dass der Algorithmus instabil wird, wenn zuerst diese Basis berechnet würde und anschließend, zum Beispiel nach Gram-Schmidt, orthonormalisiert würde.

Der Algorithmus kommt allerdings ohne die vorherige Aufstellung der sogenannten Krylowmatrix <math>K_m(A,q)=\left(q,Aq,A^2q,\ldots,A^{m-1}q \right)</math> aus.

Der Algorithmus (MGS-Variante)

Gegeben sei eine quadratische Matrix <math>A\in\mathbb{C}^{n\times n}</math> und ein (nicht notwendig normierter) Startvektor <math>r_0\in\mathbb{C}^n</math>.

for <math>k\in\mathbb{N}</math> and <math>r_{k-1}\not=0</math> do

<math>h_{k,k-1}\leftarrow \|r_{k-1}\|</math>
<math>q_k\leftarrow r_{k-1}/h_{k,k-1}</math>
<math>r_k\leftarrow Aq_k</math>
for <math>j=1,\ldots,k</math> do
<math>h_{jk}\leftarrow \langle q_j,r_k\rangle</math>
<math>r_k\leftarrow r_k-q_jh_{jk}</math>
end for

end for

Einsatz beim Eigenwertproblem

Nach <math>m</math> Schritten hat das Arnoldi-Verfahren im Wesentlichen eine Orthonormalbasis in der Matrix <math>Q_m=(q_1,\ldots,q_m)</math> bestimmt und eine Hessenbergmatrix

<math> H_m=\begin{pmatrix} h_{11}&h_{12}&\ldots&h_{1m}\\ h_{21}&h_{22}&\ldots&h_{2m}\\ 0&\ddots&\ddots&\vdots\\ &&h_{m,m-1}&h_{mm}\end{pmatrix}.</math>

Für diese im Arnoldi-Verfahren berechneten Größen gilt der Zusammenhang

<math> AQ_m=Q_mH_m+h_{m+1,m}q_{m+1}e_m^T</math>

wo <math>e_m</math> der <math>m</math>-te Einheitsvektor ist. Daraus folgt:

  • Für <math>h_{m+1,m}=0</math> definiert die Gleichung <math> AQ_m=Q_mH_m</math> einen invarianten Unterraum der Matrix <math>A</math> und alle <math>m</math> Eigenwerte der Matrix <math>H_m</math> sind auch Eigenwerte von <math>A</math>. In diesem Fall bricht das Arnoldi-Verfahren vorzeitig ab aufgrund der zweiten Bedingung <math>r_{k-1}\not=0</math>.
  • Wenn <math>h_{m+1,m}</math> klein ist, sind die Eigenwerte von <math>H_m</math> gute Approximationen an einzelne Eigenwerte von <math>A</math>. Insbesondere Eigenwerte am Rand des Spektrums werden gut approximiert ähnlich wie beim Lanczos-Verfahren.

Anwendung auf Lineare Systeme, FOM und GMRES

Das Arnoldi-Verfahren ist außerdem der Kern-Algorithmus des GMRES-Verfahrens zur Lösung Linearer Gleichungssysteme und der Full Orthogonalization Method (FOM). In der FOM baut man den Krylow-Unterraum und die Basen <math>Q_m</math> mit dem Startvektor <math>r_0=b</math> auf und ersetzt beim linearen System <math>Ax=b</math> die Matrix <math>A</math> durch die Approximation <math>Q_mH_mQ_m^T</math>. Die rechte Seite ist also Element des Krylowraums, <math>b=\beta q_1</math>. Die Näherungslösung <math>x_m\in K_m(A,b)</math> im Krylow-Raum wird in der Basisdarstellung <math>x_m=Q_my_m</math> bestimmt anhand des Systems

<math> H_my_m =\beta e_1.</math>

Dies entspricht der Bedingung <math>Q_m^T(b-Ax_m)=0</math> und definiert die Lösung <math>x_m</math> durch die Orthogonalitätsbedingung <math>b-Ax_m\perp K_m(A,q)</math>. Daher ist die FOM ein Galerkin-Verfahren. Löst man das kleine System <math> H_my_m =\beta e_1</math> mit einer QR-Zerlegung von <math>H_m</math>, so unterscheidet sich die Methode nur minimal vom Pseudocode im Artikel GMRES-Verfahren.

Literatur

  • {{#invoke:Vorlage:Literatur|f}}{{#if:
       | {{#if: Vorlage:Cite book/ParamBool
               | Vorlage:Toter Link/archivebot
               | Vorlage:Webarchiv/archiv-bot
         }}
  }}{{#invoke:TemplatePar|check
   |all    = title=
   |opt    = vauthors= author= author1= authorlink= author-link= author-link1= author1-link= author2= author3= author4= author5= author6= author7= author8= author9= editor= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= others= script-title= trans-title= date= year= volume= issue= number= series= page= pages= at= issn= arxiv= bibcode= doi= pmid= pmc= jstor= oclc= id= url= url-status= format= access-date= archive-date= archive-url= archivebot= offline= location= publisher= language= quote= work= journal= newspaper= magazine= periodical=  name-list-style= url-access= doi-access= display-authors= via= s2cid= mr= type= citeseerx=  accessdate= archivedate= archiveurl= coauthors= month= day= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21= last22= first22= last23= first23= last24= first24= last25= first25= last26= first26= last27= first27= last28= first28= last29= first29= last30= first30= last31= first31=
   |cat      = Wikipedia:Vorlagenfehler/Vorlage:Cite journal
   |errNS    = 0
   |template = Vorlage:Cite journal
   |format   = 
   |preview  = 1
  }}Vorlage:Cite book/URL{{#if:  | Vorlage:Cite book/Meldung }}{{#if:        | Vorlage:Cite book/Meldung }}{{#if: Quarterly of Applied Mathematics
     || Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
        | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
       | Vorlage:Cite book/Meldung
  }}{{#if: Vorlage:Cite book/ParamBool
     | Vorlage:Cite book/Meldung
  }}Vorlage:Cite book/Meldung2{{#ifexpr: 0{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:W.E. Arnoldi|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
    | Vorlage:Cite book/Meldung
  }}
  • {{#invoke:Vorlage:Literatur|f}}