% Bastian Groß
% Programmieraufgabe 1
% Numerik Sommersemester 2014
% 
% 13. Mai 2014
%
% Lösen eines Ausgleichsproblems
clc, clear all

% Eingabe
A=[2 63 94; 2 43 84; 2 21 10; 0 20 10];
B=eye(4);

% Ausgabe in Datei
fid=fopen('Programmieraufgabe1','w');


% Aufgabenteil i) Pseudoinverse
fprintf(fid,' Ausgleichslösung mittels Pseudoinverser \n\n');
fprintf(fid,'e    x_1     x_2      x_3      Norm(x)    Zeit \n');
for e=1:4
    tic;
    x=pinv(A)*B(:,e);
    t=toc;
    fprintf(fid,'%1.0f  %2.4f  %2.4f  %2.4f  %1.4e  %1.6f \n', e, x(1),x(2),x(3),norm(x),t);
end

% Aufgabenteil ii) Singlärwertzerlegung
fprintf(fid,'\n\n\n Ausgleichslösung mittels Singulärwertzerlegung \n\n');
fprintf(fid,'e    x_1     x_2      x_3      Norm(x)    Zeit \n');
for e=1:4
    tic;
    x=ausgleich(A,B(:,e));
    t=toc;
    fprintf(fid,'%1.0f  %2.4f  %2.4f  %2.4f  %1.4e  %1.6f \n', e, x(1),x(2),x(3),norm(x),t);
end

fclose(fid);



