可编辑范本浅析拉格朗日插值法目录:一、引言二、插值及多项式插值的介绍三、拉格朗日插值的理论及实验四、拉格朗日插值多项式的截断误差及实用估计式五、参考文献一、引言插值在数学发展史上是个古老问题。插值是和拉格朗日(Lagrange)、牛顿(Newton)、高斯(Gauss)等著名数学家的名字连在一起的。在科学研究和日常生活中,常常会遇到计算函数值等一类问题。插值法有很丰富的历史渊源,它最初来源人们对天体研究——有若干观测点(我们称为节点)计算任意时刻星球的位置(插值点和插值)。现在,人们在诸如机械加工等工程技术和数据处理等科研都有很好的应用,最常见的应用就是气象预报。插值理论和方法能解决在实际中当许多函数表达式未知或形式复杂,如何去构造近似表达式及求得在其他节点处的值的问题。二、插值及多项式插值1、插值问题的描述设已知某函数关系()yfx在某些离散点上的函数值:x0x0yy1y1nyny1x1nxnx可编辑范本插值问题:根据这些已知数据来构造函数()yfx的一种简单的近似表达式,以便于计算点,0,1,,ixxin的函数值()fx,或计算函数的一阶、二阶导数值。2、插值的几何意义插值的几何意义如图1所示:图13、多项式插值3.1基本概念假设()yfx是定义在区间,ab上的未知或复杂函数,但一直该函数在点01naxxxb处的函数值01,,nyyy。找一个简单的函数,例如函数()Px,使之满足条件(),0,1,2,,,iPxyin(3.1)通常把上述01nxxx称为插值节点,把()Px称为()fx的插值多项式,条件(3.1)称为插值条件,并把求()Px的过程称为插值法。3.2插值多项式的存在性和唯一性如果插值函数是如下m次的多项式:1011()mmmmmPxaxaxaxa可编辑范本那么插值函数的构造就是要确定()mPx表达式中的m+1个系数011,,,mmaaaa。由于插值条件包含n+1独立式,只要m=n就可证明插值函数多项式是唯一存在。实际上,由n+1个插值条件可得10010100101111111011nnnnnnnnnnnnnnnnaxaxaxayaxaxaxayaxaxaxay这是一个关于01,,naaa的n+1阶线性方程组,且其系数矩阵对应的行列式是线性代数中著名的范德蒙(Vandemonde)行列式。该行列式得值为0110(,,)()ninnijijVxxxxx因为ij时,ijxx,所以01(,,)0nnVxxx。从而证明了上述线性方程组的阶是唯一存在的。既满足插值条件的多项式唯一存在。三、拉格朗日插值的理论及实验1、拉格朗日插值的理论拉格朗日(Lagrange)插值公式的基本思想是把()nPx的构造问题转化为n+1个插值基函数()(0,1,,)ilxin。首先我们利用节点直接构造如下多项式:1'1()()()()inninxlxxxx其中101()()()()nnxxxxxxx,'1011()()()()()niiiiiinxxxxxxxxx容易验证该多项式具有性质可编辑范本0,1,ijilji因此,n次多项式00110()()()()()nnnnkkkLxlxylxylxylxy一定具有性质0()()(),0,1,,,nnikkiiikLxlxylxyin既满足插值条件。我们称()nLx为拉格朗日插值多项式,()ilx称为拉格朗日插值及函数。一次拉格朗日插值多项式又叫做线性插值多项式。二次拉格朗日插值多项式又叫做抛物线插值多项式。2、拉格朗日插值实验经过学习掌握拉格朗日插值的理论,学以致用,使学到的知识运用到现实生活中,并运用计算机来解决我们在学习中遇到的一些问题。以下为运用MATLAB软件平台上计行拉格朗日插值问题:x024681012141618202224262830y0.000.450.751.522.123.403.724.175.125.455.676.747.317.858.458.97例:已知在[0,30]内对应的节点x以及函数值y如表所示,利用拉格朗日插值多项式求在区间x=2.035,x=9.771,x=17.815,x=26.907所对应的函数值。在已知数表函数的条件下,拉格朗日插值多项式可用来计算复杂函数或未知函数的函数值,为此我们首先编写如下利用拉格朗日插值多项式方法计算函数值的程序:可编辑范本functiony=lagrange(x0,y0,x)n=length(x0);m=length(x);fori=1:mz=x(i);s=0.0;fork=1:np=1.0;forj=1:nifj~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end上述三重循环给出了拉格朗日插值计算多项式计算任何点x处的函数值的过程,我们把它标记为lagrange.m文件,接下来我们在MATLAB平台上进行上述例子中的数值试验。在CommandWindow中输入的命令及结果如下所示:x=[0:2:30];y=[0.00.450.751.522.123.403.724.175.125.455.676.747.317.858.458.97];lagrange(x,y,2.035)ans=0.3290lagrange(x,y,9.771)ans=3.2975lagrange(x,y,17.815)ans=5.4483可编辑范本lagrange(x,y,26.907)ans=8.6519最后,我们根据拉格朗日插值结果,利用plot命令画出未知函数的图像,命令程序如下:x0=[0:2:30];y0=lagrange(x,y,x0);plot(x0,y0)得到的未知函数图像为:四、拉格朗日插值多项式的截断误差及实用估计式1、截断误差在[a,b]区间上用()nLx近似未知或复杂函数()fx,其截断误差是指nnRxfxLx(4.1)可编辑范本通常称nRx为拉格朗日插值余额。注意到利用公式(4.1)估计截断误差实际上非常困难。一是因为它要计算函数()fx的高阶导数,当()fx很复杂时,计算量很大,而当()fx没有可用来计算的表达式时,导数无法准确计算;二是因为即使能得到高阶导数的解析式,但由于的具体位置不知道,所以要估计高阶导数在插值区间上的界一般是非常困难的事情。因此,公式(4.1)并不实用。2、截断误差的实用估计式既然公式(4.1)估计误差时不实用,那么实际中如何估计截断误差呢?假设插值条件中包含n+2组数据(),iifxy0,1,,,1,inn那么利用n+1组数据我们可以构造一个n次拉格朗日插值多项式()nLx,利用后n+1组数据我们可以构造另一个n次拉格朗日插值多项式*()nLx。利用公式(4.1)知,他们各自的插值余项为(1)011()()()()()(),(1)!nnnfxLxfxxxxxxn*(1)*1211()()()()()(),(1)!nnnfxLxfxxxxxxn两式相减得*11101()()()()()(),(1)!nnnnnLxLxfxxxxxxn并可写成*(1)110()()1()()().(1)!nnnnnLxLxfxxxxnxx(4.2)注意到上式中利用11*()().nnff该条件在很多情况下是成立的。可编辑范本利用式(4.2)可得*01***10()()()()(),()()()()(),nnnnnnnnnnLxLxRxfxLxxxLxLxRxfxLxxx(4.2)式(4.3)给出了用()nLx或*()nLx作近似计算时的实用误差估计式,它不需要计算高阶导数,也不用估计插值区间上高阶导数的界。总之,拉格朗日插值法的公式结构紧凑,在理论分析中十分方便,然而在计算中,但插值点增加或减少时,所对应的基本多项式就得重新计算而且图像发生很大变化。像逐次线性插值法、牛顿插值法等都是在拉格朗日插值多项式的基础上延伸出来的。我们根据实际中的具体问题,为减少插值误差来选取相应的插值法来快速的解决问题。五、参考文献[1]数值计算原理李庆扬,关冶,白峰杉清华大学出版社2000.9[2]数值分析及其MATLAB实现任玉杰高等教育出版社7007.3[3]数值分析与实验韩旭里,万中科学出版社2006.7[4]数值分析(第三版)颜庆津北京航空航天大学出版社2011.8.15[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更好]