%
% -----------------------------------------------------
%
%   Approximation  im  Wintersemester 2012/13
%   H.J. Oberle
%
%   Aufgabe 12: 
%   Berechnung von Normen des
%   Interpolationsoperators
%
%   P_n(1): Aequidistante Knoten in [-1,1]
%   P_n(2): (innere) Tschebyscheff-Knoten
%
% -----------------------------------------------------
%
format long e
format('compact')
clear all
close all
%
%   Intervall [-a,a]
a  =  1;
%
%   Schleife ueber den Interpolationsgrad n
%
for n = 2:2:20
%
%   A. Interpolationsknoten aequidistant
%
h  =  2/n;
T  =  [-1:h:1];
T  =  a*T;
%
%   Lagrange-Polynome berechnen
%
m  = length(T);
t  = [-a:0.001:a];
%
S  =  0+0*t;
for k = 1:m
  L  = 1+0*t;
%
  for j=1:m
  if j ~= k
     L = L.*(t-T(j))/(T(k)-T(j));
  end
  end
%
  S  =  S + abs(L); 
end
%
  Pn1(n/2) = max(S);
%
%   B. Tschebyscheff Knoten 
%
for k=1:n+1;
    T(k) = cos((1+2*(n+1-k))/(2*(n+1))*pi);
end
T  =  a*T;
%
%   Lagrange-Polynome berechnen
%
m  = length(T);
t  = [-a:0.001:a];
%
S  =  0+0*t;
for k = 1:m
  L  = 1+0*t;
%
  for j=1:m
  if j ~= k
     L = L.*(t-T(j))/(T(k)-T(j));
  end
  end
%
  S  =  S + abs(L); 
end
%
  Pn2(n/2) = max(S);
%
end
%
fprintf(' Operatornormen: \n')
fprintf(' P_n(1): Aequidistante Knoten,\n')
fprintf(' P_n(2): Tschebyscheff-Knoten\n')
fprintf(' \n')
fprintf('    n - ||P_n(1)||  -  ||P_n(2)||\n')
fprintf(' \n')
%
for l=1:1:10
fprintf('   %2.0f   %1.5e   %1.5e\n',2*l, Pn1(l), Pn2(l))
end
%
