《插值PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《插值PPT讲稿.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、插值课件第1页,共58页,编辑于2022年,星期日插插 值值 一维插值一维插值1.1.插值的基本原理;插值的基本原理;2.2.三种插值方法:三种插值方法:分段线性插值分段线性插值;三次样条插值三次样条插值;拉格朗日拉格朗日插值。插值。3.用用MATLAB作插值计作插值计算算4.应用实例应用实例二维插值二维插值1.1.两类插值方法:两类插值方法:网格节点插值法:网格节点插值法:双线性插值等。双线性插值等。散点数据插值法:散点数据插值法:修正修正Shephard法法2.用用MATLAB作二维插值作二维插值计算计算3.应用实例应用实例第2页,共58页,编辑于2022年,星期日函数函数f(x)的产生办
2、法:插值和拟合。的产生办法:插值和拟合。第一步第一步:适当选择函数的形式;适当选择函数的形式;第二步第二步:确定函数的参数。确定函数的参数。xy 设两个变量设两个变量x x与与y y之间有某种关系,之间有某种关系,y=g(x)y=g(x)(很复杂、(很复杂、或未知或无封闭形式)。一般可以基于一组实验观测数据或未知或无封闭形式)。一般可以基于一组实验观测数据(xi i,yi),),i=0,1,=0,1,,构造一个相对较简单的函数,构造一个相对较简单的函数y=f(x)来近来近似表示似表示x x与与y y之间的关系。之间的关系。一维插一维插 值值+xy第3页,共58页,编辑于2022年,星期日引例.
3、函数查表问题 标准正态分布函数标准正态分布函数 标准正态分布函数值标准正态分布函数值(1.014)等于多少等于多少?第4页,共58页,编辑于2022年,星期日 先对自变量作近似,先对自变量作近似,1.014 1.01,查表得到查表得到 (1.01)=0.8438,所以所以 (1.014)(1.01)=0.8438。改进:函数值改进:函数值取二者的中点:取二者的中点:(1.014)(1.01)+(1.02)/2 =0.8438+0.8461/2 =0.84495 还可改进吗?还可改进吗?利用一个表格给出的函数值,近似计算表格中未给出利用一个表格给出的函数值,近似计算表格中未给出的函数值。这实质上
4、就是插值问题。的函数值。这实质上就是插值问题。第5页,共58页,编辑于2022年,星期日插插 值值 问问 题题 的的 提提 法法已知已知 n+1个节点个节点其中其中互不相同,不妨设互不相同,不妨设求任一插值点求任一插值点处的插值处的插值可认为节点满可认为节点满足函数关系足函数关系y=g(x),表达表达式复杂式复杂,或无或无封闭形式封闭形式,或或未知。未知。第6页,共58页,编辑于2022年,星期日求求 解解 插插 值值 问问 题题 的的 基基 本本 思思 路路 构造一个构造一个(相对简单的相对简单的)函数函数通过全部节点通过全部节点,即即再用再用计算插值,即计算插值,即第7页,共58页,编辑于
5、2022年,星期日 设设函函数数g(x)在在n+1个个点点x0,x1,xn处处的的函函数数值值已已知知,为为 y0,y1,yn。求求一一个个分分段段(共共 n段段)线线性性函函数数q(x),使使其其满满足:足:q(xj)=yj,j=0,1,n.xjxj-1xj+1x0 xn这这n+1个点(个点(xj,yj)(j=0,1,2,.,n)为插值为插值节点,节点,q(x)称称为插值为插值函数。函数。插值方法插值方法1.1.分段线性插值分段线性插值第8页,共58页,编辑于2022年,星期日 f(x)为被插值函数。为被插值函数。j=1,2,n。根据直线的两点式方程变形得到根据直线的两点式方程变形得到q(x
6、)在第在第j段段xj-1,xj 上上的表达式为:的表达式为:可以证明,可以证明,第9页,共58页,编辑于2022年,星期日比分段线性插值更光滑。比分段线性插值更光滑。2.2.三次样条插值三次样条插值xyxi-1 xiab 在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。第10页,共58页,编辑于2022年,星期日 如果三次样条函数S(x)在a,b这两个端点处的二阶导数(当然只能是单边导数)等于零,则称其为自然三次自然三次样条插值函数样条插值函
7、数。xyxi-1 xiab 三次样条函数三次样条函数 记为记为S(x),它是定义在区间它是定义在区间a,b 上的上的函数,函数,满足以下两个条件:满足以下两个条件:1)S(x)在每一个小区间在每一个小区间xi-1,xi上是一个三次多项式函上是一个三次多项式函数数;2)在整个区间在整个区间a,b上,其二阶导数存在且连续。上,其二阶导数存在且连续。即在每即在每个节点处的二阶导数连续。个节点处的二阶导数连续。第11页,共58页,编辑于2022年,星期日 问问题题:给定n+1个节点(x0,y0),(x1,y1),(xn,yn),求一个三次样条函数S(x),使其满足:S(xi)=yi,i=0,1,n.三
8、次样条插值函数应满足的条件:如何确定三次样条函数在每一个小区间上的三次多项式函数的系数呢?第12页,共58页,编辑于2022年,星期日参数参数:每个小段上4个,n个小段共计4n个。方程方程:1)每个小段上由给定函数值得到2个,n个小段共计2n个;2)光滑性要求每一个内部节点的一阶二阶导数连续,得出其左右导数相等,因此,每个节点产生2个方程,共计2(n1)个。现在得到了4n2个方程,还差两个。为此,常用的方法是对边界节点除函数值外附加要求,这就是所谓的边界条件边界条件。需要两个,正好左右两个端点各一个。xyxi-1 xiab第13页,共58页,编辑于2022年,星期日 3)周期性边界条件周期性边
9、界条件 在两个边界点的一阶导数值以及二阶导数值均相等:即S(x0)=S(xn);S(x0)=S(xn)。常用如下三类边界条件:1)m边界边界 条件条件 给定两个边界节点的一阶导数值:m0,mn,即:S(x0)=m0,S(xn)=mn。2)M边界条件边界条件 给定两个边界节点的二阶导数值:M0,Mn,即:S(x0)=M0,S(xn)=Mn。特别地,当 M0和Mn都为零时,称为自然边界条件。第14页,共58页,编辑于2022年,星期日Method可取:可取:nearest :最邻近插值;:最邻近插值;spline :三次样条插值;三次样条插值;cubic :立方插值。立方插值。缺省时:缺省时:分段
10、线性插值。分段线性插值。注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,并且是单调的,并且xi不能够不能够超过超过x的范围。的范围。用用MATLABMATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果第15页,共58页,编辑于2022年,星期日用用MATLABMATLAB作分段线性插值计算作分段线性插值计算 分段线性插值分段线性插值:y=interp1(x0,y0,x)例:在例:在1-121-12的的1111小时内,每隔小时内,每隔1 1
11、小时测量一次温度,测小时测量一次温度,测得的温度依次为:得的温度依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。试估计每隔。试估计每隔1/101/10小时的温度值。小时的温度值。To MATLAB(xiancha1.m)被插值点被插值点xixi处的插值结果处的插值结果插值节点插值节点第16页,共58页,编辑于2022年,星期日例例:在在上取上取11个点,作三次样条插值个点,作三次样条插值,观察三次样观察三次样条插值曲线与条插值曲线与g(x)的误差的误差.To MATLAB(yangCha)用用MATLABMATLAB作三
12、次样条插值计算作三次样条插值计算第17页,共58页,编辑于2022年,星期日 称为拉格朗日插值基函数拉格朗日插值基函数。已知函数f(x)在n+1个点x0,x1,xn处的函数值为 y0,y1,yn。求一n次多项式函数Pn(x),使其满足:Pn(xi)=yi,i=0,1,n.解决此问题的拉格朗日插值多项式公式如下其中Li(x)为n次多项式:3.3.拉格朗日拉格朗日(Lagrange)多项式插值多项式插值第18页,共58页,编辑于2022年,星期日例例 将0,/2 n等分,在g(x)=cos(x)上取n+1个节点,作Pn(x)(取n=1,2),计算Pn(/6),与 cos(/6)比较,观察误差。解解
13、:n=1,(x0,y0)=(0,1),(x1,y1)=(/2,0),/21/6P1(x)=y0L0+y1L1=1-2x/,P1(/6)=0.6667精确值:cos(/6)=0.8660第19页,共58页,编辑于2022年,星期日n=2时时:(x0,y0)=(0,1),(x1,y1)=(/4,0.7071),(x2,y2)=(/2,0),P2(x)=y0L0+y1L1+y2L2=8(x-/4)(x-/2)/2-16x(x-/2)0.7071/2P P2 2(/6)=0.8508 /6)=0.8508 精确值:精确值:cos(cos(/6)=0.8660/6)=0.8660/6 /4 /2思考思考
14、:是否是否n越大越大,插值的误差就插值的误差就越小越小?第20页,共58页,编辑于2022年,星期日拉格朗日多项式插值的振荡现象拉格朗日多项式插值的振荡现象To MATLAB(runge)Runge现象现象:采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别为2,4,6,8,10时的插值计算结果如下页图.第21页,共58页,编辑于2022年,星期日第22页,共58页,编辑于2022年,星期日 由图中可以看出:当插值节点个数n+1增大时,其插值效果变差;当n进一步增大时,插值函数还会出现剧烈的振荡现象,从而产生很大的误差,例如n=10。这种现象称为龙格龙格(R
15、unge)振荡现象振荡现象。发生这种现象,不是由于这个被插值函数的问题,因为这样的函数太多,俯首皆拾;而是拉格朗日多项式插值本身所固有的问题。而对于三次样条插值,情况则与此正好相反,随着n的增大,插值效果变得越来越好。所以,在实际应用中,应该根据具体情况,并结合各种实际问题的特点灵活选用。第23页,共58页,编辑于2022年,星期日 分段线性和三次样条插值(低次多项式插值):分段线性和三次样条插值(低次多项式插值):曲线不光滑(三次样条插值已大有改进);误差估曲线不光滑(三次样条插值已大有改进);误差估计较难(对三次样条插值);收敛性有保证。简单计较难(对三次样条插值);收敛性有保证。简单实用
16、,应用广泛。实用,应用广泛。一维插值方法小结一维插值方法小结 拉格朗日插值(高次多项式插值):其插拉格朗日插值(高次多项式插值):其插值函数在整个区间上是一个解析表达式,便值函数在整个区间上是一个解析表达式,便于再次开发利用;曲线光滑;误差估计有表于再次开发利用;曲线光滑;误差估计有表达式;收敛性不能保证(振荡现象)。用于达式;收敛性不能保证(振荡现象)。用于理论分析,实际意义不大。理论分析,实际意义不大。第24页,共58页,编辑于2022年,星期日二维插二维插 值值 网格节点插值法:网格节点插值法:最邻近插值;最邻近插值;分片线性插值分片线性插值;双线性插值;双线性插值;双三次插值。双三次插
17、值。散点数据插值法:散点数据插值法:修正修正Shephard法法第25页,共58页,编辑于2022年,星期日第26页,共58页,编辑于2022年,星期日第27页,共58页,编辑于2022年,星期日引例引例1 1:如何绘制山区地貌图:如何绘制山区地貌图 要在某山区方圆大约要在某山区方圆大约2727平方公里范围内修建一条平方公里范围内修建一条公路,从山脚出发经过一个居民区,再到达一个矿公路,从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔区。横向纵向分别每隔400400米测量一次,得到一些地米测量一次,得到一些地点的高程:点的高程:(平面区域平面区域0=x=5600,0=y=4800)0
18、=x=5600,0=y=4800),首先,首先需作出需作出该山区的地貌图和等高线图。该山区的地貌图和等高线图。第28页,共58页,编辑于2022年,星期日第29页,共58页,编辑于2022年,星期日 xy第30页,共58页,编辑于2022年,星期日引例引例2 2:船在该海域会搁浅吗?:船在该海域会搁浅吗?在某海域测得一些点在某海域测得一些点(x,y)(x,y)处的水深处的水深z z由下表给出,由下表给出,船的吃水深度为船的吃水深度为5 5英尺,在矩形区域(英尺,在矩形区域(7575,200200)*(-50-50,150150)里的哪些地方船要避免进入。)里的哪些地方船要避免进入。第31页,共
19、58页,编辑于2022年,星期日 yx第32页,共58页,编辑于2022年,星期日二维插值的提法二维插值的提法已知已知 m n个节点个节点 其中其中互不相同,不妨设互不相同,不妨设求任一插值点求任一插值点处的插值处的插值 第一种(网格节点):第一种(网格节点):第33页,共58页,编辑于2022年,星期日二维插值的提法二维插值的提法第二种(散乱节点):第二种(散乱节点):已知已知n个节点个节点其中其中互不相同,互不相同,求任一插值点求任一插值点处的插值处的插值第34页,共58页,编辑于2022年,星期日求求 解解 二二 维维 插插 值值 问问 题题 的的 基基 本本 思思 路路 构造一个二元函
20、数构造一个二元函数通过全部已知节点通过全部已知节点,即即再用再用计算插值,即计算插值,即或或第35页,共58页,编辑于2022年,星期日 最邻近插值;最邻近插值;分片线性插值;分片线性插值;双线性插值;双线性插值;双三次插值。双三次插值。网格节点插值方法网格节点插值方法第36页,共58页,编辑于2022年,星期日 二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。注意:注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。1最邻近插值最邻近插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)第37页,共58页,编辑于2022年,星期日 将四个插值点
21、(矩形的四个顶点)处的函数值依次简记为:f(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f4xy (xi,yj)(xi,yj+1)(xi+1,yj)(xi+1,yj+1)2 2分片线性插值分片线性插值第38页,共58页,编辑于2022年,星期日分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足插值函数为:第二片(上三角形区域):(x,y)满足插值函数为:注意注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;第39页,共58页,编辑于2022年,星期日 双线性插值是一片一片的空间二次曲面构
22、成。双线性插值函数的形式如下:其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。3 3双线性插值双线性插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)第40页,共58页,编辑于2022年,星期日二维插值二维插值:已有程序已有程序Method可取可取:nearestnearest 最邻近插值最邻近插值 linearlinear 双线性插值双线性插值 cubiccubic 双三次插值双三次插值 缺省时缺省时,双线性插值双线性插值要求要求x0,y0 x0,y0单调;单调;x x,y y可取可取为矩阵,或为矩阵,或x x取行向量,
23、取行向量,y y取为列向量,取为列向量,x,yx,y的值分别不能超出的值分别不能超出x0,y0 x0,y0的范围。的范围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值第41页,共58页,编辑于2022年,星期日例:测得平板表面例:测得平板表面3*53*5网格点处的温度分别为:网格点处的温度分别为:82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 84 82 85 86 84 84 82 85 86 试作出平板
24、表面的温度分布曲面试作出平板表面的温度分布曲面z=f(x,y)z=f(x,y)的图形。的图形。用用MATLAB作网格节点数据的插值作网格节点数据的插值 xyTo MATLAB(wenduqm)第42页,共58页,编辑于2022年,星期日width=1:5;depth=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(width,depth,temps);pausedi=1:.1:3;di=di;wi=1:.1:5;zlin=interp2(width,depth,temps,wi,di,linear);figure(2);m
25、esh(wi,di,zlin);M文件wenduqm.m加密数据点第43页,共58页,编辑于2022年,星期日xlabel(Width of Plate),ylabel(Depth of Plate)zlabel(Degrees Celsius),axis(ij),grid,pause;zlin=interp2(width,depth,temps,wi,di,cubic);figure(3);mesh(wi,di,zlin)xlabel(Width of Plate),ylabel(Depth of Plate)zlabel(Degrees Celsius),axis(ij),grid第44页
26、,共58页,编辑于2022年,星期日范例:范例:绘制山区地貌图绘制山区地貌图 要在某山区方圆大约要在某山区方圆大约2727平方公里范围内修建一平方公里范围内修建一条公路,从山脚出发经过一个居民区,再到达一个条公路,从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔矿区。横向纵向分别每隔400400米测量一次,得到一些米测量一次,得到一些地点的高程(网格节点):地点的高程(网格节点):(平面区域平面区域0=x=5600,0=y=4800)0=x=5600,0=y=4800),首先需作出,首先需作出该山区的地貌图该山区的地貌图和等高线图。和等高线图。To MATLAB(shanqu)通过此
27、例对双线性插值方法和双三次插值方法的插值效果进行比较。第45页,共58页,编辑于2022年,星期日第46页,共58页,编辑于2022年,星期日第47页,共58页,编辑于2022年,星期日第48页,共58页,编辑于2022年,星期日第49页,共58页,编辑于2022年,星期日第50页,共58页,编辑于2022年,星期日第51页,共58页,编辑于2022年,星期日返返返返 回回回回第52页,共58页,编辑于2022年,星期日 yx散点数据的插值问题第53页,共58页,编辑于2022年,星期日已知已知n个节点个节点其中其中互不相同,互不相同,求任一插值点求任一插值点处的插值处的插值二维散点数据插值问
28、题的提法二维散点数据插值问题的提法第54页,共58页,编辑于2022年,星期日用用MATLABMATLAB作散点数据的插值计算作散点数据的插值计算 注意:注意:x0,y0,z0均为向量均为向量,长度相等。,长度相等。Method可取可取nearest,linear,cubic,v4;linear是缺省值。是缺省值。z=griddata(x0,y0,z0,x,y,method)被插值点插值节点被插值点的函数值第55页,共58页,编辑于2022年,星期日在某海域测得一些点在某海域测得一些点(x,y)(x,y)处的水深处的水深z z由下表给出,船的吃由下表给出,船的吃水深度为水深度为5 5英尺,在矩
29、形区域(英尺,在矩形区域(7575,200200)*(-50-50,150150)里的哪些地方船要避免进入。)里的哪些地方船要避免进入。范例:船在该海域会搁浅吗?范例:船在该海域会搁浅吗?第56页,共58页,编辑于2022年,星期日To MATLAB hd1返回返回4.作出水深小于5的海域范围,即z=5的等高线.第57页,共58页,编辑于2022年,星期日1.1.网格节点二维插值网格节点二维插值:已有程序已有程序 z=interp2(x0,y0,z0,x,y,method)Method可取可取:nearestnearest 最邻近插值最邻近插值 linearlinear 双线性插值双线性插值 cubiccubic 双三次插值双三次插值 缺省时缺省时,双线性插值双线性插值。2.2.散点数据二维插值散点数据二维插值:已有程序已有程序griddata,griddata,调用格式为:调用格式为:z=griddata(x0,y0,z0,x,y,z=griddata(x0,y0,z0,x,y,methodmethod)用MATLAB作二维插值计算小结第58页,共58页,编辑于2022年,星期日
限制150内