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实现牛顿插值的主要内容,如果未能解决你的问题,请参考以下文章