分段线性插值和分段Hermit插值课程设计.docx

分段线性插值和分段Hermit插值课程设计.docx

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

前言本文建立在数值分析的理论基础上,能够在环境中运行,给出了理论分析、具体实例、程序清单以及程序运行结果,对设计任务中的函数进行了分段线性插值和分段三次插值,分别画出分段线性插值多项式和分段三次插值多项式的图,最后对着两种不同类型的多项式进行比较和误差分析,找出这两种不同插值方法各自的优劣。发现分段三次插值比分段线性插值的效果要好,在步长越小时分段三次插值与插值函数逼近效果更明显,相应的误差越小,而分段线性插值在步长越小时在个别点会出现较大的误差,但总体效果还是可以的,三次插值总体上比分段线性插值更光滑,这也符合理论。二、具体理论知识点(1)分段线性插值近似一条曲线的最简单的方法是过曲线上若干点作一条折线,这就是分段线性插值问题,它的确切提法是:设在区间 上的差值数据为 , ,求一个函数满足:(1);在每个子区间 上;。我们可以用 插值的思想来构造分段线性插值函数,设满足上述条件(1)和(2)的所有函数构成的线性空间为。先找线性空间 的基函数,使得:不难得出,的表达式为:,所以有了基函数,满足条件(1)-(3)的分段线性插值函数就可写为:(2)分段三次插值分段三次插值问题提法为:给定上的个插值节点的插值数,仍记,并设被插值函数在这些节点出的函数值 和导数值都已知,要求的一个插值函数,使之满足:(1)对,有,;(2)在每个子区间 上,是不超过三次的多项式。结合两点三次插值与分段线性插值的想法,要找分段三次多项式函数 可写为:其中基函数和的表达式可用 和 给出:其中:,)三、具体实例针对以上的知识点,本文举出一个例子进行分段线性插值和分段三次插值应用。对在区间以0.25为步长分别进行分段线性插值和分段三次插值,比较两种插值结果程序:%--sin(x)的两种插值比较-----clearx=[0:10];y=sin(x);yp=cos(x);xi=linspace(0,10,100);yi=interp1(x,y,xi);y2=hermite(x,y,yp,xi);plot(x,y,o,xi,yi,r-,xi,y2,b-)legend(sin(x),分段线性插值,三次hermite插值)%plot(x,y,o,xi,yi,r-)%legend(sin(x),分段线性插值)在运行该程序,可以得到图一图表1根据得到的图一,分析该图可以得到在区间[0,10]上对进行两种不同插值中分段三次插值得到的插值图要比分段线性插值得到的插值图要更加的光滑,说明分段三次插值对在区间[0,10]上的插值效果比分段线性插值要好。四、问题描述对函数,用步长分别为,0.4,0.25,0.1,0.08,0.05 的分段线性多项式插值多项式和分段三次插值多项式逼近 。要求为:对于每一种插值方法、每一个步长,给出插值误差: , 其中 为步长为的分段线性插值多项式或者分段三次插值多项式的插值误差。、对于每一个步长,画出 、分段线性插值多项式和分段三次 插值多项式在上的图像(三条曲线画在同一图中 ,并注明去区分方式),并比较两种插值方式的优劣。、给出程序清单。必须说明程序中那些是主程序,那些是子程序;程序中必须有详细的注释和参数说明;必须简明扼要的说明如何运行程序。、所有图形必须注明纵、横坐标。五、程序清单%子程序(1)hermite插值,求数据(x0,y0)所表达的函数,以及y1所表达的导数值,在插值点x处的插值function yy=hermite(x0,y0,y1,x)n=length(x0);m=length(x);for k=1:m yy0=0;for i=1:n h=1; a=0;for j=1:nif j~=i h=h*((x(k)-x0(j))/(x0(i)-x0(j)))^2; a=1/(x0(i)-x0(j))+a;endend yy0=yy0+h*((x0(i)-x(k))*(2*a*y0(i)-y1(i))+y0(i));end yy(k)=yy0;end%主程序(1)%--分别画出相应步长下的插值函数与原函数---clcclearh=0.05; %相应步长[0.5,0.4,0.25,0.2,0.1,0.08,0.05]x=-4:4; %产生插值数据Y=1./(x.^2+cos(x.^2));yp=-(2.*x- 2.*x.*sin(x.^2))./(cos(x.^2) + x.^2).^2;n=round(8/h)+1; %统计相应的插值节点ti=linspace(-4,4,n);Y0=1./(ti.^2+cos(ti.^2));%......分段多项式线性插值......yi=interp1(x,Y,ti,spline)

文档评论(0)

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

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

1亿VIP精品文档

相关文档