clc
clear
disp('  Közelítés Lagrange interpolációval');
disp('  1. példa')
f = @(x) x.* cos(x)             % ezt a függvényt közelítjük interpolációval
x = [ 3 -1 2 4 5]               % 5 alappont, nem kell rendezni őket
y = f(x);                       % a függvényértékek az alappontokban

Ln = LagrangeInterpolacio(x,y) % a Lagrange-polinom együttható vektora

disp('  Ellenőrzés, teljesül-e az interpolációs feltétel:');
y 
yLn = polyval(Ln,x)

interp_hiba = y - yLn  % az eltérés az alappontokban ("majdnem" 0 :-)
display('  Elfogadható-e az eredmény?');

disp('  ---------------------');
input('  Folytatás ENTER-rel');
disp('  ---------------------');

disp(' Sok alappont esetén a kerekítési hibák miatt nagyon torzulhat az eredmény:');

for n = 16:2:36
  display(n)
  x = linspace(-1,5,n);
  y = f(x);

  Ln = LagrangeInterpolacio(x,y); % a Lagrange-polinom együttható vektora
  yLn = polyval(Ln,x);
  

  interp_hiba_norma = norm(y - yLn, inf)
endfor
display('  A Lagrange polinom n=24 alapponttól már használhatatlan!');


disp('  ---------------------');
input('  Befejezés ENTER-rel');


