第二章插值和函数逼近第二章插值和函数逼近1插值插值●y●●●y=f(x)()●●yny1y2pn(x)oyny0oxx1x2xnx0),,,1,0()(niyxPiiL==2拉格朗日插值n拉格朗日插值.)()(0∑==nkkknxlyxL牛顿插值)](,[)()(0100xxxxfxfxNn−+=L+−−+))(](,,[10210xxxxxxxf)()]([+xxxxxxxf),()](,,,[1010−−−+nnxxxxxxxfLL问题:z龙格现象z插值函数光滑3z插值函数光滑三次样条插值S(x)),0()0(+=−jjxSxS),0()0(+′=−′jjxSxS三次样条插值S(x)插值条件jjjjxxMxxMxS)()()(3131−+−=+).0()0(+′′=−′′jjxSxS插值条件jjjjhMhMxS66)(1++jjjjjjxxhMyxxhMy−⎞⎜⎜⎛−+−⎞⎜⎜⎛−+++2112jjjjhyhy⎠⎜⎜⎝+⎠⎜⎜⎝++6612⎞⎛⎞⎛⎤⎡dMλ.221010110⎟⎟⎟⎞⎜⎜⎜⎜⎛=⎟⎟⎟⎞⎜⎜⎜⎜⎛⎥⎥⎥⎥⎤⎢⎢⎢⎢⎡ddMMMMOOOλµλ方程4.221111⎟⎟⎠⎜⎜⎜⎝⎟⎟⎠⎜⎜⎜⎝⎥⎥⎥⎥⎦⎢⎢⎢⎢⎣−−−−nnnnnnnddMMMMOOOµλµ最小二乘拟合最小二乘拟合y=s(x)ys(x)y●(xn,yn)●●(x2y2)●●(x0,y0)(xy)(x2,y2)o(x0,y0)xxx(x1,y1)xxx1x2xnx0求一个经验函数,使得2(()())inf∑5求一个经验函数,使得21(()())miniiisxfx=−=∑()sx利用测量的m+1个离散点,,,1,0),(mixfyiiL==在中找一函数,)}(,),(),({10xxxspannϕϕϕϕL=)(*xS使误差平方和mm使误差平方和∑∑==−==miiimiiyxS02*0222])([δδ∑myxS2])([min∑=∈−=iiixSyxS0)(])([minϕ这里,是上线性无关函数族,)(,),(),(10xxxnϕϕϕL],[baC)()()()(1100xaxaxaxSnnϕϕϕ+++=L)(mn6)(aaaIL),,,(10naaaIL∑∑==−=minjiijjixfxax002)]()()[(ϕωj多元函数极值的必要条件∑∑===−=∂∂minjikiijjikxxfxaxaI000)()]()()[(2ϕϕω法方程nd∑)(法方程dGa=或7kjjjkda=∑=0),(ϕϕ.dGa=或第三节二维及多维插值81、问题1、问题¾第种(网格节点)已知个节点¾第一种(网格节点)已知m×n个节点(xi,xj,zij)(i=12m;j=12n)(xi,xj,zij)其中xi,yj互不相同,不妨设(i1,2,…,m;j1,2,…,n)其中i,yj互不相同,不妨设a=x1x2…xm=bc=y1y2…yn=d10求任一插值点(x*,y*)(≠(xi,yj))处的插值Z*y•••••y3•(x*y*)•••••y2•(x,y)•••••y1xx1x2x3x4x511¾第种(散乱节点)¾第二种(散乱节点)已知n个节点其中互不相同,其中互不相同,求任一插值点求任一插值点处的插值12处的插值•y••••••••(x*y*)•••••(x,y)•••••x13原原理构造一个二元函数通过全部已知节点,即或再用计算插值,即14构造方法构造方法最邻近插值;(nearest)双线性插值;(linear)双三次插值。双三次插值。(cubic)样条插值。(li)样条插值。(spline)1511.最邻近插值.最邻近插值•••••y(x1,y2)(x2,y2)•••••(x1,y1)(x2,y1)•••••(1,y1)(2,y1)x注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。162222.双线性插值.双线性插值•••••y(x1,y2)()•••••(x1,y1)(1y2)(x2,y1)(x2,y2)x•••••双线性插值是一片一片的空间二次曲面构成。插值函数的形式如下:插值函数的形式如下:)dcy)(bax()y,x(f++=17yy•••••(xi,yj+1)(xi+1,yj+1)•••••(xi,yj)(xi+1,yj)x•••••iji1jf(i+uj+v)=算法算法xf(i+u,j+v)(1-u)(1-v)f(i,j)+(1-u)vf(i,j+1)+u(1-v)f(i+1,j)+uvf(i+1,j+1)18u、v为浮点坐标的小数部分,是取值[0,1)区间的浮点数Mtlb程序Matlab程序z=interp2(x0,y0,z0,x,y,’method’)插值被插值点被插值点插值方法插值节点被插值点的函数值Method可取:Method可取:‘nearest’最邻近插值;‘linear’双线性插值;‘cubic’双三次插值;缺省时双线性插值。‘cubic双三次插值;缺省时,双线性插值。注意:x0,y0为向量,但z0是矩阵,其19列数等于x0的长度,行数等于y0的长度。z=griddata(x0,y0,z0,x,y,’method’)被插值点插值节点被插值点的函数值注意:均为向量,长度相等。的函数值注意:x0,y0,z0均为向量,长度相等。Method可取Method可取‘nearest’,’linear’,’cubic’,’v4’;是缺省值。20‘linear’是缺省值。例1:测得平板表面3*5网格点处的温度分别为:8281808284•••••x82818082847963616581•••••8484828586•••••y试作出平板表面的温度分布曲面z=f(xy)的图形。21zf(x,y)的图形。例2:在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。xy129140103.588185.51951057.5141.52314722.5137.585.5yz4868688x1575107577811621621175xyz157.5107.57781162162117.5-6.5-81356.5-66.584-33.5998894922z99889491.作出测量点的分布图;2.利用MATLAB中的散点插值函数求网格节点的水深;的水深;3.作出海底曲面图形和等高线图;234.作出水深小于5的海域范围。