clear all;
close all;
global xp
global fp;
% Demo zur Approximation
% wir wollen das alles plotten, deshalb Plotpunkte nehmen
np=500;
hp=2/np;
xp=-1:hp:1;
fp=appfun(xp);
n=8;  % Polynomgrad 
% % wir beginnen mit der Taylorreihe
% sumt=1;
% for i=1:n
%  sumt=sumt+xp.^i/factorial(i);    
% end
% figure
% plot(xp,fp-sumt);
% title('Fehler der Taylorreihe')
% Jetzt kommen Interpolationen
h=2/n; % n+1 aequidistante Punkte mit Abstand h 
x=-1:h:1;
f=appfun(x);
p=polyfit(x,f,n); % das liefert die Koeff. der aequisdistanten Interpolation
% wir plotten den Fehler der aequidistenten Interpolation
sum=polyval(p,xp);
figure
plot(xp,fp-sum);
title('Fehler der aequidistanten Interpolation')
% Jetzt dasselbe in T-Nullstellen
xt=cos(pi*(1+2*(0:n))/(n*2+2));
ft=appfun(xt);
pt=polyfit(xt,ft,n);
sumi=polyval(pt,xp);
figure
plot(xp,fp-sumi);
title('Fehler der T-Interpolation')
% und jetzt eine beste diskrete L_2-Approximation
% auf allen Plotpunkten
p=polyfit(xp,fp,n);
suma=polyval(p,xp);
figure
plot(xp,fp-suma);
title('Fehler der besten diskreten L_2-Approximation')
% und jetzt noch die beste diskrete T-Approximation, 
% brutal programmiert, nicht nachahmen :-)
% ebenfalls auf allen Plotpunkten
co=fminimax(@polfun,p);
sumtt=polyval(co,xp);
figure
plot(xp,fp-sumtt);
title('Fehler der besten diskreten T-Approximation')

