Вычислительный эксперимент и методы вычислений. Ловецкий К.П - 23 стр.

UptoLike

23
for i:=0 to k do
begin
s:=1;
for j:=0 to k do
if j<>i then
s:=s*(x[i]-x[j]);
sum:=sum+f(x[i])/s;
end;
DifCoefs[k] := sum;
end;
end;
function P_n(xx:real; x, DifCoefs : array of real;
n:integer):real;
// вычисление значений полинома Ньютона в точке xx по
// значениям абсцисс узлов интерполяции x[0..n-1] и
// массиву конечных разностей DifCoefs[0..n-1]
var
s, sum : real;
i, j : integer;
begin
sum:=0;
for i:=0 to n-1 do
begin
s:=1;
for j:=0 to i-1 do
begin
if j<>i then
s:=s*(xx-X[j]);
end;
sum:=sum+s*DifCoefs[i];
end;
result := sum;
end;