% Aufgabe 5a
% n = stützstellen
% aufruf für plot cla;interpoly(fun,5,5,1);interpoly(fun,10,10,1);interpoly(fun,20,20,1);

function interpoly(fun,n,g,w)
% fun = funktion zur stuetzstellenberechnung ('normal' = äquidistanz, 'chebyshev' = nach chebychev)
% n = stuetzstellen
% g = grad polynom%
% w = warten in sekunden

hold on;

x = feval(fun,n);
ystuetz = 1./(x.*x+1); %f(x) exakt
plot(x,ystuetz,'blackO') %f(x)
drawnow;

c = polyfit(x,ystuetz,g); %konstante des polynoms a(0)*x^n + ... + a(n-1)*x^1 + a(n)
xfine = linspace(-5,5,1001); %feinere x einteilung
yinterpoly = polyval(c,xfine);
plot(xfine,yinterpoly,'blue-')
drawnow;

title({'Interpolationspolynom',fun});
xlabel('Stuetzstellen x');
ylabel('f(x)');
hold off;

%warten 1 sekunde
tic;
fprintf('Warte %i Sekunden\n',w);
while toc < w
 %nichts tun
end;

%unterfunktionen

function x = normal(n)
%stuetzstellen äquidistanz
x = linspace(-5,5,n+1); %stuetzstellen: bereich fix -5 bis 5, mit äquidistanz abstand

function x = chebyshev(n)
%stuetzstellen chebyshev
j = 0:1:n;
x = -5*cos( (2*j+1)/(n+1) * pi/2 );
