几种插值法的应用和比较

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共11页插值法的应用与比较信科1302万贤浩132710381格朗日插值法在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·路易斯·拉格朗日命名的一种多项式插值方法.许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解.如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值.这样的多项式称为拉格朗日(插值)多项式.数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数.拉格朗日插值法最早被英国数学家爱德华·华林于1779年发现,不久后由莱昂哈德·欧拉再次发现.1795年,拉格朗日在其著作《师范学校数学基础教程》中发表了这个插值方法,从此他的名字就和这个方法联系在一起.1.1拉格朗日插值多项式图1已知平面上四个点:(−9,5),(−4,2),(−1,−2),(7,9),拉格朗日多项式:)(xL(黑色)穿过所有点.而每个基本多项式:)(00xly,)(11xly,)(22xly以及)(xly各穿过对应的一点,并在其它的三个点的x值上取零.对于给定的若1n个点),(00yx,),(11yx,………),(nnyx,对应于它们的次数不超过n的拉格朗日多项式L只有一个.如果计入次数更高的多项式,则有无穷个,因为所有与L相差))((10xxxx……)(nxx的多项式都满足条件.对某个多项式函数,已知有给定的1k个取值点:),(00yx,……,),(kkyx,第2页共11页其中ix对应着自变量的位置,而iy对应着函数在这个位置的取值.假设任意两个不同的ix都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为:)()(0xlyxLjkjj,其中每个)(xlj为拉格朗日基本多项式(或称插值基函数),其表达式为:)()()()()()()()()(111100,0kjkjjjjjjjkjiiijijxxxxxxxxxxxxxxxxxxxxxl,拉格朗日基本多项式xli的特点是在jx上取值为1,在其它的点ix,ji上取值为0.例:设有某个多项式函数f,已知它在三个点上的取值为:10)4(f,25.5)5(f,1)6(f,要求)18(f的值.首先写出每个拉格朗日基本多项式:)64)(54()6)(5(0xxxl;)65)(45()6)(4(1xxxl;)56)(46()5)(4(2xxxl;然后应用拉格朗日插值法,就可以得到p的表达式(p为函数f的插值函数):)()6()()5()()4()(210xlfxlfxlfxp)56)(46()5)(4(1)65)(45()6)(4(25.5)64)(54()6)(5(10xxxxxx)13628(412xx,第3页共11页此时数值18就可以求出所需之值:11)18()18(pf.1.2插值多项式的存在性与唯一性存在性对于给定的1k个点:),(),,(00kkyxyx拉格朗日插值法的思路是找到一个在一点jx取值为1,而在其他点取值都是0的多项式)(xlj.这样,多项式)(xlyjj在点jx取值为jy,而在其他点取值都是0.而多项式kjjjxlyxL0)(就可以满足kijjjiyyxlyxL0000)()(,在其它点取值为0的多项式容易找到,例如:)())(()(110kjjxxxxxxxx,它在点jx取值为:)()()(10kjjjixxxxxx.由于已经假定ix两两互不相同,因此上面的取值不等于0.于是,将多项式除以这个取值,就得到一个满足“在jx取值为1,而在其他点取值都是0的多项式”:)()()()()()()()(111100kjkjjjjjjjijjxxxxxxxxxxxxxxxxxxxxl,这就是拉格朗日基本多项式.唯一性次数不超过k的拉格朗日多项式至多只有一个,因为对任意两个次数不超过k的拉格朗日多项式:1p和2p,它们的差21pp在所有1k个点上取值都是0,因此必然是多项式)())((10kxxxxxx的倍数.因此,如果这个差21pp不等于0,次数就一定不小于1k.但是21pp是两个次数不超过k的多项式之差,它的次数也不超过k,所以021pp也就是说21pp.这样就证明了唯一性.1.3性质第4页共11页拉格朗日插值法中用到的拉格朗日基本多项式nlll,,,10(由某一组nxxx10确定)可以看做是由次数不超过n的多项式所组成的线性空间:Xn的一组基底.首先,如果存在一组系数:n,,,10使得,01100nnlllP,那么,一方面多项式p是满足nnxPxPxP)(,,)(,)(1100的拉格朗日插值多项式,另一方面p是零多项式,所以取值永远是0.所以010n,这证明了nlll,,,10是线性无关的.同时它一共包含1n个多项式,恰好等于Xn的维数.所以nlll,,,10构成了Xn的一组基底.拉格朗日基本多项式作为基底的好处是所有的多项式都是齐次的(都是n次多项式).1.4优点与缺点拉格朗日插值法的公式结构整齐紧凑,在理论分析中十分方便,然而在计算中,当插值点增加或减少一个时,所对应的基本多项式就需要全部重新计算,于是整个公式都会变化,非常繁琐.这时可以用重心拉格朗日插值法或牛顿插值法来代替.此外,当插值点比较多的时候,拉格朗日插值多项式的次数可能会很高,因此具有数值不稳定的特点,也就是说尽管在已知的几个点取到给定的数值,但在附近却会和“实际上”的值之间有很大的偏差.这类现象也被称为龙格现象,解决的办法是分段用较低次数的插值多项式.2重心拉格朗日插值法重心拉格朗日插值法是拉格朗日插值法的一种改进.在拉格朗日插值法中,运用多项式)())(()(10kxxxxxxxl,第5页共11页图(2)拉格朗日插值法的数值稳定性:如图(2),用于模拟一个十分平稳的函数时,插值多项式的取值可能会突然出现一个大的偏差(图中的14至15中间)可以将拉格朗日基本多项式重新写为:kjiiijjjxxxxxlxl,0)(1)()(,定义重心权kjiiijjxx,0)(1,上面的表达式可以简化为:jjjxxxlxl)()(,于是拉格朗日插值多项式变为:jkjjjyxxxlxL0)()(,(1)即所谓的重心拉格朗日插值公式(第一型)或改进拉格朗日插值公式.它的优点是当插值点的个数增加一个时,将每个j都除以)(1kjxx,就可以得到新的重心权1k,计算复杂度为)(n,比重新计算每个基本多项式所需要的复杂度)(2n降了一个量级.将以上的拉格朗日插值多项式用来对函数1)(xg插值,可以得到:第6页共11页kjjjxxxlxgx0)()(,,因为1)(xg是一个多项式.因此,将)(xL除以)(xg后可得到:kjjjkjjjxxxxxL00)(,(2)这个公式被称为重心拉格朗日插值公式(第二型)或真正的重心拉格朗日插值公式.它继承了(1)式容易计算的特点,并且在代入x值计算)(xL的时候不必计算多项式)(xl它的另一个优点是,结合切比雪夫节点进行插值的话,可以很好地模拟给定的函数,使得插值点个数趋于无穷时,最大偏差趋于零.同时,重心拉格朗日插值结合切比雪夫节点进行插值可以达到极佳的数值稳定性.第一型拉格朗日插值是向后稳定的,而第二型拉格朗日插值是向前稳定的,并且勒贝格常数很小.3.分段线性插值对于分段线性插值,我们看一下下面的情况.3.1问题的重诉已知211)(xxg,66x用分段线性插值法求插值,绘出插值结果图形,并观察插值误差.1.在[-6,6]中平均选取5个点作插值;2.在[-6,6]中平均选取11个点作插值;3.在[-6,6]中平均选取21个点作插值;4.在[-6,6]中平均选取41个点作插值.3.2问题的分析在数值计算中,已知数据通常是离散的,如果要得到这些离散点以外的其他点的函数值,就需要根据这些已知数据进行插值.而本题只提供了取样点和原函数)(xg.分析问题求解方法如下:(1)利用已知函数式211)(xxg计算取样点X对应的函数值Y;将YX,作为两个等长的已知向量,分别描述采样点和样本值.因此被插值函数是一个单变量函数,可利用一维插值处理该数据插值问题.一维插值采用的方法通常有拉格朗日多项式插值(本题采用3次多项式插值),3次样条插值法和分段线性插值.(2)分别利用以上插值方法求插值.以0.5个单位为步长划分区间[-6,6],并将每一点作为插值函数的取样点.再根据插值函数计算所选取样点的函数值.最后再利用所得函数值画出相应的函数图象,并与原函数)(xg的图象进行对比.第7页共11页3.3问题的假设为了解决上述分析所提到的问题,本题可以作出如下假设:(1)假设原函数)(xg仅作为求解取样点对应的样点值的函数关系式.而其他各点的函数值都是未知量,叙用插值函数计算.(2)为了得到理想的对比函数图象,假设)(xg为已知的标准函数.可以选取0.5个单位为步长划分区间[-6,6],分别计算插值函数和标准函数)(xg在该区间的取样点的函数值.画出函数图象进行对比.3.4分段线性插值原理给定区间ba,,将其分割成bxxxan10,已知函数)(xfy在这些插值结点的函数值为),1,0)((nkxfykk;求一个分段函数)(xIk,使其满足:(1)kkhyxI)(,),1,0(nk;(2)在每个区间1,kkxx上,)(xIh是个一次函数.易知,)(xIh是个折线函数,在每个区间1,kkxx上,),1,0(nk1111)(kkkkkkkkkhyxxxxyxxxxxI,于是,)(xIh在ba,上是连续的,但其一阶导数是不连续的.于是即可得到如下分段线性插值函数:)()(0xlyxIniiin,其中.,0;,;0,111111其他时舍去时,且当时舍去时,且当nixxxxxxxixxxxxxxliiiiiiiiiii3.5问题的求解在MATLAB中实现分段线性插值,最近点插值,3次多项式插值,3次样条插值的命令第8页共11页为interp1,其调用格式为:Y1=interp1(X,Y,X1,’method’)函数根据X,Y的值,计算函数在X1处的值.X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值点,Y1是一个与X1等长的插值结果.method是插值方法,包括:linear:分段线性插值.它是把与插值点靠近的两个数据点用直线连接,然后在直线让选取对应插值点的数.nearest:近点插值法.根据已知两点间的插值点与这两点间的位置远近插值.当插值点距离前点远时,取前点的值,否则取后点的值.cubic:3次多项式插值.根据已知数据求出一个3次多项式,然后根据多项式进行插值.spline:3次样条插值.在每个分段(子区间)内构造一个3次多项式,使其插值函数除满足插值条件外,还要求个节点处具有光滑条件.再根据已知数据求出样条函数后,按照样条函数插值.运用Matlab工具软件编写代码,并分别画出图形如下:(一)在[-6,6]中平均选取5个点作插值:-10-5051000.20.40.60.81分段线性插值g(x)y1-10-50510-0.500.513次样条插值g(x)y2-10-5051000.20.40.60.81最近点插值g(x)y3-10-5051000.20.40.60.813次多项式插值g(x)y4(二)在[-6,

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功