% Dieses Skript testet die Programme von Aufgabenblatt 7. Standardmaessig wird die
% sin(x) auf dem Intervall [0;pi] interpoliert. Die inneren Knoten werden dabei
% zufällig verteilt. Um eigene Funktionen zu testen, müssen die Variablen a,b mit a<b
% und Function Handles fh,fph für die Funktion und die Ableitung im Workspace definiert
% sein.
try
  if isempty(fh) || isempty(a) || isempty(b)
    fh=@sin;
    fph=@cos;
    a=0;b=pi;
  end
catch
  fh=@sin;
  fph=@cos;
  a=0;b=pi;  
end
x=[a (a+sort((b-a)*rand(1,8))) b];
y=fh(x);
yp0=fph(a);
ypn=fph(b);
ppl=csplinel(x,y,yp0);
ppr=cspliner(x,y,ypn);
xx=a:(b-a)/100:b;
plot(xx,ppval(ppl,xx),'r',xx,ppval(ppr,xx),'b',x,y,'k+');
legend('Linke Ableitung','Rechte Ableitung','Knoten');
if strcmp(func2str(fh),'sin')
  axis([a b 0 1]);
else
  axis([a b min(yy) max(yy)])
end
