《MATLAB插值》由会员分享,可在线阅读,更多相关《MATLAB插值(48页珍藏版)》请在金锄头文库上搜索。
1、1,数 学 建 模,插 值 篇,2,内容,2 一维插值,3 二维插值,4 实验作业,目的,2、了解用Matlab求解插值问题的基本函数。,1、掌握插值的基本内容。,1 问题的提出,3,散点图,(2)由图形可见,若可由散点图得到时间和温度的函数关系(一元函数),则问题得解!,分析:,(1)画出散点图;,显然,找时间和温度间的函数关系是很难的!那我们是否可以找到一条经过每一个点的简单函数作为它的近似呢?,4,和问题1完全相同!,这就是一维插值问题!,散点图,5,分析:,与问题1不同的是,要找一个简单的二元函数,来表示位置和温度间的函数关系!,注意这里平面上的点是网格点!,网格图,6,易见,这里所给
2、的平面上的数据点不再是网格点!,散点图,这就是二维插值问题!,返回,7,拉格朗日插值,分段线性插值,三次样条插值,一维插值,一、插值的定义,二、插值的方法,三、用Matlab解插值问题,返回,8,返回,二维插值,一、二维插值定义,二、网格节点插值法,三、用Matlab解插值问题,最邻近插值,分片线性插值,双线性插值,网格节点数据的插值,散点数据的插值,9,一维插值的定义,问题的提法:,10,构造一个(相对简单的)函数,使之在节点处与被插函数的值相等,即满足,返回,插值条件,解决方法:,插值函数,被插函数,插值节点,11,已知函数g(x)在n+1个互异节点x0,x1,xn (通常取等距节点)处的
3、函数值为 y0,y1,yn 。求一n阶多项式函数Pn(x),,拉格朗日(Lagrange)插值,使其满足 Pn(xi)=yi,i=0,1,n. (插值条件),定理,n+1个插值条件可以唯一确定一个n阶插值多项式.,即,插值多项式,12,称之为拉格朗日插值基函数。,由拉格朗日插值多项式的唯一性,为了避免求解方程组,可以用如下方法求得拉格朗日插值多项式!,其中Li(x) 为n阶多项式:,拉格朗日插值公式,容易验证,由拉格朗日插值公式确定的插值多项式满足插值条件,因此即为所求拉格朗日插值多项式!,13,特别地,两点一次(线性)插值多项式为:,三点二次(抛物)插值多项式为:,14,例1,试用拉格朗日插
4、值逼近 分别取n=2,4,8,20,画出图形。,To MATLABlagsin(lagr1),15,返回,拉格朗日多项式插值的这种振荡现象叫 Runge现象,采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.,To Matlablch(larg1),例2,16,分段线性插值,计算量与n无关;n越大,误差越小。,其中,17,To MATLABxch11,xch12,xch13,xch14, xch1234,用分段线性插值法求插值,并观察插值误差.,1.在-5,5中平均选取5个点作插值(xch11),4.在-5,5中平
5、均选取41个点作插值(xch14),2.在-5,5中平均选取11个点作插值(xch12),3.在-5,5中平均选取21个点作插值(xch13),绘出的图形见下页(xch1234.m):,例3,18,返回,19,是一种分段插值,比分段线性插值更光滑!,在数学上,光滑程度的定量描述是:函数(曲线)的k阶可导且连续,则称该曲线具有k阶光滑性。 光滑性的阶次越高,则越光滑。为了得到具有较高阶光滑性的分段低次插值多项式,我们介绍三次样条插值。,三次样条插值,20,g(x)为被插函数。,定义,21,用三次样条插值选取11个节点计算插值(ych)。,返回,To MATLAB ych,绘出图形如下:,例4,2
6、2,用MATLAB作插值计算,一维插值函数:,yi=interp1(x,y,xi,method),nearest:最邻近插值(即用离被插值点最近的插值节点的函数值作为被插值点的近似值);linear :线性插值(默认值);spline :三次样条插值(二阶可导且连续);cubic :保形插值(一阶可导且连续)。,注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。,23,例1 在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。,To MATLAB(temp),Matl
7、ab下的实现: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) %作图xlabel(Hour),ylabel(Degrees Celsius),插值曲线,24,例2 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值。,To MATLAB plane(lagr1),25,不同插值下机翼轮廓曲线图,返回,26,二维插值的定义,第一种(网格节点):,27,已知 mn个节点,(其中x*,y*
8、为被插节点。),28,第二种(散乱节点):,29,返回,(其中x*,y*为被插节点。),30,注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。,最邻近插值,二维或高维情形的最邻近插值,用与被插值点最邻近的节点的函数值作为被插节点的近似值。,返回,31,将四个插值点(矩形的四个顶点)处的函数值依次简记为:,分片线性插值,f (xi, yj)=f1,f (xi+1, yj)=f2,f (xi+1, yj+1)=f3,f (xi, yj+1)=f4,插值函数为形如 的双线性函数!,(由三个点唯一确定!),32,第二片(上三角形区域):(x, y)满足,注意:(x, y)当然应该是
9、在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;,分两片的函数表达式如下:,第一片(下三角形区域) :(x, y)满足,返回,插值函数为(通过确定 的系数):,插值函数为(通过确定 的系数):,33,双线性插值是由一片一片的空间二次曲面构成。双线性插值函数的形式如下:,其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。,双线性插值,返回,34,要求x0,y0单调;x取行向量,y取为列向量,反之也行!或者 x, y=meshgrid(x1, y1); x,y的值分别不能超出x0,y0的范围。,z=interp2(x0,y0,z0
10、,x,y,method),用MATLAB作网格节点数据的插值,nearest:最邻近插值(不连续);linear:双线性插值(连续);cubic:双三次插值(光滑);spline: 样条插值(光滑);缺省时,双线性插值。,35,例3 测得平板表面3*5网格点处的温度分别为: 82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面的温度分布曲面z=f(x,y)的图形。,1.先在三维坐标画出原始数据,画出粗糙的温度分布曲面图.,2以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值并画出插值后的温度分布曲面图.,x=1:5;y=1:3;temp
11、s=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps);,输入以下命令:,36,To MATLAB(wendu),图形如下:,输入以下命令:,xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi);,37,通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。,To MATLAB (moutain),运行程序所得结果如下:,38,39,40,41,42,返回,43,插值函数griddata格式为:,cz =griddat
12、a(x,y,z,cx,cy,method),用MATLAB作散点数据的插值计算,要求cx取行向量,cy取为列向量或者利用 cx,cy=meshgrid(x1, y1);来生成被插值点,此时x1,y1为向量。,nearest 最邻近插值(不连续)linear 双线性插值(连续)cubic 双三次插值(光滑)v4- Matlab提供的插值方法(光滑)缺省时, 为双线性插值,44,例5 在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)*(-50,150)里的哪些地方船要避免进入。,45,To MATLAB hd1,返回,4.作出水深小于5的海域范围,
13、即z=5的等高线.,大家自己运行程序,观察所得结果!,3.做海底曲面图,46,实验作业,1. 一维插值和二维插值的定义?2. 一维插值和二维插值各有哪些方法?各种方法的特点是什么?3. 如何正确运用Matlab求解插值问题?,思考题:,47,建模题目1,丙烷的导热系数是化工生产中值得注意的量,而且常常需要在不同温度及压力下的导热系数,然而我们不可能也没有必要过细地实验测量,经过实验,给出数据如表1所示,,表中的分别表示温度、压力、导热系数,并假设在这个范围内导热系数近似的随压力线性变化,求压力为且温度为99下的导热系数。,解答参考,48,某地区用水管理机构需要对居民的用水速度(单位时间的用水量) 和日总用水量进行估计。现有一居民区,其自来水是由一个圆柱形水塔提供,水塔高12.2m,塔的直径为17.4m。水塔是由水泵根据水塔中的水位自动加水,一般水泵每天工作两次,按照设计,当水塔中的水位降至最低水位,约8.2m时,水泵自动启动加水;当水位升高到最高水位,约10.8m时,水泵停止工作。 表2给出的是某一天的测量数据,测量了28个时刻的数据,但由于水泵正向水塔供水,有三个时刻无法测到水位(表中用表示),试建立数学模型,来估计居民的用水速度和日用水量。,估计水塔的水流量,返回,解答参考,建模题目2,