您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 高等数值分析_插值法报告
任课教师评语:签名:2016年5月5日南京理工大学课程考核论文课程名称:高等数值分析论文题目:基于matlab的函数插值方法性能比较姓名:xxx学号:xxxxxxxxxx成绩:摘要函数插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。本文首先介绍了五种插值方法:线性插值、lagrange插值、newdun插值、三次样条插值和三次B样条插值,并从五种插值法的基本思想和具体实例仿真入手,探讨了五种插值法的优缺点。通过对五种插值法的对比研究及实际应用的总结,从而使我们在以后的应用中能够更好、更快的解决问题。关键字插值法对比matlab目录摘要.............................................................................................................20引言.........................................................................................................41插值问题的提出、发展史及简单应用.................................................41.1插值问题的提出.........................................................................41.2插值法的发展史.........................................................................41.3插值法的简单应用.....................................................................42五种插值法的定义................................................................................52.1线性插值法.................................................................................52.2Lagrange插值法.........................................................................52.3Newton插值法............................................................................62.4三次样条插值法...........................................................................62.5B样条插值..................................................................................63五种插值法的matlab仿真实现.........................................................84五种插值方法性能对比....................................................................115结束语.................................................................................................12参考文献...................................................................................................120引言近半世纪由于计算机的广泛使用和造船、航空、精密机械加工等世纪问题的需要,使插值法在理论上和实践上得到进一步发展,尤其是20世纪40年代后期发展起来的样条插值等,更获得广泛应用,称为计算机图形学的基础。插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。1插值问题的提出、发展史及简单应用1.1插值问题的提出许多实际问题都用函数来表示某种内在规律的数量关系,其中相当一部分函数是通过实验或观测得到的。虽然xf在某个区间ba,上是存在的,有的还是连续的,但却只能给出ba,上一系列点ix的函数值2,1,0ixfyii,这只是一张函数表.有的函数虽有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,如大家熟悉的三角函数表、对数表、平方根和立方根表.为了研究函数的变化规律,往往需要求出不在表中的函数值.因此,我们希望根据给定的函数表做一个既能反映函数xf的特性,又便于计算简单函数xp,用xp近似xf。通常选一类较简单的函数(如代数多项式或分段代数多项式)作为xf,并使iixfxp对2,1,0i成立.这样确定的xp就是我们希望得到的插值函数。1.2插值法的发展史插值法是一种古老的数学方法,它来自生产实践.早在一千多年前的隋唐时期制定历法时就应用了二次插值,隋唐刘焯将等距点二次插值应用于天文计算.但插值理论都是在17世纪微积分产生以后才逐渐发展的,牛顿的等距节点插值公式及均差插值公式都是当时的重要成果。1.3插值法的简单应用在现代机械工业中用计算机程序控制加工机械零件,根据设计可给出零件外形曲线的某些型值点niyxii,2,1,0,加工时为控制每步走刀方向及步数,就要算出零件外形曲线其他店的函数值,才能加工出外表光滑的零件。2五种插值法的定义本章比较了五种插值方法,首先介绍了各种插值法的定义。2.1线性插值法线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。假设我们已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到a=y−y0y1−y0=x−x0x1−x0(2−1)则直线上,两点间的任意一点x对应的y值可以求出:y=(1−a)y0+a(y1)(2−2)这样通过a就可以直接得到y。2.2Lagrange插值法Lagrange插值法是在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值,这种插值多项式称为拉格朗日插值公式。下面讨论1n个节点nxxx10的n次插值多项式xLn,假定它满足条件jjnyxLnj,,1,0(2−3)为了构造xLn,先定义n次插值基函数.定义:若n次多项式xljnj,,1,0在1n个节点nxxx10上满足条件jkjkxlkj,0,1nkj,,1,0,(2−4)就称这1n个n次多项式xlxlxln,,,10为节点nxxx,,,10上的n次插值基函数.推导可得n次插值基函数为nkkkkkknkkkxxxxxxxxxxxxxxxxxl110110nk,,1,0.(2−5)满足上式的插值多项式可表示nkkknxlyxL0(2−6)由xlk的定义知jjnkkkjnyxlyxL0nj,,1,0.形如(2−6)式的插值多项式xLn称为Lagrange插值多项式。2.3Newton插值法利用插值基函数很容易得到拉格朗日插值多项式,公式结构紧凑,在理论分析中甚为方便,但当插值节点增减时全部插值基函数均要随之变化,整个公式也将发生变化,这在实际计算中是很不方便的,为了克服这一缺点,提出了牛顿插值。牛顿插值通过求各阶差商,递推得到的一个公式:fn(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,…,xn](x−x0)…(x−xn−1)(2−7)我们称fn(x)为牛顿Newton插值多项式。baxxxxxxfxNxfxEjnjnon,,,01(2−)为插值余项.2.4三次样条插值法设在区间ba,上取1n个节点bxxxan10给定这些点函数值.iixfy若函数xS满足条件:;,2,1,0,niyxSii在每个区间nixxii,,2,1,0,1上是3次多项式;baCxSi,2;○④取下列边界条件之一:(ⅰ)第一边界条件:nnxfxSxfxS''0'0',;(ⅱ)第二边界条件:nnxfxSxfxS''0'0',或0'0'nxSxS;(ⅲ)周期边界条件:,2,1,0kxSxSnkk称xS为3次样条插值函数。2.5B样条插值B样条基函数的定义:给定参数u轴上的一个分割1{}(),(0,1,2,)iiiUuuui…,m,由下列递推关系定义的,()ipNu称为U的p次(p+1阶)B样条基函数。1,01,()0,iiiuuuNu其他(2−)1,,11,1111()()()ipiipipipiiipiuuuuNuNuNuuuuu(2−1)000规定其中,p表示B样条的次数(即为p+1阶),iu为节点,U为节点矢量。B样条曲线的定义:设01,,...,nppp为给定空间的n+1个控制顶点,01{,,...,}mUuuu是m+1个节点矢量,称下列参数曲线,0()()niipiCupNuaub(2−11)为p次的B样条曲线,折线01,,...,nppp为B样条曲线的控制多边形。其中次数p,控制顶点个数n+1,节点个数m+1具有如下关系:m=n+p+1取n=3,则有三次B样条曲线的基函数如下:(2−12)三次B样条曲线段P0,3(t)为:(2−13)3五种插值法的matlab仿真实现程序简介:将五种插值法写在同一个程序中,并将结果显示在同一个figure中,可以更好的对比每一种插值法的性能。最后将五种插值法结果显示在同一个分图中,进行插值性能比较。程序中插值原函数:y=x2∗sin(x),线性插值调用linear函数,三次样条插值调用spline函数,三次B样条调用spapi函数。%%----程序包括五种插值方法:线性插值、三次样条插值、三次B样条插值、Lagrange插值、Newton插值clcclearallcloseallx=0:0.4:9;n=length(x);IK=randperm(n);x=x(IK);y=x.^2.*cos(x);m=length(y);xi=0:0.02:9;method={'linear','spline'}%线性插值和三次样条插值fork=1:1:2subplot(3,2,k)yi=interp1(x,y,xi,char(method(k)));yg=xi.^2.*cos(xi);%计算理论值plot(x,y,'ko',xi,yi,'r:',xi,yg,'b');%画数据点及绘制曲线text(2,5,char(method(k)),'Fontsize',12);xlim([min(x),max(x)]);endsubplot(3,2,3)sp2=spapi(3,x,y);fnplt(sp2,'r:')
本文标题:高等数值分析_插值法报告
链接地址:https://www.777doc.com/doc-1952216 .html