拉格朗日插值算法在工程中的应用(正式)..DOC

拉格朗日插值算法在工程中的应用(正式)..DOC

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
拉格朗日插值算法在工程中的应用 杜江涛 090402 090402104 【摘要】 本文简介拉格朗日插值,它的算法及程序和拉格朗日在实际生活中的运用。运用了拉格朗日插值的公式,以及它在MATLAB中的算法程序,并用具体例子说明。拉格朗日插值在很多方面都可以运用,具有很高的应用价值。 【关键词】算法;作业;拉格朗日;插值;公式;算法程序;应用;科学。 1前言 约瑟夫·拉格朗日(Joseph Louis Lagrange),法国数学家、物理学家。他在数学、力学和天文学三个学科领域中都有历史性的贡献,其中尤以数学方面的成就最为突出。拉格朗日对流体运动的理论也有重要贡献,提出了描述流体运动的拉格朗日方法。数据建模有两大方法:一类是插值方法,另一类是拟合函数一般的说,插值法比较适合数据准确或数据量小的情形。然而Lagrange插值有很多种,1阶,2阶,…n阶。我们可以利用拉格朗日插值求方程,根据它的程序求原方程的图像。下面我具体介绍分析一下拉格朗日插值的算法设计及应用。 2算法y=f(x)在若干点的函数值=(i=0,1,,n)一个差值问题就是求一“简单”的函数p(x):p()=,i=0,1,,n, (1) 则p(x)为f(x)的插值函数,而f(x)为被插值函数会插值原函数,,,,...,为插值节点,式(1)为插值条件,如果对固定点求f()数值解,我们称为一个插值节点,f()p()称为点的插值,当[min(,,,...,),max(,,,...,)]时,称为内插,否则称为外插式外推,特别地,当p(x)为不超过n次多项式时称为n阶Lagrange插值。 2.2Lagrange插值公式 (1)线性插值 设已知 , 及=f() ,=f(),为不超过一次多项式且满足=,=,几何上,为过(,),(,)的直线,从而得到 =+(x-). (2) 为了推广到高阶问题,我们将式(2)变成对称式 =(x)+(x). 其中, (x)=,(x)=。均为1次多项式且满足 (x)=1且(x)=0。或(x)=0且(x)=1。 两关系式可统一写成= 。 (3) (2)n阶Lagrange插值 设已知,,,...,及=f()(i=0,1,.....,n),为不超过n次多项式且满足(i=0,1,...n). 易知=(x)+....+. 其中,均为n次多项式且满足式(3)(i,j=0,1,...,n),再由(ji)为n次多项式的n个根知=c.最后,由 c=,i=0,1,...,n. 总之,=,=式为n阶Lagrange插值公式,其中,(i=0,1,...n)称为n阶Lagrange插值的基函数。 2.3,Lagrange插值余项 设,,,...,[a,b],f(x)在[a,b]上有连续的n+1阶导数,为f(x)关于节点,,,...,的n阶Lagrange插值多项式,则对任意x[a,b], 其中,位于,,,...,及x之间(依赖于x),(x)= Eg1:已知函数表sin=0.5000,sin=0.7071,sin=0.8660,分别由线性插值与抛物插值求sin的数值解,并由余项公式估计计算结果的精度。 解:(1)这里有三个节点,线性插值需要两个节点,根据余项公式,我们选取前两个节点,易知: sin()=0.5000+(-) =0.5000+0.2071=0.6381 截断误差, =, 得知结果至少有1位有效数字。 易知sin 0.7071+=0.8660=0.6434 截断误差为: 得知结果至少有两位数字。 比较本题精确解sin=0.642787609...,实际误差限分别为0.0047和0.00062。 3算法仿真 3.1 Lagrange插值算法和程序 function yy=nalagr(x,y,xx) %用途:Lagrange插值法数值求解;格式:yy=nalagr(x,y,xx) %x是节点向量,y是节点上的函数值,xx是插值点(可以多个),yy返回插值 m=length(x);n=length(y); if m~=n,error(向量x与y的长度必须一致);end s=0; for i=1:n t=ones(1,length(xx)); for j=1:n if j~=i t=t.*(xx-x(i))/(x(i)-x(j)); end end s=s+t*y(i); end yy=s; 用以上程序的Eg1的结果为 x=pi*[1/6 1/4];y=[0.5 0.7071];xx=2*pi/9; yy1=nalagr(x,y,xx) yy1 =

文档评论(0)

fg09h0as + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档