function N=wepnewton(x,y,xi)
%Newton基本插值方法
n=length(x);
m=length(y);
if m~=n
error('x or y 输入有误,再来');
end
A=zeros(n);
Z=1.0;
A(:,1)=y;
N=A(1,1);
for k=2:n % k 为列标
for i=k:n % i 为行标
A(i,k)=(A(i-1,k-1)-A(i,k-1))/(x(i+1-k)-x(i));
end
Z=Z*(xi-x(k-1));
N=N+Z*A(k,k);
end
disp('差商表');
disp(A);
%disp(N);
fprintf('Newton插值的结果保留6位小数是 %10.6f\n',N);
%Newton基本插值方法
n=length(x);
m=length(y);
if m~=n
error('x or y 输入有误,再来');
end
A=zeros(n);
Z=1.0;
A(:,1)=y;
N=A(1,1);
for k=2:n % k 为列标
for i=k:n % i 为行标
A(i,k)=(A(i-1,k-1)-A(i,k-1))/(x(i+1-k)-x(i));
end
Z=Z*(xi-x(k-1));
N=N+Z*A(k,k);
end
disp('差商表');
disp(A);
%disp(N);
fprintf('Newton插值的结果保留6位小数是 %10.6f\n',N);