% NewtonForward.m
% P44 例4
clc;
format long
x = 2.4:0.1:2.9;
y = besselj(0,x);
n = length(x);
% 计算差分。通过下面的计算,将x0处的第i阶差分存入y(i+1)
for i = 1:n-1
for j = n:-1:i+1
y(j) = y(j)-y(j-1);
end
end
% 通过Newton向前插值公式计算2.45处的函数值
f = y(1);
t = 0.5;
co = 1;
for i = 1:n-1 % i 表示差分阶数
% co 表示组合数(t,i)
co = co * (t-i+1)/i;
% 输出 利用从点2.4及后面i个节点得到插值多项式 在2.45处的函数值
f = f + co*y(i+1)
end
% 2.45处精确函数值
f_exact = besselj(0,2.45)
% P44 例4
clc;
format long
x = 2.4:0.1:2.9;
y = besselj(0,x);
n = length(x);
% 计算差分。通过下面的计算,将x0处的第i阶差分存入y(i+1)
for i = 1:n-1
for j = n:-1:i+1
y(j) = y(j)-y(j-1);
end
end
% 通过Newton向前插值公式计算2.45处的函数值
f = y(1);
t = 0.5;
co = 1;
for i = 1:n-1 % i 表示差分阶数
% co 表示组合数(t,i)
co = co * (t-i+1)/i;
% 输出 利用从点2.4及后面i个节点得到插值多项式 在2.45处的函数值
f = f + co*y(i+1)
end
% 2.45处精确函数值
f_exact = besselj(0,2.45)