function A10_0
%
% 2D-Interpolation der Daten in F10.dat 
%
% Ihre Aufgabe ist es, eine Funktion interpolate_2D
% zu implementieren (siehe unten)
%

load F10.dat

% eingelesene Daten zuordnen
X = F10(:,1);
Y = F10(:,2);
f = F10(:,3);
% in 13 x 13 Matrizen verwandeln
n=12;
X=reshape(X,n+1,n+1);
Y=reshape(Y,n+1,n+1);
f=reshape(f,n+1,n+1);
% Stützstellen extrahieren
x=X(1,:);
y=Y(:,1);

% f_ij zeichnen
plot3(X,Y,f,'.r');
drawnow;
hold on;


% Auswertungsstellen
xs = linspace(0,1,40);
ys = linspace(0,1,40); 


% 2D-Interpolation
flops(0); tic;
ps = interpolate_2D(x, y, f, xs, ys);
fprintf('\nFlops: %i\n', flops);
fprintf('Zeit:  %0.2g\n\n', toc);

% Ergebnis zeichnen
surfl(xs,ys,ps);
shading interp;
lighting phong;
colormap bone;
material dull;
light('position',[-1 -1 1]);

function p = interpolate_2D(x, y, f, xs, ys)
%
% Diese Funktion ist Ihr Job!
%
% Eingabe:
%   x,y   : StützstellenVEKTOREN (x_1,...,x_n), (y_1,...,y_n)
%   f     : f(j,i) = MATRIX der f_ij, d.h. das Interpolationspolynom p
%           erfüllt p(x_i,y_j) = f(j,i) (REIHENFOLGE!).
%   xs,ys : VEKTOREN, die die Stellen beschreiben, an denen das
%           Polynom ausgewertet wird, d.h. es soll berechnet werden:
%
%           p(xs(i),ys(j)) für i=1,...,length(xs), j=1,...,length(ys)
%

p  = zeros(length(ys),length(xs));

%% los geht's !!


