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,⋯,qi−1seien 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,⋯,qi−1
z′=z−∑j=1i−1(zTqj)qj