clear all;
n=20
H=hilb(n);  % Hilbertmatrix
einsen=ones(n,1); % Einservektor
b=H*einsen        % kuenstliche rechte Seite
x=H\b;            % MATLAB-Loesung
resid=H*x-b;      % Residuum
xfehler=x-einsen; % x - Fehler, absolut=relativ
% Jetzt eine Verbesserung durch 
% regularisierte Singulaerwertzerlegung.
% Man sehe sich Seite 69 des Buches an.
[U S V]=svd(H);  % Singulaerwertzerlegung 
z=U'*b;          % neue rechte Seite
ep=1.0e-12;      % das Epsilon des Buches
sd=diag(S);      % S-Diagonale rausholen
gutliste=find(abs(sd)>=ep);  % hole die guten Indizes
y=zeros(n,1);                % das wird der Loesungsvektor bei SVD,
                             % die  regularisierte Form von y=S\z
y(gutliste,1)=z(gutliste,1)./sd(gutliste,1);% vektoriell berechnet
xsvd=V*y;                    % das ist die eigentliche SVD-Loesung
xsvdfehler=xsvd-einsen;      % und das ist der x-Fehler
svdresid=H*xsvd-b;           % und das neue Residuum.
% Ausgabe vertikal, vierspaltig, zum Einbinden in den Text
format short g
Ausgabe=...
    [xfehler resid xsvdfehler svdresid]
save ('Aufgabe12.txt','Ausgabe','-ascii')
