MATLAB实现牛顿插值

Posted 不秩稚童

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB实现牛顿插值相关的知识,希望对你有一定的参考价值。

    牛顿插值法的原理,在维基百科上不太全面,具体可以参考这篇文章。同样贴出,楼主作为初学者认为好理解的代码。

function p=Newton1(x1,y,x2)
%p为多项式估计出的插值
syms x
n = length(x1);
%差商的求法

for i=2:n
   f1(i,1)=(y(i)-y(i-1))/(x1(i)-x1(i-1));
end

for i=2:n
    for j=i+1:n
       f1(j,i)=(f1(j,i-1)-f1(j-1,i-1))/(x1(j)-x1(j-i));
   end
end
f1=[y‘,f1]%  输出带0阶差商的差商表格

%Newton插值函数
Newton=f1(1,1);
for i=2:n
    tt=1;
    for j=1:i-1
        tt=tt*(x-x1(j));
    end
    Newton=Newton+f1(i,i)*tt;
end
fprintf(‘Newton插值函数为\n‘)
expand(Newton)     % 将连乘多项式合并展开
x = x2;
p = eval(Newton);   % 代入值计算
%fprintf(‘Newton插值函数在所求点x2的函数值为\n‘)
%p
    

  

以上是关于MATLAB实现牛顿插值的主要内容,如果未能解决你的问题,请参考以下文章

多项式函数插值:全域多项式插值单项式基插值拉格朗日插值牛顿插值 [MATLAB]

[数学建模]使用MATLAB实现插值

matlab中牛顿法编程

Python实现数值计算----牛顿插值法

matlab中牛顿法程序

matlab 各种插值方法的比较