function Hausaufgabe9

  f = @(x) 1./(1+25*x.^2);
  
  figure;
  HA9(-1,1,4,f);
  
  figure;
  HA9(-1,1,10,f);
  
  figure;
  HA9(-1,1,18,f); 
end

% Berechnet Interpolationspolynom für f mit allgemeinem Ansatz im Intervall
% [a,b] zu n+1 äquidistanten Stützstellen
function HA9(a,b,n,f)

  % Stützstellen und -werte
  x = linspace(a,b,n+1)';
  y = f(x);
  
  % Matrix für allg. Ansatz aufstellen
  A = zeros(n+1,n+1);
  
  for i=1:n+1
      A(:,i) = x.^(i-1);
  end
  
  % LGS lösen und Polynom berechnen
  c = A\y;
  xp = linspace(a,b,200)';
  yp = zeros(length(xp),1);
  
  for i=1:n+1
      yp = yp + c(i)*xp.^(i-1);
  end
  
  % Polynom + Originalfunktion plotten
  plot(xp, f(xp));
  hold on;
  plot(xp, yp, 'r');
  hold off;
end

% Näherung wird mit steigender Stützstellenzahl vor allem zum Rand hin schlechter, insb. bei n+1=19
% ist die Interpolation unbrauchbar
