function [ P ] = nip(x,f)
% function [ P ] = nip(x, f)
%   Newtonuv interpolacni polynom

n=length(x);
m=length(f);
if n~=m
    error('Data nemaji stejnou delku!');
end

bp=1; % bazovy polynom
P=f(1); % vysledny polynom

for k=2:n
    pd=diff(f(k-1:end))./(x(k:end)-x(1:end-k+1)); % pomerne diference
    f(k:end)=pd;
    bp=conv(bp,[1, -x(k-1)]); % novy bazovy polynom
    P=[0 P]+f(k)*bp;
end

end

