Matlab实现牛顿插值法

function S=ND(x,y,a)
n=length(x); %输入x的长度
cs=zeros(n-1); %初始化差商表
S=0; %累加条件
b=1; %累乘条件
for i=1:n-1 %求n-1阶差商,循环n-1次S
for j=1:n-i %第i阶差商有n-i个差商值
cs(j+i-1,i)=(y(i+j)-y(i+j-1))/(x(i+j)-x(j)); %差商计算格式
end
y(i+1:n)=cs(i:n-1,i); %将差商值保存在y中,不需要额外开辟空间
end
for i=1:n %差值结果由n项相加得到
S=S+y(i)*b; %累加过程
b=b*(a-x(i)); %每项累乘过程
end
end

相关文档
最新文档