资源描述
单击此处编辑母版标题样式,*,插值与拟合,一、插值的根本原理,二、拟合的根本原理,三、插值与拟合的关系,四、插值的MATLAB实现,五、拟合的Matlab实现,我们常常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如数据拟合、参数估量、插值等数据处理算法。此类问题在MATLAB中有很多现成的函数可以调用,生疏MATLAB,这些方法都能游刃有余的用好。,一、,概述,数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,例如98年美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,2023年吵的沸沸扬扬的“非典”问题也要用到数据拟合算法,观看数据的走向进展处理,2023年的雨量预报的评价的插值计算。2023年的公交车调度拟合问题,2023年的饮酒驾车拟合问题。,插值问题雨量预报的评价,猜测点和实测点的图形,插值后的图形,拟合问题饮酒驾车,喝两瓶酒的拟合曲线,喝1-5瓶酒的拟合曲线,在实际中,常常要处理由试验或测量所得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类函数的参数或寻求某个近似函数,使所得到的近似函数与数据有较高的拟合精度。,假设要求这个近似函数曲线或曲面经过所的全部数据点,则称此类问题为插值问题。不需要函数表达式,二、根本概念,假设不要求近似函数通过全部数据点,而是要求它能较好地反映数据变化规律的近似函数的方法称为数据拟合。必需有函数表达式,近似函数不愿定曲线或曲面通过全部的数据点。,1、联系,都是依据实际中一组数据来构造一个能够反映数据变化规律的近似函数的方法。,2、区分,插值问题不愿定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。数据拟合要求得到一个具体的近似函数的表达式。,三、插值与拟合的区分和联系,四、,插值的使用及求解,当数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法。,实际问题当中遇到的函数 f(x)是各种各样的,有的表达式很简洁,有的甚至给不出数学的式子,只供给了一些离散数据,警如,某些点上的函数值和导数值。,4.1 引言,选用不同类型的插值函数,靠近的效果就不同,一般有:,1拉格朗日插值lagrange插值,2分段线性插值,3Hermite,4三次样条插值。,4.2 插值方法,Matlab 实现:实现分段线性插值不需要编制函数程序,它自身供给了内部的功能函数,interp1(一维插值),intep2(二维),interp3(三维),intern(n维),4.3 MATLAB实现插值,用,MATLAB,作插值计算,一维插值函数:,yi=interp1(x,y,xi,”method”),插值方法,被插值点,插值节点,xi,处的插值结果,nearest,最邻近插值;,linear,线性插值;,spline,三次样条插值;,cubic,立方插值;,缺省时 分段线性插值,留意:全部的插值方法,都要求x是单调的,并且xi不,能够超过x的范围,例:从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),x,y,机翼下轮廓线,例 飞机下轮廓线上数据如下,求x每转变0.1时的y值,To MATLAB(plane),返回,要求,x0,y0,单调;,x,,,y,可取,为矩阵,或,x,取行向量,,y,取为列向量,,x,y,的值分别不能超出,x0,y,0,的范围,z=interp2(x0,y0,z0,x,y,method),被插值点,插值方法,用,MATLAB,作网格节点数据的插值,插值节点,被插值点的函数值,nearest,最邻近插值;,linear,双线性插值;,cubic,双三次插值;,缺省时 双线性插值.,例:测得平板外表35网格点处的温度分别为: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个单位的地方进展插值.,再输入以下命令:,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),通过此例对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进展比较,To MATLAB (moutain),返回,插值函数,griddata,格式为:,cz=griddatax,y,z,cx,cy,method,用,MATLAB,作散点数据的插值计算,要求,cx,取行向量,,cy,取为列向量,被插值点,插值方法,插值节点,被插值点的函数值,nearest最邻近插值,linear 双线性插值,cubic 双三次插值,”v4”-MATLAB供给的插值方法,缺省时,双线性插值,例 在某海疆测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域75,200-50,150里的哪些地方船要避开进入,To MATLAB hd1,返回,4.作出水深小于5的海疆范围,即z=5的等高线.,2.在矩形区域(75,200)(-50,150)进展插值。,1.输入插值基点数据,3.作海底曲面图,%程序一:插值并作海底曲面图,x =129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5;,y=7.5 141.5 23.0 147.0 22.5 137.5 85.5 -6.5 -81 3.0 56.5 -66.5 84.0 -33.5;,z=4 8 6 8 6 8 8 9 9 8 8 9 4 9;,x1=75:1:200;,y1=-50:1:150;,x1,y1=meshgrid(x1,y1);,z1=griddata(x,y,z,x1,y1,”v4”);,meshc(x1,y1,z1),海底曲面图,%程序二:插值并作出水深小于5的海疆范围。,x1=75:1:200;,y1=-50:1:150;,x1,y1=meshgrid(x1,y1);,z1=griddata(x,y,z,x1,y1,”v4”);%插值,z1(z1=5)=nan;%将水深大于5的置为nan,这样绘图就不会显示出来,meshc(x1,y1,z1),水深小于5的海疆范围,试验作业1,山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200 x 4000,1200y 3600),试作出该山区的地貌图和等高线图,并对几种插值方法进展比较,返回,5.1 引言,对于状况较简洁的实际问题因素不易化简,作用机理不详可直接使用数据组建模,查找简洁的因果变量之间的数量关系,从而对未知的情形作预报。这样组建的模型为拟合模型。拟合模型的组建主要是处理好观测数据的误差,使用数学表达式从数量上近似因果变量之间的关系。拟合模型的组建是通过对有关变量的观测数据的观看、分析和选择恰当的数学表达方式得到的。,五、,拟合的使用及求解,5.2 拟合模型的分类,5.2.1 直线拟合,5.2.2 曲线拟合,观看数据修匀,对于已给一批实测数据,由于实测方法、试验环境等一些外界因素的影响,不行避开地会产生随机干扰和误差。我们自然希望依据数据分布的总趋势去剔除观看数据中的偶然误差,这就是所谓的数据修匀或称数据平滑问题。,直 线 拟 合 问 题 引 例 1,温度,t,(,C)20.5 32.7 51.0 73.0 95.7,电阻,R,(,)765 826 873 942 1032,已知热敏电阻数据:,求60,C,时的电阻,R,设,R,=,at,+,b,a,b,为待定系数,曲 线 拟 合 问 题 引 例 2,t,(h)0.25 0.5 1 1.5 2 3 4 6 8,c,(,g/ml),19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01,已知一室模型快速静脉注射下的血药浓度数据(,t,=0,注射300mg),求血药浓度随时间的变化规律c(t).,在直角坐标系下作图如下,(plot),MATLAB(aa1),曲 线 拟 合 问 题 的 提 法,一组二维数据,即平面上 n个点xi,yi)i=1,n,寻求一个函数曲线y=f(x),使 f(x)在某种准则下与全部数据点最为接近,即曲线拟合得最好,+,+,+,+,+,+,+,+,+,x,y,y,=,f,(,x,),(,x,i,y,i,),i,i 为点xi,yi)与曲线 y=f(x)的距离,曲线拟合问题最常用的解法线性最小二乘法的根本思路,第一步:先选定一组函数 r1(x),r2(x),rm(x),mn,令,f(x)=a1r1(x)+a2r2(x)+amrm(x)1,其中 a1,a2,am 为待定系数,其次步:确定a1,a2,am 的准则最小二乘准则:,使n个点xi,yi)与曲线 y=f(x)的距离i 的平方和最小,记,问题归结为,求,a,1,a,2,a,m,使,J,(,a,1,a,2,a,m,),最小,用,MATLAB,作线性最小二乘拟合,1.作多项式,f,(,x,)=,a,1,x,m,+,a,m,x,+,a,m+1,拟合,可利用已有程序,:,a=polyfit(x,y,m),输入同长度,的数组x,y,拟合多项,式次数,2.多项式在x处的值y可用以下命令计算:,y=polyvala,x,1输入以下命令:,x=0:0.1:1;,y=-0.447 1.978 3.28 6.16 7.08 7.34,7.66 9.56 9.48 9.30 11.2;,A=polyfit(x,y,2),z=polyval(A,x);,plot(x,y,”k+”,x,z,”r”)%作出数据点和拟合曲线的图形,2计算结果:=-9.8108 20.1293 -0.0317,用多项式拟合的命令,MATLAB(zxec2),如何预报人口的增长,人口的增长是当前世界上引起普遍关注的问题,并且我们会觉察在不同的刊物预报同一时间的人口数字不一样,这明显是由于用了不同的人口模型计算的结果。,我国是世界第一人口大国,根本上地球每九个人中就有一个中国人。有效地把握我国人口的增长是使我过全面进入小康社会、到21世纪中叶建成富强民主文明的社会主义国家的需要。而有效把握人口增长的前提是要生疏人口数量的变化规律,建立人口模型,作出较准确的预报。,例:如何预报人口的增长,例如:1949年1994年我国人口数据资料如下:,年 份xi 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994,人口数yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8,建模分析我国人口增长的规律,预报1999年我国人口数。,模型一:假设人口随时间线性地增加,模型:,参数估量观测值的模型:,拟合的精度:,误差平方和。,可以算出:a=-283.2320 b=0.1480,模型:y=1.93+0.146 x,则可看成是线性方程,用,polyfit,命令计算得:,模型二:指数
展开阅读全文