function [M,y]=NewtonInterpolation(X,Y,x)
n=length(X);
N=zeros(n,1);
M=zeros(n,1);
temp=1;
y=0;
for k=1:n
M(k)=0;
for i=1:k %求差商 函数值的线性组合
N(i)=1;
for j=1:k
if j~=i
N(i)=N(i)*(X(i)-X(j));
end
end
M(k)=M(k)+Y(i)/N(i); %求得k阶差商
if i>1
temp=temp*(x-X(i-1));
end
end
y=y+M(k)*temp; %求得结果
temp=1; %将临时变量重置
end
使用数据检验:
0 |