% Demoprogramm zur Entstehung von Geisteigenwerten im Lanczos
% Prozess. 
%
% Es läßt sich erkennen, dass - wie wir es aus der Theorie erwarten
% - die extremen Eigenwerte zuerst konvergieren. Dann aber gerade
% diese auch mehrfach konvergieren, da im Prozessverlauf die
% Orthogonalität der Iterierten gegenüber bereits konvergierten
% Ritzvektoren v_i verloren geht. Komponenten der iterierten in
% Richtung v_i erzeugen dann erneut Konvergenz gegen das Ritzpaar
% (teta_i , v_i).
%
% An der Lanczos Rekursion erkennen wir das Problem dadurch, dass
% beta_k ungefähr gleich 0 zu Auslöschung führt. D.h. Konvergenz
% führt zu schlechter Orthogonalität. In der Praxis sollte man die
% v_{k+1} gegen die q_1,...,q_k reorthogonalisieren. (z.B. mit
% Gram-Schmidt, besser (numerisch stabiler) mit
% Householder-Reorthogonalisierung. Beachte: Dadurch verliert man
% die kurze 3 Terme Rekursion. Es müssen jetzt alle q_i gespeichert
% werden. Bei Speicherknappheit sind dann zusätzlich
% Neustartstrategien notwendig. 

ns=100; %Anzahl der auszuführenden Lanczos Schritte 

% Initialisierung des Plots
clf;
axis([1,ns,-0.5,3.5]);

% Definition der Matrix
A=sparse(diag([0:.01:2 2.5 3]))

% Aufruf des Lanczos Verfahrens ohne Reorthogonalisierung
lanczos(A,ns);