Jacobi-Verfahren (Eigenwerte)

Aus testwiki
Zur Navigation springen Zur Suche springen

Das Jacobi-Verfahren (nach Carl Gustav Jacob Jacobi (1846))[1] ist ein iteratives Verfahren zur numerischen Berechnung aller Eigenwerte und -vektoren (kleiner) symmetrischer Matrizen.

Praktikabel wurde das Verfahren mit dem Aufkommen von Computern. Die verwendeten Drehmatrizen werden nach Wallace Givens, der sich damit Mitte der 1950er Jahre befasste, auch Givens-Rotation genannt.

Beschreibung

Da die Ausgangsmatrix An×n als symmetrisch vorausgesetzt wird, ist sie orthogonal ähnlich zu einer Diagonalmatrix Dn×n.

D=STAS,

wobei die Diagonale von D die Eigenwerte λ1,,λn von A enthält und S spaltenweise die zugehörigen Eigenvektoren.

D=diag(λ1,,λn),S={E(λ1),,E(λn)}

Die Idee des Jacobi-Verfahrens besteht darin, das jeweils betragsgrößte Außerdiagonalelement mit Hilfe einer Givens-Rotation auf 0 zu bringen, und sich auf diese Art mehr und mehr einer Diagonalmatrix anzunähern. Es ergibt sich die Iterationsvorschrift

A(0)=AA(k+1)=RkTA(k)Rk=RkTRk1TR0TSkTA(0)R0Rk1RkSk

mit Rk=[10000cosφsinφ00sinφcosφ00001],

wobei cosφ und sinφ jeweils in der p-ten und q-ten (p<q) Zeile und Spalte stehen und |apq(k)||aij(k)|1i,jn,i=j das betragsgrößte Außerdiagonalelement von A(k) darstellt. Die Komponenten von Rk ergeben sich nun aus folgender Überlegung:

Die Transformation RkTA(k)Rk bewirkt speziell in den Kreuzungselementen folgende Veränderungen:

app(k+1)=app(k)cos2φ2apq(k)cosφsinφ+aqq(k)sin2φaqq(k+1)=app(k)sin2φ+2apq(k)cosφsinφ+aqq(k)cos2φapq(k+1)=aqp(k+1)=(app(k)aqq(k))cosφsinφ+apq(k)(cos2φsin2φ)()
Da apq(k+1)=0 sein soll, ergibt sich aus ():Θ:=aqq(k)app(k)2apq(k)=cot2φ=1tan2φ2tanφ
tanφ={1Θ+sgnΘ1+Θ2Θ=01Θ=0cosφ=11+tan2φ,sinφ=tanφcosφ

Da die Rotationsmatrizen orthogonal sind und Produkte orthogonaler Matrizen wieder orthogonal sind, wird auf diese Art eine orthogonale Ähnlichkeitstransformation beschrieben. Es lässt sich zeigen, dass die Folge der Matrizen A(k) gegen eine Diagonalmatrix konvergiert. Diese muss aufgrund der Ähnlichkeit dieselben Eigenwerte besitzen.

A(k)kdiag(λ1,,λn)

Klassisches und zyklische Jacobi-Verfahren

Beim klassischen Jacobi-Verfahren wird in jedem Iterationsschritt das betragsmäßig größte Element zu Null gesetzt. Da die Suche nach diesem der Hauptaufwand des Algorithmus ist, wendet das zyklische Jacobi-Verfahren in jedem Iterationsschritt je eine Givensrotation auf jedes Element des strikten oberen Dreiecks an.

Literatur

  • Kaspar Nipp, Daniel Stoffer: Lineare Algebra: Eine Einführung für Ingenieure unter besonderer Berücksichtigung numerischer Aspekte. VDF Hochschulverlag AG 2002, ISBN 978-3-7281-2818-8. Abschnitt 10.2 (S. 222–228) (eingeschränkte Online-Version (Google Books))

Einzelnachweise

  1. Jacobi, Über ein leichtes Verfahren, die in der Theorie der Säkularstörungen vorkommenden Gleichungen numerisch aufzulösen, Crelle's Journal, Band 30, 1846, S. 51–94