function A3
x  = linspace(0,1,9);
xj = 0:0.002:1;

i=1;
subplot(2,2,1);
plot(xj,h(i,x,xj),'k'); hold on;
plot(x,h(i,x,x),'.k');

subplot(2,2,2);
plot(xj,bigH(i,x,xj),'k'); hold on;
plot(x,bigH(i,x,x),'.k');

i=5;
subplot(2,2,3);
plot(xj,h(i,x,xj),'r'); hold on;
plot(x,h(i,x,x),'.r');

subplot(2,2,4);
plot(xj,bigH(i,x,xj),'r'); hold on;
plot(x,bigH(i,x,x),'.r');

grid on;
axis tight;


%%%%%%%%%%%%%%%%%%%%%%%%%%%


function f = h(i,x,xj)

% Werte die Funktion h_i für die Stützstellen x
% an den Stellen xj aus. ACHTUNG: der erste index i
% ist 1, nicht 0 (im Gegensatz zur Vorlesung)!
%
% Eingabe: i  1 <= i <= n=length(xj)
%          x  Stützstellen
%          xj Stellen, an denen h_i ausgewertet wird
%
% Ausgabe: f  = h_i(xj),

psiPrime = sum(1./( x(i)-x([1:i-1 i+1:end]) ));
f = psi(i,x,xj).^2.*(1-2*psiPrime*(xj-x(i)));

%%%%%%%%%%%%%%%%%%%%%%%%%%


function f = bigH(i,x,xj)

% Werte die Funktion H_i für die Stützstellen x
% an den Stellen xj aus. ACHTUNG: der erste index i
% ist 1, nicht 0 (im Gegensatz zur Vorlesung)!
%
% Eingabe: i  1 <= i <= n=length(xj)
%          x  Stützstellen
%          xj Stellen, an denen H_i ausgewertet wird
%
% Ausgabe: f  = h_i(xj),

f = psi(i,x,xj).^2.*(xj-x(i));


%%%%%%%%%%%%%%%%%%%%%%%%%% 


function f = psi(i,x,xj);
% Werte die Funktion psi_i für die Stützstellen x
% an den Stellen xj aus. ACHTUNG: der erste index i
% ist 1, nicht 0 (im Gegensatz zur Vorlesung)!
%
% Eingabe: i  1 <= i <= n=length(xj)
%          x  Stützstellen
%          xj Stellen, an denen psi_i ausgewertet wird
%
% Ausgabe: f  = psi_i(xj),

f = zeros(size(xj));

for j=1:length(xj)
   f(j) = prod((xj(j)-x([1:i-1 i+1:length(x)])) ./ (x(i)-x([1:i-1 i+1:length(x)])));
end;


