%
% -------------------------------------------------------
%
%   Approximation im Wintersemester 2013/14
%   (H.J. Oberle)
%
%   Aufgabe 40 : 
%   Tschebyscheff-Koeffizienten von J_0(x), -8 <= x <= 8
% 
% -------------------------------------------------------
%
%
clear all
close all
format long e
format('compact')
%
n    =  20;
c    =  0*[1:n+1]; 
c1   =  c;
c2   =  c;
c(n+1) =  1.e-12;
%
for k=n:-1:1
    c1(k) =  4*k*c(k+1) + c1(k+1);
    c2(k) =  2*(2*k-1)*c1(k) + c2(k+1);
    c(k)  =  -c(k+1) - (1/64)*(c2(k) + c2(k+1) + 2*c1(k)); 
end
%
%   Skalierung
%
v = -1;
d = 0.5*c(1);
for k=2:n+1
    d = d + v*c(k);
    v = -v;
end
%
d = 1/d;
c = d*c;
%
fprintf('\n  Tschebyscheff-Koeffizienten: \n ')
fprintf('\n   2k       c(2k) \n \n')
for k=1:n+1
	j = 2*(k-1);
    fprintf('   %2.0f   %+2.15e  \n',j, c(k))   
end
%
%   Auswertung der T-Entwickung 
%   mittels des Clenshaw Algorithmus
%   Plot der Fehlerfunktion
% 
m   =  12;
x   =  [-1:0.001:1];
y   =  2*x.*x - 1;
y2  =  2*y;
%
U2  =  0*y;
U1  =  c(m) + U2;
for k = m-1:-1:2
    U0  =  U1.*y2 - U2 + c(k);
    U2  =  U1;
    U1  =  U0;
end; 
U0  =  U1.*y2 - U2 + c(1);
app =  0.5*(U0 - U2);
err = app - real(besselj(0,8*x));
%
plot(8*x,err,'b','Linewidth',1.2)
%axis([0 1 -1e-5 1e-5])
xlabel('Aufgabe 40: m = 12','FontSize',14)
ylabel('Absoluter Fehler','FontSize',14)
set(gca,'FontSize',12,'FontSize',12)
%
print -depsc aufg40a
% --------------------------------------------------------
