% Angewandte Numerik 2, Wintersemester 2015/2016, 16.10.2015
% Uebungsblatt 01, Aufgabe 5: Kubische Splines

% Hauptprogramm:
% Liest die Punkte (also Knoten mit Funktionswerten) ein,
% berechnet einen kubischen Spline durch diese Punkte und
% plottet den berechneten Spline in die Grafik.



%% Initialisierungen

clf                         % Inhalt des aktuellen Grafik-Fensters löschen
axis([0 10 0 10])           % darzustellender Bereich fuer x- und y-Achse
hold on

% xy:   Matrix mit den eingegebenen Punkten, fuer jeden Knoten eine Spalte
%       1. Zeile:   die x-Werte
%       2. Zeile:   die zugehörigen y-Werte
% n:    Anzahl der eingegebenen Punkte

xy = [];                    % noch keine Punkte eingegeben
n = 0;  



%% Eingabe der Punkte: Schleife, danach sortieren

disp('Eingabe der Punkte mit der linken Maustaste,')
disp('letzter Punkt mit der rechten Maustaste.')

button = 1;                 % linke Maustaste hat den Wert 1
while button == 1           % solange die linke Maustaste verwendet wurde
    [xi,yi,button] = ginput(1);     % ginput(m) liest m Punkte ein,
                                    % also einen Punkt einlesen
    plot(xi,yi,'ro')        % diesen anzeigen,
    n = n+1;                % zaehlen und
    xy(:,n) = [xi;yi];      % in der Matrix abspeichern
end

[T,ind] = sort(xy(1,:));    % T: die Knoten (x-Werte) sortiert
Y = xy(2,ind);              % Y: die zugeh. Y-Werte in gleicher Reihenfolge



%% Berechnung der Koeffizientenmatrix des interpolierenden kubischen Splines

% To Do
disp('Berechnung der Koeffizientenmatrix noch nicht implementiert.');


                                            
%% Plot des berechneten Splines in das aktuelle Grafikfenster

% To Do
disp('Plotten des berechneten Splines noch nicht implementiert.');


hold off