资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数 学 实 验,插 值,1,实验目的,实验内容,2,、掌握,Matlab,求解插值问题的方法。,1,、了解插值的基本内容。,1,一维插值,2,二维插,值,3,实,验作业,2,拉格朗日插值,分段线性插值,三次样条插值,一 维 插 值,一、,插值的定义,二、插值的方法,三、用,Matlab,解插值问题,返回,3,返回,二 维 插 值,一、,二维插值定义,二、,网格节点插值法,三、,用,Matlab,解插值问题,最邻近插值,分片线性插值,双线性插值,网格节点数据的插值,散点数据的插值,4,一维插值的定义,已知,n+1,个节点,其中,互不相同,不妨设,求任一插值点,处的插值,节点,(x,i,y,i,),可视为由,产生,,表达式复杂,,,或无封闭形式,或未知。,5,构造一个,(,相对简单的,),函数,通过全部节点,即,再用,计算插值,即,返回,6,称为,拉格朗日插值基函数(插值基函数),。,已知函数,f,(,x,),在,n,+1,个点,x,0,x,1,x,n,处的函数值为,y,0,y,1,y,n,。,求一,n,次多项式函数,P,n,(,x,),,,使其满足:,P,n,(,x,i,)=,y,i,i,=0,1,n,.,解决此问题的拉格朗日插值多项式公式如下,其中,L,i,(,x,),为,n,次多项式:,拉格朗日,(Lagrange),插值,7,特别地,:,两点一次,(,线性,),插值多项式,:,三点二次,(,抛物,),插值多项式,:,用,P,n,(x,),计算插值的方法称为拉格朗日多项式插值。,8,拉格朗日多项式插值的,这种振荡现象叫,Runge,现象,采用拉格朗日多项式插值:选取不同插值节点个数,n,+1,,,其中,n,为插值多项式的次数,当,n,分别取,2,4,6,8,10,时,绘出插值结果图形,.,例,返回,To,Matlab,lch(larg1),9,10,分段线性插值,计算量与,n,无关,;,n,越大,误差越小,.,x,j,x,j-1,x,j+1,x,0,x,n,x,o,y,11,To MATLAB,xch11,,,xch12,,,xch13,,,xch14,返回,例,用分段线性插值法求插值,并观察插值误差,.,1.,在,-6,6,中平均选取,5,个点作插值,(xch11),4.,在,-6,6,中平均选取,41,个点作插值,(xch14),2.,在,-6,6,中平均选取,11,个点作插值,(xch12),3.,在,-6,6,中平均选取,21,个点作插值,(xch13),12,x=linspace(-6,6,100);,y=1./(x.2+1);,x1=linspace(-6,6,5);,y1=1./(x1.2+1);,plot(x,y,x1,y1,x1,y1,o,LineWidth,1.5),gtext(n=4),13,14,x=linspace(-6,6,100);,y=1./(x.2+1);,x1=linspace(-6,6,11);,y1=1./(x1.2+1);,plot(x,y,x1,y1,x1,y1,o,LineWidth,1.5),gtext(n=10),15,16,load xyz,meshz(x,y,z),rotate3d,xlabel(X),ylabel(Y),zlabel(Z,),hold on;,plot3(2000,2800,1100,c.,0,800,650,r.,4000,2000,950,r.,2000,4000,1320,r.,MarkerSize,30);,17,18,x=linspace(-6,6,100);,y=1./(x.2+1);,x1=linspace(-6,6,21);,y1=1./(x1.2+1);,plot(x,y,x1,y1,x1,y1,o,LineWidt,1.5),gtext(n=20),19,20,比分段线性插值更光滑。,x,y,x,i-1,x,i,a,b,在数学上,光滑程度的定量描述是:函数,(,曲线,),的,k,阶导数存在且连续,则称,该曲线具有,k,阶光滑性,。,光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。,三次样条插值,21,三次样条插值,g,(,x,),称为插值函数。,22,例,用三次样条插值选取,11,个基点计算插值,(,ych,),返回,To MATLAB,ych(larg1),23,24,用,MATLAB,作插值计算,一维插值函数:,y,i,=interp1(x,,,y,,,x,i,,,method),插值方法,被插值点,插值节点,x,i,处的插值结果,nearest,:,最邻近插值,linear,:,线性插值;,spline,:,三次样条插值;,cubic,:,立方插值。,缺省时: 分段线性插值。,注意:所有的插值方法都要求,x,是单调的,并且,x,i,不能够超过,x,的范围。,25,例:在,1-12,的,11,小时内,每隔,1,小时测量一次温度,测得的温度依次为:,5,,,8,,,9,,,15,,,25,,,29,,,31,,,30,,,22,,,25,,,27,,,24,。试估计每隔,1/10,小时的温度值。,To MATLAB,(temp),hours=1:12;,temps=5 8 9 15 25 29 31 30 22 25 27 24;,h=1:0.1:12;,t=interp1(hours,temps,h,spline); (,直接输出数据将,是很多的,),plot(hours,temps,+,h,t,hours,temps,r:) %,作图,xlabel(Hour),ylabel(Degrees,Celsius),26,27,x,y,机翼下轮廓线,例 已知飞机下轮廓线上数据如下,求,x,每改变,0.1,时的,y,值。,To MATLAB(plane),返回,28,29,二维插值的定义,x,y,O,第一种(网格节点):,30,已知,m,n,个节点,其中,互不相同,不妨设,构造一个二元函数,通过全部已知节点,即,再用,计算插值,即,31,第二种(散乱节点):,y,x,0,32,已知,n,个节点,其中,互不相同,,构造一个二元函数,通过全部已知节点,即,再用,计算插值,即,返回,33,注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值,。,最邻近插值,x,y,(,x,1,y,1,),(,x,1,y,2,),(,x,2,y,1,),(,x,2,y,2,),O,二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。,返回,34,将四个插值点(矩形的四个顶点)处的函数值依次简记为:,分片线性插值,x,y,(,x,i,y,j,),(,x,i,y,j,+1,),(,x,i,+1,y,j,),(,x,i,+1,y,j,+1,),O,f,(,x,i,y,j,)=,f,1,,,f,(,x,i,+1,y,j,)=,f,2,,,f,(,x,i,+1,y,j,+1,)=,f,3,,,f,(,x,i,y,j,+1,)=,f,4,35,插值函数为:,第二片,(,上三角形区域,),:,(,x,y,),满足,插值函数为:,注意:,(,x,y,),当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;,分两片的函数表达式如下,:,第一片,(,下三角形区域,),:,(,x,y,),满足,返回,36,双线性插值是一片一片的空间二次曲面构成。,双线性插值函数的形式如下:,其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。,双线性插值,x,y,(,x,1,y,1,),(,x,1,y,2,),(,x,2,y,1,),(,x,2,y,2,),O,返回,37,要求,x0,y0,单调;,x,,,y,可取,为矩阵,或,x,取行向量,,y,取为列向量,,x,y,的值分别不能超出,x0,y0,的范围。,z=interp2(x0,y0,z0,x,y,method),被插值点,插值方法,用,MATLAB,作网格节点数据的插值,插值节点,被插值点的函数值,nearest,最邻近插值,linear,双线性插值,cubic,双三次插值,缺省时,双线性插值,38,例:测得平板表面,3*5,网格点处的温度分别为:,82 81 80 82 84 79 63 61 65 81 84,84,82 85 86,试作出平板表面的温度分布曲面,z=f(x,y),的图形。,输入以下命令:,x=1:5;,y=1:3;,temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;,mesh(x,y,temps),1.,先在三维坐标画出原始数据,画出粗糙的温度分布曲图,.,2,以平滑数据,在,x,、,y,方向上每隔,0.2,个单位的地方进行插值,.,39,再输入以下命令,:,xi=1:0.2:5;,yi,=1:0.2:3;,zi,=interp2(x,y,temps,xi,yi,cubic);,mesh(xi,yi,zi,),画出插值后的温度分布曲面图,.,To MATLAB,(,wendu,),40,41,42,通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。,To MATLAB (,moutain,),返回,43,44,45,46,47,48,插值函数,griddata,格式为,:,cz,=,griddata,(,x,,,y,,,z,,,cx,,,cy,,,method,),用,MATLAB,作散点数据的插值计算,要求,cx,取行向量,,cy,取为列向量,。,被插值点,插值方法,插值节点,被插值点的函数值,nearest,最邻近插值,linear,双线性插值,cubic,双三次插值,v4-,Matlab,提供的插值方法,缺省时,双线性插值,49,例 在某海域测得一些点,(x,y),处的水深,z,由,下表给出,船的吃水深度为,5,英尺,在矩形区域(,75,,,200,)*(,-50,,,150,)里的哪些地方船要避免进入。,50,To MATLAB,hd1,返回,4.,作出水深小于,5,的海域范围,即,z=5,的等高线,.,51,实验作业,山区地貌:在某山区测得一些地点的高程如下表:,(,平面区域,1200=x=4000,1200=y=3600),,,试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。,返回,52,
展开阅读全文