Verwendung der Lanczos-Methode zur Berechnung von Eigenwerten und Eigenvektoren

8

Ich habe eine spärliche und symmetrische Matrix A (nxn). Die Methode Lanczos transformiert die Matrix A in die tridiagonale und symmetrische Matrix T und die Lanczos-Vektoren in der Matrix V. Wie berechne ich von dort aus k kleinste oder größte Eigenwerte und entsprechende Eigenvektoren?

HongTu
quelle

Antworten:

11
  • Für Eigenwerte , nehmen Sie einfach größten oder kleinsten Eigenwert von . Sie sind gute Annäherungen an , vorausgesetzt, die Anzahl der Lanczos-Iterationen ist im Vergleich zu groß .kTAk

  • Etwas schwieriger ist es, wenn wir auch Eigenvektoren wollen .
    Der einfachste Weg besteht darin, jeden Eigenvektor von mit nach links zu multiplizieren , wobei , wie Sie sagten, die Sammlung von Lanczos-Vektoren ist. Dieser Ansatz ist jedoch für viele Klassen von Matrizen unzureichend, da Rundungsfehler dazu führen, dass die Lanczos-Vektoren ihre Orthogonalität verlieren (1). Ein besserer Weg besteht darin, die Lanczos-Vektoren in durch einen Gram-Schmidt-Schritt neu zu orthogonalisieren . Sei der te Lanczos-Vektor, der berechnet wird, und seiuiTVV z i q 1 , q 2 , , q i - 1V

    V
    ziq1,q2,,qi1seien Sie die vorherigen Lanczos-Vektoren. Wir mutieren , um alle Komponenten von , die parallel zu : Es stellt sich heraus, dass wir zweimal neu orthogonalisieren müssen, um die numerische Orthogonalität der Lanczos-Vektoren zu gewährleisten (2).z q 1 , q 2 , , q i - 1 z ' = z - i - 1 j = 1 ( z T q j ) q jzzq1,q2,,qi1

    z=zj=1i1(zTqj)qj

Referenz

  1. J. Demmel, Angewandte Numerische Lineare Algebra
  2. B. Parlett, Das symmetrische Eigenwertproblem
Philip Cho
quelle