牛顿插值的简单matlab代码

备注:1.由于是敲实验报告自用,所以不能保证代码的通用性,具体问题还要具体分析
2.这里只有函数文件,脚本文件还请读者自行建立

function y=n1(x,y,n,x1)
# 参数说明,x为自变量矩阵,y为因变量矩阵,如x=[0.4,0.5,0.6,0.7,0.8];
# y=ln(x),y=[-0.916291,-0.693147,-0.510826,-0.356675,-0.223144]
#n为x矩阵的长度(这里是5)
# x1为预测值的自变量
Y= zeros(n);
b=zeros(n,1);
% 差分表是矩阵Y,这里的差分表第一列是f(x),正常差分表第一列是自变量x
Y(:,1) = y;
b(1,1)=x1-x(1)
z=Y(1,1);

for k = 2 : n
 b(k)=b(k-1)*(x1-x(k))
   for i=n: -1:k
 Y(i,k) = (Y(i,k-1) - Y(i-1,k-1))/(x(i) - x(i-k+1));
               if i==k
                     z=z+Y(i,i)*b(i-1);
               end
end
end
y=z;
end
 


你可能感兴趣的:(matlab,数值分析,matlab)