% Script ce testeaza interpolarea Lagrange
% Polinomul Lagrange este obtinut folosind forma Newton 
%
% Pentru testarea corectitudinii codului se ruleaza
% functii polinomiale, functii netede cu derivatele
% uniform marginite pe [a,b] si functii netede pentru care
% nu se pot stabili margini uniforme (spre exemplu functia lui Runge).
%
%
% ISA 2020-2021

% intervalul [a,b] in care se selecteaza nodurile (MODIFICA)
a = -1;
b = 1;

% incrementul pentru xdata (MODIFICA)
hdata = (b-a)/32;

fhandle  = @fun_runge;    % (MODIFICA)

xdata = [a:hdata:b];
ydata = feval(fhandle,xdata);

% incrementul pentru x
h   = (b-a)/512;     % (MODIFICA)

% valorile pentru x si functie
x   = [a:h:b];
y   = feval(fhandle,x);

% valorile pentru polinomul de interpolare
L   = newton_interp(x,xdata,ydata);


% plotarea
figure;
title('Functia si Polinomul de Interpolare');
plot(x,y,x,L, '*r');


% eroarea
figure;
title('Eroarea in interpolarea Lagrange');
plot(x,abs(y-L));

