数学建模与数学实验.pptx
1实验目的实验内容2、掌握用数学软件包求解插值问题。1、了解插值的基本内容。1一维插值2二维插值3实验作业第1页/共33页2拉格朗日插值分段线性插值三次样条插值一 维 插 值一、插值的定义二、插值的方法三、用Matlab解插值问题返回第2页/共33页3返回二维插值一、二维插值定义二、网格节点插值法三、用Matlab解插值问题最邻近插值分片线性插值双线性插值网格节点数据的插值散点数据的插值第3页/共33页4一维插值的定义已知 n+1个节点其中互不相同,不妨设求任一插值点处的插值节点可视为由产生,,表达式复杂,,或无封闭形式,,或未知.。第4页/共33页5 构造一个(相对简单的)函数通过全部节点,即再用计算插值,即返回第5页/共33页6 称为拉格朗日插值基函数。已知函数f(x)在n+1个点x0,x1,xn处的函数值为 y0,y1,yn。求一n次多项式函数Pn(x),使其满足:Pn(xi)=yi,i=0,1,n.解决此问题的拉格朗日插值多项式公式如下其中Li(x)为n次多项式:拉格朗日(Lagrange)插值第6页/共33页7拉格朗日(Lagrange)插值特别地:两点一次(线性)插值多项式:三点二次(抛物)插值多项式:第7页/共33页8 拉格朗日多项式插值的这种振荡现象叫 Runge现象 采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.例返回To Matlablch(larg1)第8页/共33页9分段线性插值计算量与n无关;n越大,误差越小.xjxj-1xj+1x0 xnxoy第9页/共33页10To MATLABxch11,xch12,xch13,xch14返回例用分段线性插值法求插值,并观察插值误差.1.在-6,6中平均选取5个点作插值(xch11)4.在-6,6中平均选取41个点作插值(xch14)2.在-6,6中平均选取11个点作插值(xch12)3.在-6,6中平均选取21个点作插值(xch13)第10页/共33页11比分段线性插值更光滑。xyxi-1 xiab 在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。三次样条插值第11页/共33页12 三次样条插值g(x)为被插值函数。第12页/共33页13例用三次样条插值选取11个基点计算插值(ych)返回To MATLABych(larg1)第13页/共33页14用MATLAB作插值计算一维插值函数:yi=interp1(x,y,xi,method)插值方法被插值点插值节点xi处的插值结果nearest:最邻近插值linear:线性插值;spline:三次样条插值;cubic:立方插值。缺省时:分段线性插值。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。第14页/共33页15 例:在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)第15页/共33页16xy机翼下轮廓线例 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值。To MATLAB(plane)返回第16页/共33页17二维插值的定义xyO第一种(网格节点):第17页/共33页18 已知 mn个节点 其中互不相同,不妨设 构造一个二元函数通过全部已知节点,即再用计算插值,即第18页/共33页19第二种(散乱节点):yx0第19页/共33页20已知n个节点其中互不相同,构造一个二元函数通过全部已知节点,即再用计算插值,即返回第20页/共33页21 注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。最邻近插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O 二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。返回第21页/共33页22 将四个插值点(矩形的四个顶点)处的函数值依次简记为:分片线性插值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)=f4第22页/共33页23插值函数为:第二片(上三角形区域):(x,y)满足插值函数为:注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足返回第23页/共33页24 双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。双线性插值xy(x1,y1)(x1,y2)(x2,y1)(x2,y2)O返回第24页/共33页25 要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用MATLAB作网格节点数据的插值插值节点被插值点的函数值nearest 最邻近插值linear 双线性插值cubic 双三次插值缺省时,双线性插值第25页/共33页26例:测得平板表面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个单位的地方进行插值.第26页/共33页27再输入以下命令: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)第27页/共33页28 通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。To MATLAB (moutain)返回第28页/共33页29 插值函数griddata格式为:cz=griddata(x,y,z,cx,cy,method)用MATLAB作散点数据的插值计算 要求cx取行向量,cy取为列向量。被插值点插值方法插值节点被插值点的函数值nearest 最邻近插值linear 双线性插值cubic 双三次插值v4-Matlab提供的插值方法缺省时,双线性插值第29页/共33页30 例 在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。第30页/共33页31To MATLAB hd1返回4.作出水深小于5的海域范围,即z=5的等高线.第31页/共33页32实验作业 山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200=x=4000,1200=y=3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。返回第32页/共33页33谢谢您的观看!第33页/共33页