数学建模~插值与拟合ppt课件.ppt
《数学建模~插值与拟合ppt课件.ppt》由会员分享,可在线阅读,更多相关《数学建模~插值与拟合ppt课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、插值与拟合插值与拟合一、概述一、概述二、基本概念二、基本概念三、插值与拟合的区别和联系三、插值与拟合的区别和联系四、插值的四、插值的MATLABMATLAB实现实现五、拟合的五、拟合的MatlabMatlab实现实现 我们经常会遇到大量的数据需要处理,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算数据拟合、参数估计、插值等数据处理算法。此类问题在法。此类问题在MATLAB中有很多现成的中有很多现成的函数可以调用,熟悉函数可以调用,熟悉MATLAB,这些方法,这些方法都能游刃有余的用好。都能游刃有余的
2、用好。 一、一、 数据拟合在很多赛题中有应用,与图形数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,处理有关的问题很多与插值和拟合有关系,例如例如9898年美国赛年美国赛A A题,生物组织切片的三维插题,生物组织切片的三维插值处理,值处理,9494年年A A题逢山开路,山体海拔高度的题逢山开路,山体海拔高度的插值计算,插值计算,20032003年吵的沸沸扬扬的年吵的沸沸扬扬的“非典非典”问题也要用到数据拟合算法,观察数据的走问题也要用到数据拟合算法,观察数据的走向进行处理,向进行处理, 20052005年的雨量预报的评价的插年的雨量预报的评价的插值计算。值计算。2001
3、2001年的公交车调度拟合问题,年的公交车调度拟合问题,20032003年的饮酒驾车拟合问题。年的饮酒驾车拟合问题。预测点和实测点的图形预测点和实测点的图形插值后的图形插值后的图形喝两瓶酒的拟合曲线喝两瓶酒的拟合曲线喝喝1-5瓶酒的拟合曲线瓶酒的拟合曲线 在实际中,常常要处理由实验或测量所在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。数与已知数据有较高
4、的拟合精度。 如果要求这个近似函数(曲线或曲面)如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为经过所已知的所有数据点,则称此类问题为插值问题插值问题。 (不需要函数表达式)(不需要函数表达式)二、二、 如果不要求近似函数通过所有数据点,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近而是要求它能较好地反映数据变化规律的近似函数的方法称为似函数的方法称为数据拟合数据拟合。(必须有函数。(必须有函数表达式)表达式) 近似函数不一定(曲线或曲面)通过所近似函数不一定(曲线或曲面)通过所有的数据点。有的数据点。 1 1、联系、联系都是根据实际中一组已知
5、数据来构造一个能够都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。反映数据变化规律的近似函数的方法。2 2、区别、区别插值问题插值问题不一定得到近似函数的表达形式,仅不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。通过插值方法找到未知点对应的值。数据拟合数据拟合要求得到一个具体的近似函数的表达式。要求得到一个具体的近似函数的表达式。 三、插值与三、插值与四、四、 当数据量不够,需要补充,且认定已有数当数据量不够,需要补充,且认定已有数据可信时据可信时, , 通常利用函数插值方法。通常利用函数插值方法。 实际问题当中碰到的函数实际问题当中碰到的函数 f
6、(x) 是各种各是各种各样的,有的表达式很复杂,有的甚至给不出数样的,有的表达式很复杂,有的甚至给不出数学的式子,只提供了一些离散数据,警如,某学的式子,只提供了一些离散数据,警如,某些点上的函数值和导数值。些点上的函数值和导数值。 4.1 4.1 引言引言 选用不同类型的插值函数,逼近的效选用不同类型的插值函数,逼近的效果就不同,一般有:果就不同,一般有:(1)拉格朗日插值()拉格朗日插值(lagrange插值)插值)(2)分段线性插值)分段线性插值(3)Hermite(4)三次样条插值。)三次样条插值。 4.2 4.2 插值方法插值方法 Matlab 实现:实现分段线性插值不需实现:实现分
7、段线性插值不需要编制函数程序,它自身提供了内部的功要编制函数程序,它自身提供了内部的功能函数能函数interp1(一维插值一维插值) intep2(二维二维) interp3(三维三维) intern(n维维) 4.3 MATLAB 4.3 MATLAB实现插值实现插值用用MATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xi处的处的插值结果插值结果nearest 最邻近插值;最邻近插值;linear 线性插值;线性插值;spline 三次样条插值;三次样条插值;cubic 立方插值;立
8、方插值; 缺省时缺省时 分段线性插值分段线性插值 注意:所有的插值方法注意:所有的插值方法都要求都要求x是单调的,并且是单调的,并且xi不不能够超过能够超过x的范围的范围例:从例:从1 1点点1212点点的的1111小时内,每隔小时内,每隔1 1小时测量一次温小时测量一次温度,测得的温度的数值依次为:度,测得的温度的数值依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424试估计每隔试估计每隔1/101/10小小时的温度值时的温度值hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24
9、;h=1:0.1:12;t=interp1(hours,temps,h,spline); plot(hours,temps,+,h,t,hours,temps,r:) %作图作图xlabel(Hour),ylabel(Degrees Celsius)0246810125101520253035xy机翼下机翼下轮廓线轮廓线例例 已知飞机下轮廓线上数据如下,求已知飞机下轮廓线上数据如下,求x每改变每改变0.1时的时的y值值05101500.511.522.5二维插值的定义二维插值的定义 xyO O第一种(网格节点):第一种(网格节点): 已知已知 m n个节点个节点 ),2 , 1;,.,2 ,
10、1(),(njmizyxijji 其中其中jiyx ,互不相同,不妨设互不相同,不妨设bxxxam 21dyyycn 21 构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即再用再用),(yxf计算插值,即计算插值,即).,(*yxfz ),1 ,0;,1 ,0(),(njmizyxfijji 第二种(散乱节点):第二种(散乱节点): yx0 0已知已知n个节点个节点),.,2 , 1(),(nizyxiii 其中其中),(iiyx互不相同,互不相同, 构造一个二元函数构造一个二元函数),(yxfz 通过全部已知节点通过全部已知节点,即即),1 ,0(),(
11、nizyxfiii 再用再用),(yxf计算插值,即计算插值,即).,(*yxfz 返回返回 要求要求x0, ,y0单调;单调;x,y可取可取为矩阵,为矩阵,或或x取行向量,取行向量,y取为列向量取为列向量,x,y的值分别不能的值分别不能超出超出x0, ,y0 0的范围的范围z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest 最邻近插值;最邻近插值;linear 双线性插值;双线性插值;cubic 双三次插值;双三次插值;缺省时缺省时 双线性插值双线性插值. .例:测得平板表
12、面例:测得平板表面3 35 5网格点处的温度分别为:网格点处的温度分别为: 82 81 80 82 84 82 81 80 82 84 79 63 61 65 81 79 63 61 65 81 84 8484 84 82 85 86 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.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图先在三维
13、坐标画出原始数据,画出粗糙的温度分布曲线图.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)画出插值后的温度分布曲面图画出插值后的温度分布曲面图. 例例 山地高程绘图山地高程绘图要在山区修一条公路,要在山区修一条公路,首先测得一些地点的高程,数据见表首先测得一些地点的高程,数据见表.表中的数据为在平面区域表中的数据为在平面区域 0 x2000, 0yx=0:4:20; %
14、给出给出X轴的坐标轴的坐标y=0:4:20; %给出给出Y轴的坐标轴的坐标z=37 51 65 74 83 88; 47 62 76 88 98 106; ; 69 87 105 128 142 150; %给出(给出(xi,yj)点的高程)点的高程 zij:X,Y=meshgrid(0:1:20,0:1:20); % 给出加密的插值坐标网格给出加密的插值坐标网格Z=interp2(x,y,z,X,Y,spline);%在坐标上进行样条插值在坐标上进行样条插值画图:画图:clf;%清空图形坐标系中的内容清空图形坐标系中的内容mesh(X,Y,Z) %在网格上画出插值的结果在网格上画出插值的结果
15、hold on %打开在同一坐标系中画图的功能打开在同一坐标系中画图的功能contour(X,Y,Z) %画平面等高线画平面等高线con3=contour3(X,Y,Z) %画三维等高线画三维等高线clabel(con3) %标高程标高程hold off %结束作图结束作图 插值函数插值函数griddata格式为格式为: cz =griddata(x,y,z,cx,cy,method)用用MATLAB作散点数据的插值计算作散点数据的插值计算 要求要求cx取行向量,取行向量,cy取为列向量取为列向量被插值点插值方法插值节点被插值点的函数值nearest最邻近插值最邻近插值linear 双线性插值
16、双线性插值cubic 双三次插值双三次插值v4- MATLAB提供的插值方法提供的插值方法缺省时缺省时, , 双线性插值双线性插值 例例 在某海域测得一些点在某海域测得一些点( (x, ,y) )处的水深处的水深z由下表由下表给出,船的吃水深度为给出,船的吃水深度为5 5英尺,在矩形区域(英尺,在矩形区域(7575,200200)(-50-50,150150)里的哪些地方船要避免进入)里的哪些地方船要避免进入返回返回4.作出水深小于作出水深小于5的海域范围的海域范围,即即z=5的等高线的等高线.2.在矩形区域在矩形区域(75,200)(-50,150)进行插值。进行插值。 1.输入插值基点数据
17、输入插值基点数据 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=gr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 拟合 ppt 课件
限制150内