拉格朗日多项式插值_第1页
拉格朗日多项式插值_第2页
拉格朗日多项式插值_第3页
拉格朗日多项式插值_第4页
拉格朗日多项式插值_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

拉格朗日多项式插值法浅析摘要拉格朗日插值多项式是一种最常见的多项式插值法,也是一种最常用的逼近工具。“学以致用”是每一门学科都致力追求的境界,数学自然也不例外。下面,探讨拉格朗日插值法的基本原理、如何构造拉格朗日多项式、拉格朗日多项式的误差界,并用MATLAB程序来实现这一数学算法的自动化,为复杂的分析研究提供了一条数学算法的捷径。【关键词】:拉格朗日多项式 算法实现 MATLAB在科学研究和实际的工程设计中,几乎所有的问题都可以用y=f(x)来表示其某种内在规律的数量关系。但理想化的函数关系在实际工程应用中是很难寻找的,对于那些没有明显解析式的函数关系表达式则只能通过实验观察的数据,利用多项式对某一函数的进行逼近,使得这个逼近函数能够反映f(x)的特性,而且利用多项式就可以简便的计算相应的函数值。例如我们不知道气温随日期变化的具体函数关系,但是我们可以测量一些孤立的日期的气温值,并假定此气温随日期变化的函数满足某一多项式。这样,利用已经测的数据,应用待定系数法便可以求得一个多项式函数f(x)。应用此函数就可以计算或者说预测其他日期的气温值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越准确。当然,构造组合多项式方法比较多,如线性方程求解、拉格朗日系数多项式以及构造牛顿多项式的分段差分和系数表等等,这里只对拉格朗日多项式插值法进行深入探讨。一、拉格朗日多项式插值算法基本原理函数y=f(x)在区间[a,b]上有定义,在是[a,b]上取定的N+1个互异节点,且在这些点处的函数值f(x0),f(x1),…,f(x〃)为已知,即yi=f(xi),(i=0,1...N),若存在一个和f(x)近似的函数Pn(x),满足Pn(x〔)=f(xt) (i=0,1...N) (1)则称6(x)为f(x)的一个插值函数,点x〔为插值节点,(1)称为插值条件,区间[a,b]称为插值区间,而误差函数En=f(x)-Pn(x)称为插值余项。即是求一个不超过N次多项式Pn(x)=a”xn+axn-i+...+ax+a (i=0,1...N)满足 Pn(x「=2) (="..N)

则PN(x)成为f(x)的N次拉格朗日插值多项式。二、拉格朗日插值多项式的构造1、线性插值当n=1时即为线性插值,这也是代数插值最简单的形式。根据给定函数f(x则PN(x)成为f(x)的N次拉格朗日插值多项式。二、拉格朗日插值多项式的构造1、线性插值当n=1时即为线性插值,这也是代数插值最简单的形式。根据给定函数f(x)在两个互异节点x、x的值f(x)、f(x)12 1 2用线性函数P(x)=ax+b来近似代替f(x)。由点斜式直线方程可得:x-xP(x)=y+(y-y) 00 1 0x-x10(2)公式(1)可整理写成:P(x)=yx七+yxxo

1 0x-x1x-x式(2)的右端的每一项都包含了一个线性因子,记(3)x―xL(x)= 101L1,1(x)=x-x o-x-x(4)很容易看出来,%0(x0)=LL10(x1)=L11(x0)=0,因此式(3)中的多项式p1(x)也给定两个定点:P1(x°)=y0+y1(0)=y0P(x)=y(0)+y=y11 0 1 1(5)式(3)中的项L(x)和L(x)称为基于节点x和x的拉格朗日系数多项式(线1,0 1,1 0 1ykykL(6)也可以写成如下的矩阵:P⑴=G°xP⑴=G°x-x011x1x-x01x0I1J(7)x-x/102、二次插值当n=1时即为线性插值,这也是常用代数插值。根据给定函数f(x)在两个互异节点x、x、x的值f(x)、1 2 3 1

构造次数不超过二次的多项式「3)=ax2+bx+c来近似代替f(x)。使满足二次插值条件P2(x)=f(xt)(i=0,1,2)。p2(x)的参数直接由插值条件决定,并满足下面方程组:rax2+bx+c-y000<axaxax2122+bx1+bx1++c-c-y1 (6)y2仿线性插值,用基函数的方法求解方程组。求二次式匕(七)=1,£0(x1)=0,L(x)=0,因x、x是L(x)的两个零点,因此设L(x)=m(x-x)(x-x),又0 2 1 2 0 0 1 2确定系数c=(确定系数c=(x-x)(x-x),从而导出:L(x)=(x-xj(x-x2)0 (x-x)(x-x)0同理,构造出条件满足L同理,构造出条件满足L1(x0)=0,L1(x1)=1,L1(x2)=0的插值多项式L(x)=(x—L(x)=(x—x0)(x—x2)1 (x-x)(x-x)(8)构造出条件满足L*0)=0,L2(x1)=0,L2(x2)=1的插值多项式L(x)=(x十F (9)2 (x-x)(x-x)式(7)(8)(9)中的项L(x)、L(x)和L(x)称为基于节点x、x和x的拉格0 1 2 0 1 3朗日系数多项式(二次插值基函数)。利用这种记法,相应的有:P2(x)(10)也可以写成如下的矩阵:(x-x)(x-(x-x)(x-x)P2=G°^1(x-x)(x-x2)

x+x(x-x)(x-x)1 011 2(x-x)(x-x)1 x0-x1 2(x-x)(x-x)xx(x-x)(x-x)

xx(x-x)(x-x)1 x0x1 2(x-x)(x-x)3、N次插值当插值点增加到N+1个时,就可以通过N+1个不同的已知点(%,七)来构造一个次数为n的代数多项式P(x)。类似二次插值,先构造一个特殊的n次多项式L(%),使其各点满足L(%)=L(%)=...=L(%)=0,L(%)=1,i k0ki kk=1 kkL(%)=...=L(%)=0,因%、%…%是L(%)的N个零点,因此设k+1 k+1 kn 1 2nkL(%)=m(%-%L(%)=m(%-%)(%-%)...(%-% )(%-%)...(%-%),又L(%)=1k1k-1k+1kk确定系数,从而导出:(%-%)(%-%)(%-%)(%-%)...%-%)(%-%)...%-%)L(%)=— 1 2 k- k+1 n—N,k(%一%)(%一%)...%—% )(%一%)...%—%)k1k2 ' - - -(12)k-1k k+1相应的有:Pn(相应的有:Pn(%)(13)也可以写成如下的矩阵:(%-%)•(%-%)•(%-%)01 0N1(%-%)•(%-%)1 0• 1N%+%+•+%(%-%)•(%-%)01 0N%+%+•+%(%-%)•(%-%)10 1N(%-%)•(%-%)0 1 0n%%•%(\%N%N-(%-%)•(%-%)10 1N-%)••(%--%)••(%-%)0N—%+%+•+%(%-%)•(%-%)N0NN-1%%%(%-%)••(%-%),N0 NN*4、Lagrange插值余项设f设feCn+1[a,b],且%。,e[a,b]为N+1个节点。如果xe[a,b],(14)其中P(%)是可以用来逼近f(%)的多项式:f⑴f⑴"⑴=£ f(%k)LN,k⑴k=0(15)误差项En(%)形如(16)(X—X)(X—X)...(X—X)fN+1(c)

0 (N+1)!N(16)C为区间[a,b]内的某个值。三、拉格朗日多项式插值实现流程1、 根据初始数据X的取值求出相应的Y值;2、 建立W*W的矩阵;3、 利用卷积公式计算基于节点的Lagrange系数矩阵;4、 求P(x)=义yL(x)k=0四、MATLAB程序代码Lagrange多项式逼近程序function[C,L]=lagran(X,Y)w=length(X);n=w-1;L=zeros(w,w);fork=1:n+1V=1;forj=1:n+1ifk~=jV=conv(V,poly(X(j)))/(X(k)-X(j));endendL(k,:)=V;endC=Y*L;五、实验结果考虑[0.0,1.2]上的曲线y=f(x)=cos(x)。利用节点X=0.0和X=1.2构造线性插值多项式P(X);TOC\o"1-5"\h\z0 1 1利用节点X=0.0,X=0.8和x=1.8构造线性插值多项式P(X);0 1 2 2利用节点X=0.0,X=0.4,x=0.8和x=1.2构造线性插值多项式P(x)。0 12 3 3解答:输入X=[0.0,1.2];Y=cos(X);

[C,L]=lagran(X,Y)输出C=-0.5314 1.0000L=-0.8333 1.00000.8333 0则一次逼近函数为P(x)=-0.5314x+11误差函数为E(x)=-0.5314x+1-cos(x)函数图像和误差函数图像10.90.80.70.610.90.80.70.60.50.40 0.5 11.5输入X=[0.0,0.6,1.2];输入X=[0.0,0.6,1.2];Y=cos(X);[C,L]=lagran(X,Y)输出C=-0.4004L=-0.05081.00001.3889-2.50001.0000-2.77783.333301.3889-0.83330则一次逼近函数为P则一次逼近函数为P(X)=-0.4004X2-0.0508X+1误差函数为E2(x)=-0.4004x2-0.0508X+1-cos(x)函数图像和误差函数图像输入X=[0.0,0.4,0.81.2];Y=cos(X);[C,L]=lagran(X,Y)输出C=0.0922L=-0.56510.01391.0000-2.60426.2500-4.58331.00007.8125-15.62507.50000-7.812512.5000-3.750002.6042-3.12500.83330则一次逼近函数为P(x)=0.0922x3-0.5651X2+0.0139x+11误差函数为E3(x)=0.0922x3—0.5651X2+0.0139x+1-cos(x)函数图像和误差函数图像六、实验分析拉格朗日多项式插值模型简单,结构紧凑,是经典的插值法。这种算法模型在科学的各个领域都有良好的应用。但是由于拉格朗日的插值多项式和每个节点都有关,当改变节点个数时,需要重新计算。一般情况下,多项式的次数越多,需要的数据就越多,误差就越小,从而预测也就越准确。例外发生了,龙格在研究多项式插值的时候,发现有的情况下,并非取节点越多多项式就越精确。著名的例子是〉=1,它的插值./■(1+12X2)函数在两个端点处发生剧烈的波动,造成较大的误差。研究发现,是舍入误差造成的。JJ=X+12x2)的多项式逼近,基于[-1,1]的等距离节点七、总结本学期学习了数值方法这门学科,对我来说是非常欣喜的。它让我知道了高等代数和数学分析不光是纯理论,是可以用于实践生活中的。也让我感受到了数学的魅力,算法的强大。这门课程是为数不多的用理论解决实际问题的课程,这让我在枯燥的数学理论学习中,看到了数学应用的曙光,也感受到了数学的前景。在这门课的学习中,我始终是兴奋的。因为这门课很多的知识都是在数学分析中学过的,这让我非常有成就感。当然,老师在课堂中,时不时的给我们注入数学思想,提高我们的科研能力,对我们在以后的学习和工作中是有极大的帮助的,在这里,请允许我真诚的说句感谢!这本书的第一章主要讲了函数的分析性质和二进制的基础,这里介绍了用于多项式计算的霍纳方法,也就是嵌套乘法。第二章主要讲方程f(x)=0的解法,主要介绍了不动点迭代法、波尔查诺二分法和牛顿-拉夫森割线法。其实这三个方法在数学分析中是有接触的。不动点迭代法和牛顿-拉夫森割线法在证明递推函数的收敛性经常会用到,二分法也就是零点定理。所以,这章学习起来也是非常容易的。迭代法必须知道迭代公式p疽g(pn)和给出初始值,再进行逐步迭代,在做一些函数时,是非常慢的。二分法是需要在某个区间,端点函数值异号时可用,但不能求重根而且收敛速度慢。割线法收敛速度快,但在f的导数为0时,则可能存在被零除错误。所以每种方法都有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论