作者:LogM
本文原载于 https://blog.csdn.net/qq_28739605/article/details/72854371,不允许转载~
文章难免有错误之处,请在原文评论处指出~
牛顿插值(牛顿差商法)的Matlab实现。
原本是一道作业题,发上来给大家参考。不确定是否存在bug。
函数的代码:
function newton_divided_difference( f, min_x, max_x, n )
%UNTITLED 使用牛顿差商法插值
% f为原函数,min_x max_x定义了区间,n为多项式次数
%步骤1:求x,f,f[1],f[2]...f[n]
x = min_x : (max_x-min_x)/n : max_x;
for i = 1:1:n+1
y(i) = f(x(i));
end
a=[x',y'];
for i = 1:1:n
for j = 1:1:(n-i+1)
a(j,i+2) = (a(j+1,i+1)-a(j,i+1))/(a(j+i,1)-a(j,1));
end
end
%步骤2:画原始函数图像
figure(1);
STEP = 0.001;
x = min_x : STEP : max_x;
for i &#