原文地址:
牛頓插值法,matlab編程計算
作者:
lillian
%保存文件名為New_Int.m
%Newton基本插值公式
%x為向量,全部的插值節點
%y為向量,差值節點處的函數值
%xi為標量,是自變量
%yi為xi出的函數估計值
function yi=New_Int(x,y,xi)
n=length(x);
m=length(y);
if n~=m
error('The lengths of X ang Y must be equal!');
return;
end
%計算均差表Y
Y=zeros(n);
Y(:,1)=y';
for k=1:n-1
for i=1:n-k
if abs(x(i+k)-x(i))<eps
error('the DATA is error!');
return;
end
Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));
end
end
%計算牛頓插值公式
yi=0;
for i=1:n
z=1;
for k=1:i-1
z=z*(xi-x(k));
end
yi=yi+Y(1,i)*z;
end