function L = newton_interp(x,xdata,ydata)
% Lagrange sub forma lui newton
% Input:
%   - xdata: nodurile xk, k=0,..,n in care se face interpolarea
%   - ydata: = yk, k=0,...,n valorile functiei f in nodurile xk, i.e.,
%     yk= f(xk).
% Output:
%   - L =L_n(f;x0,...,x_n)(x): polinomul de interpolare a lui Lagrange
%     evaluat in x si corespunzator datelor de interpolare (xdata,ydata)
%
% Functia implementeaza forma Newton a polinomului de interpolare. Pentru
% a obtine diferentele divizate necesare in forma newton se apeleaza
% divdiff_distinct
%
% ISA  2020-2021


n = length(xdata)-1;



% !!! OBTINETI TABELUL DE DIFERENTE DIVIZATE DIN  divdiff_distinct.m
% !!! CEVA DE GENUL: D=...



L = ydata(1);
P = 1;
for k=1:n
  % LAGRANGE DIN FORMA LUI NEWTON
  % se foloseste tabelul de diferente divizate date de matricea D
  
  P = P.*(x-xdata(k));
  L = L + D(k+1,k+1)*P;
end;
