资源描述:
《数值分析插值函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Newton插值多项式利用插值基函数很容易得到拉格朗日插值多项式,拉格朗日插值公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,不得不重新计算所有插值基函数,这在实际计算中是很不方便的,为了克服这一缺点,引入了出具有承袭性质的牛顿插值多项式,首先介绍在牛顿插值中需要用到的差商计算。◆差商设有函数为一系列互不相等的点,称为关于点的一阶差商,记为,即1-14)类似于高阶导数的定义,称一阶差商的差商为关于的二阶差商,记为.一般地,称为关于的阶差商,记为函数关于的零阶差商即为函数在的函数值,。容易证明,差
2、商具有下述性质:(1)各阶差商均具有线性性,即若,则对任意正整数,都有(2)阶差商可表示成的线性组合。其中。用归纳法可以证明这一性质。是显然的。时(1-16)(3)各阶差商均具有对称性,即改变节点的位置,差商值不变。如(4)若是次多项式,则一阶差商是次多项式。事实上,如果是次多项式,则也是次多项式,且。于是可分解为其中为次多项式。所以为次多项式。◆计算差商按照差商定义,用两个k-1阶差商的值计算k阶差商,通常用差商表的形式计算和存放(见表1)。由于差商对节点具有对称性,可以任意选择两个k-1差商的值计算k阶差商。(1-18)表1
3、差商表xkf(xk)一阶差商二阶差商三阶差商四阶差商…x0x1x2x3x4x5f(x0)f(x1)f(x2)f(x3)f(x4)f(x5)f[x0,x1]f[x1,x2]f[x2,x3]f[x3,x4]f[x4,x5]f[x0,x1,x2]f[x1,x2,x3]f[x2,x3,x4]f[x3,x4,x5]f[x0,x1,x2,x3]f[x1,x2,x3,x4]f[x2,x3,x4,x5]f[x0,x1,x2,x3,x4]f[x1,x2,x3,x4,x5]【例1】给定函数的函数表-2012171217写出函数的差商表。解差商表如下
4、:(写牛顿插值多项式)1阶差商2阶差商3阶差商-2012171217-8115371◆牛顿插值(根据差商定义推导牛顿插值多项式)根据差商定义,把看成[a,b]上一点,可得左右两端乘()移项得,二阶差商:,整理得:,……同理:.只要把后一式代入前一式,就得到其中 (1-19), (1-20)=则显然,是至多次的多项式。而由即得。这表明满足插值条件,因而它是的次插值多项式。这种形式的插值多项式称为Newton插值多项式。Newton插值优点:每增加一个节点,插值多项式只增加一项,即因此便于递推运算。而且Newton插值的计算量
5、小于Lagrange插值。由插值多项式的唯一性可知,次Newton插值多项式与次Lagrange插值多项式是相等的,即,它们只是表示形式不同。因此Newton余项与Lagrange余项也是相等的,即由此可得差商与导数的关系(泰勒系数:)其中【例2】对上例的中的,求节点为的一次插值多项式,节点为的二次插值多项式和节点为的三次插值多项式。解由上例知,,,,于是有【例2】用Newton插值公式计算ln11.5。解如果仍取点作抛物线插值,按表1计算,结果如下:xiyi=lnxi一阶差商二阶差商1112132.39792.48492.56
6、490.08700.0800-0.00351x-11(x-11)(x-12)N2(x)=2.3979+0.0870(x-11)-0.0035(x-11)(x-12)ln11.5≈N2(11.5)=2.3979+0.0870×0.5+0.0035×0.5×0.5=2.442275若加节点x=10,14,ln10=2.3026,ln14=2.6391,用lnx四次插值多项式近似,则按表1计算结果如下:xiyi=lnxi一阶差商二阶差商三阶差商四阶差商10111213142.30262.39792.48492.56492.63910.
7、09530.08700.08000.0742-0.00415-0.00350-0.002900.000220.00020-0.0000051x-10(x-10)(x-11)所以ln11.5≈N4(11.5)=2.3026+0.0953×1.5-0.004×1.5×1.5+0.00022×1.5×0.5×(-0.5)-0.000005×1.5×0.5×(-0.5)×(-1.5)=2.4423522●牛顿插值的MATLAB实现在MATLAB中实现牛顿插值的代码如下:functionf=Newton(x,y,x0)%求已知数据点的牛顿
8、插值多项式%已知数据点的x坐标向量:x%已知数据点的y坐标向量:y%插值的x坐标:x0%求得的牛顿插值多项式或在x0处的插值:fsymst;if(length(x)==length(y))n=length(x);c(1:n)=0.0;elsedisp('x和y的