1、拉格朗日插值法的一些讨论学院: 班级: 姓名: 学号: 引言在数值分析中,拉 格 朗 日 插 值 法 是以法国十八世纪数学家约瑟夫路易斯拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过实验和观测来了解。如对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。这样的多项式称为拉 格 朗 日 ( 插 值 ) 多 项 式 。数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。拉格朗日插值法最早被英国数学家爱德华华林于 1779 年发现,
2、不久后(1783 年)由莱昂哈德欧拉再次发现。1795 年,拉格朗日在其著作师范学校数学基础教程中发表了这个插值方法,从此他的名字就和这个方法联系在一起。数据建模有两大方法:一类是插值方法,另一类是拟合函数一般的说,插值法比较适合数据准确或数据量小的情形。然而 Lagrange 插值有很多种,1 阶,2 阶,n 阶。我们可以利用拉格朗日插值求方程,根据它的程序求原方程的图像。下面我具体介绍分析一下拉格朗日插值的算法设计及应用。具体算法1、基本概念已知函数 y=f(x)在若干点 的函数值 = (i=0,1, ,n)一个差ixiyixf值问题就是求一“简单”的函数 p(x):p( )= ,i=0,
3、1, ,n, ii(1)则 p(x)为 f(x)的插值函数,而 f(x)为被插值函数会插值原函数, , ,., 为插值节点,式(1)为插值条件,如果对固定点 求 f(0x12nxx)数值解,我们称 为一个插值节点,f( ) p( )称为 点的插值,当xxmin( , , ,., ),max( , , ,., )时,称为内插,012n012n否则称为外插式外推,特别地,当 p(x)为不超过 n 次多项式时称为 n 阶Lagrange 插值。2、Lagrange 插值公式(1)线性插值 )1(L设已知 , 及 =f( ) , =f( ), 为不超过一次多项式且0x10yx1yx)(1L满足 = ,
4、 = ,几何上, 为过( , ) , ( , )的直线,)(1Ly)(0y1xy从而得到= + (x- ). (2))(1xL0y01x0为了推广到高阶问题,我们将式(2)变成对称式= (x) + (x) .)(1L0l01l其中,(x)= , (x)= 。均为 1 次多项式且满足0l10l01x(x )=1 且 (x)=0。或 (x)=0 且 (x)=1。ll两关系式可统一写成 = 。 (3))(ij(2)n 阶 Lagrange 插值 Ln设已知 , , ,., 及 =f( )(i=0,1,.,n), 为不超过0x12xiyix)(xLnn 次多项式且满足 (i=0,1,.n).iinL)
5、(易知 = (x) + .)(n0l0y)(ln其中, 均为 n 次多项式且满足式(3) (i,j=0,1,.,n),再由 (ji xi)为 n 次多项式 的 n 个根知 =c .最后,由)(li )(xlinijjx0c= ,i=0,1,.,n.1)(0ijjji xcxl ijj0总之, = , = 式为 n 阶 Lagrange 插值公式,其Lniiyl)()(l.ni中, (i=0,1,.n )称为 n 阶 Lagrange 插值的基函数。)(li3,Lagrange 插值余项设 , , ,., a,b,f(x)在a,b上有连续的 n+1 阶导数,0x12nx为 f(x)关于节点 ,
6、, ,., 的 n 阶 Lagrange 插值多项式,则对)(Ln 012x任意 x a,b,其中, 位于 , , ,., 及 x).(!()()nfxLfRnn 0x12n之间(依赖于 x) , (x)=jjx0Eg1:已知函数表 sin =0.5000,sin =0.7071,sin =0.8660,分别由线性643插值与抛物插值求 sin 的数值解,并由余项公式估计计算结果的精度。92解:(1)这里有三个节点,线性插值需要两个节点,根据余项公式,我们选取前两个节点,易知:sin ( )=0.5000+ ( - )921L6450.71.926=0.5000+0.2071 =0.63813
7、截断误差,= ,)92(1R)92)(sinx 3105.718得 知结果至少有 1 位有效数字。.105.6.73(2)易知 sin )3-6(42L) ( ) ( 3460.7071+ = 0.8660=0.680.69) () ( 701.985.2434截断误差为: xxR)492)()(92()sin)92(108.3618得 知结果至少有两位数字。.5.24比较本题精确解 sin =0.642787609.,实际误差限分别为 0.0047 和90.00062。4,拉格朗日插值算法和程序function yy=nalagr(x,y,xx) m=length(x);n=length(y
8、);if m=n,error(向量x与y的长度必须一致);ends=0;for i=1:nt=ones(1,length(xx);for j=1:n if j=it=t.*(xx-x(i)/(x(i)-x(j);endends=s+t*y(i);endyy=s;用以上程序的Eg1的结果为 x=pi*1/6 1/4;y=0.5 0.7071;xx=2*pi/9; yy1=nalagr(x,y,xx)yy1 =-0.5690 x=pi*1/6 1/4 1/3;y=0.5 0.7071 0.866; yy2=nalagr(x,y,xx)yy2 =0.8023 fplot(sin,pi/6,pi/3)
9、;hold on; plot(x,y,o,xx,0.6381,g,xx,0.6434,rv);hold off;图形为具体例题问题:1、已知 , ,9162.0)4.(f 693147.0)5.(f,分别用线性插值法和二次拉格朗日插值法分别计算50826.)6.(f,并且说明哪个结果误差更小。42、给出节点 , , ,03.7)15.(f 24.7).1(f 05.1).(f, , ,作出五次拉格朗日插值多项03.).1(f 6).(f 52(f式,并且求出 及其误差。91三、实验结果1 (1)线性插值:程序:format shortx=0.4 0.5;y=-0.916291 -0.69314
10、7;L0=poly(x(2)/(x(1)-x(2);L1=poly(x(1)/(x(2)-x(1);z=y(1)*L0+y(2)*L1;a=poly2sym(z)b=polyval(z,0.54)结果:a =27893/12500*x-4073206373581395/2251799813685248b =-0.6039(2)二次拉格朗日程序:clcformat shortx=0.4 0.5 0.6;y=-0.916291 -0.693147 -0.510826;L0=poly(x(2) x(3)/(x(1)-x(2)*(x(1)-x(3);L1=poly(x(1) x(3)/(x(2)-x(
11、1)*(x(2)-x(3);L2=poly(x(1) x(2)/(x(3)-x(1)*(x(3)-x(2);z=y(1)*L0+y(2)*L1+y(3)*L2;a=poly2sym(z)b=polyval(z,0.54)结果:a = -287266324356479/140737488355328*x2+1145173905872887/281474976710656*x-1248114652880531/562949953421312b = -0.6153误差:function R=wucha(M,x,X)n=length(X);r=1;q=1;for i=1:nr=i*r ; %q=(x-
12、X(i)*q ; %endR=M*abs(q)/r;结果:(1)x=0.54x =0.5400 X=0.4 0.5X =0.4000 0.5000 syms M R=wucha(M,x,X) R =7/2500*M(2)x=0.54x = 0.5400 X=0.4 0.5 0.6X =0.4000 0.5000 0.6000 syms M R=wucha(M,x,X)R =7/125000*M答:线性插值的误差为:R =7/2500*M;二次拉格朗日插值的误差为:R =7/125000*M显然,二次拉格朗日的误差较小。2五次拉格朗日clcx=-3.15 -1 0.01 1.02 2.03 3.
13、25;y=37.03 7.24 1.05 2.03 17.06 23.05;L0=poly(x(2) x(3) x(4) x(5) x(6)/(x(1)-x(2)*(x(1)-x(3)*(x(1)-x(4)*(x(1)-x(5)*(x(1)-x(6);L1=poly(x(1) x(3) x(4) x(5) x(6)/(x(2)-x(1)*(x(2)-x(3)*(x(2)-x(4)*(x(2)-x(5)*(x(2)-x(6);L2=poly(x(1) x(2) x(4) x(5) x(6)/(x(3)-x(1)*(x(3)-x(2)*(x(3)-x(4)*(x(3)-x(5)*(x(3)-x(6
14、);L3=poly(x(1) x(2) x(3) x(5) x(6)/(x(4)-x(1)*(x(4)-x(2)*(x(4)-x(3)*(x(4)-x(5)*(x(4)-x(6);L4=poly(x(1) x(2) x(3) x(4) x(6)/(x(5)-x(1)*(x(5)-x(2)*(x(5)-x(3)*(x(5)-x(4)*(x(5)-x(6);L5=poly(x(1) x(2) x(3) x(4) x(5)/(x(6)-x(1)*(x(6)-x(2)*(x(6)-x(3)*(x(6)-x(4)*(x(6)-x(5);z=y(1)*L0+y(2)*L1+y(3)*L2+y(4)*L3+
15、y(5)*L4+y(6)*L5;a=poly2sym(z)b=polyval(z,1.09)结果:a=-1762131072886105/9007199254740992*x5-1725132155832521/36028797018963968*x4+1255027041024201/562949953421312*x3+7895561387872097/2251799813685248*x2-5312509994841133/1125899906842624*x+4939690858283287/4503599627370496b = 2.6381 for 法:format shortfu
16、nction C,L=lagranl(X,Y)n=length(X);for k=1:nV=1;for i=1:nif k=iV=conv(V,poly(X(i)/(X(k)-X(i);endendL1(k,:)=V;endC=Y*L1;L=poly2sym(C);结果: X=-3.15 -1 0.01 1.02 2.03 3.25X = -3.1500 -1.0000 0.0100 1.0200 2.0300 3.2500Y=37.03 7.24 1.05 2.03 17.06 23.05Y =37.0300 7.2400 1.0500 2.0300 17.0600 23.0500 C,L=
17、lagranl(X,Y)C =-0.1956 -0.0479 2.2294 3.5063 -4.7185 1.0968 L=-7048524291544415/36028797018963968*x5-3450264311665033/72057594037927936*x4+2510054082048401/1125899906842624*x3+3947780693936047/1125899906842624*x2-332031874677571/70368744177664*x+2469845429141643/2251799813685248 polyval(C,1.09)ans =
18、2.6381 误差:x=1.09x =1.0900 X=-3.15 -1 0.01 1.02 2.03 3.25X =-3.1500 -1.0000 0.0100 1.0200 2.0300 3.2500 syms M R=wucha(M,x,X) R = 510498031106279/270215977642229760*M总结在物理化学,资产价值鉴定工作和计算某一时刻的卫星坐标和钟差等这些方面可以应用拉格朗日插值。采用拉格朗日插值法计算设备等功能重置成本,计算精度较高,方法快捷。但是这方法只能针对可比性较强的标准设备,方法本身也只考虑了单一功能参数,它的应用范围因此受到了一定的限制。作为一种探索,我们可以将此算法以及其它算法集成与计算机评估分析系统中,作为传统评估分析方法的辅助参考工具,以提高资产价值鉴定工作的科学性和准确性。拉格朗日插值模型简单,结构紧凑,是经典的插值法。但是由于拉格朗日的插值多项式和每个节点都有关,当改变节点个数时,需要重新计算。且当增大插值阶数时容易出现龙格现象。心得体会最初接触这个论文课题时,我一片茫然,不知道从何下手。后来经过老师的讲解,上网查资料以及和同学的讨论,终于完成了这篇论文。在这个过程中我充分的体验到探索问题的乐趣, 计算方法这门课程的实用性和拉格朗日插值法在处理问题方面的针对性和便捷性。