您好,欢迎访问三七文档
1数学建模与数学实验山东工商学院数学学院插值2实验目的实验内容2、掌握用数学软件包求解插值问题。1、了解插值的基本内容。[1]一维插值[2]二维插值[3]实验作业3拉格朗日插值分段线性插值三次样条插值一维插值一、插值的定义二、插值的方法三、用Matlab解插值问题返回4返回二维插值一、二维插值定义二、网格节点插值法三、用Matlab解插值问题最邻近插值分片线性插值双线性插值网格节点数据的插值散点数据的插值5一维插值的定义已知n+1个节点,,1,0(),(njyxjj其中jx互不相同,不妨设),10bxxxan求任一插值点)(*jxx处的插值.*y0x1xnx0y1y*x*y6构造一个(相对简单的)函数),(xfy通过全部节点,即),1,0()(njyxfjj再用)(xf计算插值,即).(**xfy0x1xnx0y1y*x*y返回7称为拉格朗日插值基函数。n0iiiny)x(L)x(P已知函数f(x)在n+1个点x0,x1,…,xn处的函数值为y0,y1,…,yn。求一n次多项式函数Pn(x),使其满足:Pn(xi)=yi,i=0,1,…,n.解决此问题的拉格朗日插值多项式公式如下其中Li(x)为n次多项式:)xx()xx)(xx()xx)(xx()xx()xx)(xx()xx)(xx()x(Lni1ii1ii1i0in1i1i10i拉格朗日(Lagrange)插值8拉格朗日(Lagrange)插值特别地:两点一次(线性)插值多项式:101001011yxxxxyxxxxxL三点二次(抛物)插值多项式:2120210121012002010212yxxxxxxxxyxxxxxxxxyxxxxxxxxxL.,满足插值条件直接验证可知xLn9拉格朗日多项式插值的这种振荡现象叫Runge现象55,11)(2xxxg采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.例Lagrange.mRung.m10分段线性插值其它,0,,)()()(1111110jjjjjjjjjjjnjjjnxxxxxxxxxxxxxxxlxlyxL计算量与n无关;n越大,误差越小.nnnxxxxgxL0),()(limxjxj-1xj+1x0xnxoy11比分段线性插值更光滑。xyxi-1xiab在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。三次样条插值12三次样条插值},1],,[),({)(1nixxxxsxSiii],[)()3),1,0()()2),1()()10223niiiiiiixxCxSniyxSnidxcxbxaxs)1,,1()()(),()(),()(111nixsxsxsxsxsxsiiiiiiiiiiii自然边界条件)(0)()()40nxSxS)(,,,)4)3)2xSdcbaiiiig(x)为被插值函数。lim()()nSxgx13用MATLAB作插值计算一维插值函数:yi=interp1(x,y,xi,'method')插值方法被插值点插值节点xi处的插值结果‘nearest’:最邻近插值‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值。缺省时:分段线性插值。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。14例:在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。hours=1:12;temps=[589152529313022252724];h=1:0.1:12;t=interp1(hours,temps,h,'spline');(直接输出数据将是很多的)plot(hours,temps,'+',h,t,hours,temps,'r:')%作图xlabel('Hour'),ylabel('DegreesCelsius’)15二维插值的定义xyO第一种(网格节点):16已知mn个节点其中互不相同,不妨设构造一个二元函数通过全部已知节点,即再用计算插值,即17第二种(散乱节点):yx018已知n个节点其中互不相同,构造一个二元函数通过全部已知节点,即再用计算插值,即19注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。最邻近插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。20将四个插值点(矩形的四个顶点)处的函数值依次简记为:分片线性插值xy(xi,yj)(xi,yj+1)(xi+1,yj)(xi+1,yj+1)Of(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f421插值函数为:)yy)(ff()xx)(ff(f)y,x(fj23i121第二片(上三角形区域):(x,y)满足iii1ij1jy)xx(xxyyy插值函数为:)xx)(ff()yy)(ff(f)y,x(fi43j141注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足22双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:)dcy)(bax()y,x(f其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。双线性插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O23要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。z=interp2(x0,y0,z0,x,y,’method’)被插值点插值方法用MATLAB作网格节点数据的插值插值节点被插值点的函数值‘nearest’最邻近插值‘linear’双线性插值‘cubic’双三次插值缺省时,双线性插值24例:测得平板表面3*5网格点处的温度分别为:828180828479636165818484828586试作出平板表面的温度分布曲面z=f(x,y)的图形。输入以下命令:x=1:5;y=1:3;temps=[8281808284;7963616581;8484828586];mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图.2.以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.25再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi’,'cubic');mesh(xi,yi,zi)画出插值后的温度分布曲面图.26插值函数griddata格式为:cz=griddata(x,y,z,cx,cy,‘method’)用MATLAB作散点数据的插值计算要求cx取行向量,cy取为列向量。被插值点插值方法插值节点被插值点的函数值‘nearest’最邻近插值‘linear’双线性插值‘cubic’双三次插值'v4'-Matlab提供的插值方法缺省时,双线性插值27例在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。xyz129140103.588185.51951057.5141.52314722.5137.585.54868688xyz157.5107.57781162162117.5-6.5-81356.5-66.584-33.59988949282.75,20050,150.在矩形区域作二维插值三次插值法cx=75:0.5:200;cy=-70:0.5:150;cz=griddata(x,y,z,cx,cy’,’cubic’)mesh(cx,cy,cz);..1输入插值基点数据3..作海底曲面图X=[129140103.588185.5195105157.5107.57781162162117.5];Y=[7.5141.52314722.5137.585.5-6.5-81356.5-66.584-33.5];Z=[48686889988949];29实验作业山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200=x=4000,1200=y=3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。360032002800240020001600120014801500155015101430130012009801500155016001550160016001600155015001200110015501600155013801070150012001100135014501200115010101390150015001400900110010609501320145014201400130070090085011301250128012301040900500700Y/x12001600200024002800320036004000
本文标题:第8讲插值
链接地址:https://www.777doc.com/doc-2113146 .html