分段线性插值.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分段线性插值

摘要 用函数来表示变量间的数量关系广泛应用于各学科领域,但是在实际问题中,往往是通过实验、观测以及计算等方法,得到的是函数在一些点上的函数值。如何通过这些离散数据找到函数的一个满足精度要求且便于使用的近似表达式,是经常遇到的问题。对于这类问题我们解决的方法为插值法,而最常用也最简单的插值方法就是多项式插值。当然用插值法得到的近似表达式必须满足插值条件即假设给定了n+1个点的自变量的值以及函数值,近似函数必须要过这n+1个点。多项式插值,从几何角度看,就是寻求n次代数曲线y=Pn(x)通过n+1个点作为f(x)的近似。但是随着插值节点个数的增加,高次插值多项式的近似效果并不理想。根据大量实验得出,在进行高次多项式插值时,会出现龙格现象。龙格(Runge)现象即当n趋于无穷大时,x在某一邻域内,f(x)收敛,而在这个区域外f(x)发散。因此,为了解决这样的一个问题,我们可以通过缩小插值区间的办法达到减小误差的目的,所以本实验将针对低次分段插值多项式来做具体的讨论和学习。关键词:龙格现象 分段差值1、实验目的通过对分段线性插值算法程序的编写,提高自己编写程序的能力体会分段线性插值是如何消除龙格现象的。用实验报告的形式展现,提高自己在写论文方面的能力2、算法理论设在节点处的函数值为,i=0,1,,n。为了提高近似程度,可以考虑用分段线性插值来逼近原函数,这时的插值函数为分段函数:在区间上的线性函数为误差为:易见,是平面上以点为节点的折线,有如下的特点:在上为次数不超过一次的多项式;;;如果,由线性插值的误差公式得到令,则有关于整体误差:可以按如下方式考虑,若记则对任一都有于是,当时,说明分段线性插值收敛于。3、数值算例已知点坐标如下表所示:xi0.50.70.91.11.3yi0.45790.6440.7830.8910.964用分段线性插值法,求解当x为0.8时,对应y的值解:具体程序如下所示:#include stdafx.hfloat Fdline(float x[],float y[],float x1,int len){int i=0;float s=0;for(i=0;ilen-1;i++){if(x1=x[i] x1x[i+1])break;}s=(x1-x[i])/(x[i-1]-x[i])*y[i-1]+(x1-x[i-1])/(x[i]-x[i-1])*y[i];return s;}float Fdline(float x[],float y[],float x1,int len);void main(){float x[]={0.5,0.7,0.9,1.1,1.3};float y[]={0.479,0.644,0.783,0.891,0.964};int len=sizeof(x)/sizeof(x[0]);float x1=0;float s=0;printf(请输入要求解的x1的值:\n);scanf(%f,x1);s=Fdline(x,y,x1,len);printf(经过分段三次Hermite插值的结果为:\n);printf(%f\n,s);}运行结果:5、对结果进行分析根据分段线性插值的原理,可以看出分段线性插值虽然有很好的收敛性质,但却不是光滑的,所以线性插值的结果和实际的结果差距较大。通过用编程实现对上例的求解,可以看出结果较为准确,但是由于在计算机上计算,会存在计算误差。6、参考文献[1] 秦新强.数值逼近.西安:西安理工大学出版社,20101

文档评论(0)

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

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

1亿VIP精品文档

相关文档