
牛顿插值多项式的应用.pdf
3页牛顿插值多项式的应用1. 问题背景 有时候我们所测量的数据是一些点的集合,并不能很好反映结果为了研究其变化规律,我们需要对这些点进行数据处理,对其进行拟合,我们可以采用牛顿多项式进行拟合2. 数学模型 牛顿插值多项式的表达为:)()())(()()(10102010nnnxxxxaxxxxaxxaaxp牛顿插值多项式克服了增加一个借点时整个计算工作重新开始的缺点,而且可以节省乘除法运算次数3. 算法及流程流程图:matlab 程序:clc; clear; syms x x0=input('请输入对应点 x 的值'); y0=input('请输入对应点 y 的值'); m = length(x0); n= length(x0); for t = 1 : m A = zeros(n,n); A(:,1) = y0'; s = 0.0; p = 1.0; q1 = 1.0; c1 = 1.0; for j = 2 : n for i = j : n A(i,j) = (A(i,j-1) - A(i-1,j-1))/(x0(i)-x0(i-j+1)); end q1 = abs(q1*(x-x0(j-1))); c1 = c1 * j; end C = A(n, n); q1 = abs(q1*(x-x0(n))); for k = (n-1):-1:1 C = conv(C, poly(x0(k))); d = length(C); C(d) = C(d) + A(k,k);%在最后一维,也就是常数项加上新的差商end end plot(x0,y0,'r*'); axis equal grid on hold on x=linspace(x0(1),x0(end),20)'; y=polyval(C,x); plot(x,y) 4. 计算结果及分析请输入对应点 x 的值[0.2 0.4 0.6 0.8 1.0] 请输入对应点 y 的值[0.98 0.92 0.81 0.64 0.38] L =- (25*x^4)/48 + (5*x^3)/6 - (53*x^2)/48 + (23*x)/120 + 49/50 在其中红色的点是输入的数据点,蓝色的线是采用牛顿插值多项式进行拟合的结果,从图像中可以看出其吻合比较好,在其 中的误差是比较小的。
其中就是求多项式的系数编程比较麻烦,逻辑性很强。
