数学建模培训用_插值与拟合_matlabppt.ppt

上传人:创****公 文档编号:197599 上传时间:2018-07-16 格式:PPT 页数:45 大小:1.51MB
下载 相关 举报
数学建模培训用_插值与拟合_matlabppt.ppt_第1页
第1页 / 共45页
数学建模培训用_插值与拟合_matlabppt.ppt_第2页
第2页 / 共45页
数学建模培训用_插值与拟合_matlabppt.ppt_第3页
第3页 / 共45页
数学建模培训用_插值与拟合_matlabppt.ppt_第4页
第4页 / 共45页
数学建模培训用_插值与拟合_matlabppt.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、插值与拟合,一、插值的基本原理,二、拟合的基本原理,三、插值与拟合的关系,四、插值的MATLAB实现,五、拟合的Matlab实现,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算法。此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。,一、概述,数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,例如98年美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,2003年吵的沸沸扬扬的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理, 2

2、005年的雨量预报的评价的插值计算。2001年的公交车调度拟合问题,2003年的饮酒驾车拟合问题。,插值问题雨量预报的评价,预测点和实测点的图形,插值后的图形,拟合问题饮酒驾车,喝两瓶酒的拟合曲线,喝1-5瓶酒的拟合曲线,在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。 如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为插值问题。 (不需要函数表达式),二、基本概念,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近似函数

3、的方法称为数据拟合。(必须有函数表达式) 近似函数不一定(曲线或曲面)通过所有的数据点。,1、联系都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。2、区别插值问题不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。数据拟合要求得到一个具体的近似函数的表达式。,三、插值与拟合的区别和联系,四、插值的使用及求解,当数据量不够,需要补充,且认定已有数据可信时, 通常利用函数插值方法。 实际问题当中碰到的函数 f (x) 是各种各样的,有的表达式很复杂,有的甚至给不出数学的式子,只提供了一些离散数据,警如,某些点上的函数值和导数值。,4.1 引言,选用不同类型的插

4、值函数,逼近的效果就不同,一般有:(1)拉格朗日插值(lagrange插值)(2)分段线性插值(3)Hermite(4)三次样条插值。,4.2 插值方法,Matlab 实现:实现分段线性插值不需要编制函数程序,它自身提供了内部的功能函数interp1(一维插值) intep2(二维) interp3(三维) intern(n维),4.3 MATLAB实现插值,用MATLAB作插值计算,一维插值函数:,yi=interp1(x,y,xi,method),nearest 最邻近插值;linear 线性插值;spline 三次样条插值;cubic 立方插值; 缺省时 分段线性插值,注意:所有的插值方

5、法都要求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)

6、,例 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值,To MATLAB(plane),返回,要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围,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)的图形,输入以下命

7、令: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

8、(moutain),返回,插值函数griddata格式为:,cz =griddata(x,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)

9、进行插值。,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,

10、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,山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200x 4000,1200y 3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较,返回,5.1 引言 对于情况较

11、复杂的实际问题(因素不易化简,作用机理不详)可直接使用数据组建模,寻找简单的因果变量之间的数量关系, 从而对未知的情形作预报。这样组建的模型为拟合模型。 拟合模型的组建主要是处理好观测数据的误差,使用数学表达式从数量上近似因果变量之间的关系。拟合模型的组建是通过对有关变量的观测数据的观察、分析和选择恰当的数学表达方式得到的。,五、拟合的使用及求解,5.2 拟合模型的分类,5.2.1 直线拟合5.2.2 曲线拟合5.2.3 观察数据修匀 对于已给一批实测数据,由于实测方法、实验环境等一些外界因素的影响,不可避免地会产生随机干扰和误差。我们自然希望根据数据分布的总趋势去剔除观察数据中的偶然误差,这

12、就是所谓的数据修匀(或称数据平滑)问题。,直 线 拟 合 问 题 引 例 1,求60C时的电阻R,设 R=at+ba,b为待定系数,曲 线 拟 合 问 题 引 例 2,求血药浓度随时间的变化规律c(t).,在直角坐标系下作图如下(plot),MATLAB(aa1),曲 线 拟 合 问 题 的 提 法,已知一组(二维)数据,即平面上 n个点(xi,yi) i=1,n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所有数据点最为接近,即曲线拟合得最好,y=f(x),i 为点(xi,yi) 与曲线 y=f(x) 的距离,曲线拟合问题最常用的解法线性最小二乘法的基本思路,第一步:先

13、选定一组函数 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 的平方和最小 ,记,问题归结为,求 a1,a2, ,am 使 J (a1,a2, ,am) 最小,用MATLAB作线性最小二乘拟合,1. 作多项式f(x)=a1xm+ +amx+am+1拟合,可利用已有程序:,a=polyfit(x,y,m),2.多项式在x处的值y可用以下命令计算: y=polyval(

14、a,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),如何预报人口的增长 人口的增长是当前世界上引起普遍关注的问题,并且我们会发现在不同的刊物预报同一时间的人口数字不相同,这显然是由于用了不同的人口模型计算的结果。 我国是世界第一

15、人口大国,基本上地球每九个人中就有一个中国人。有效地控制我国人口的增长是使我过全面进入小康社会、到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年我国人口数。,模型一:假设人口随时间线性

16、地增加,模型:参数估计观测值的模型: 拟合的精度: 误差平方和。 可以算出:a = -283.2320 b=0.1480模型:y = 1.93 + 0.146 x,则可看成是线性方程,用 polyfit命令计算得:,模型二:指数增长模型,可变为,Y,A,=,+,BX,a=2.33, b=0.0179,则所求模型为:,程序如下:x=1949 1954 1959 1964 1969 1974 1979 1984 1989 1994; y=5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 ; a=polyfit(x,y,1); x1=1949:10:1994; y

17、1=a(2)+a(1)*x1; b=polyfit(x,log(y),1); y2=exp(b(2)*exp(b(1)*x1); plot(x,y,*) hold on plot(x1,y1,-r) hold on plot(x1,y2,-k) legend(原曲线,模型一曲线,模型二曲线),结论的比较如下表: 年 份 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 模型一值 5.24 5.97 6.70 7.43 8.16 8.90 9

18、.62 10.36 11.09 11.82 误 差 0.16 0.03 0.00 -0.43 -0.06 0.20 0.18 -0.06 0.01 -0.02 模型二值 5.55 6.06 6.62 7.23 7.90 8.64 9.44 10.31 11.26 12.31 误差 -0.15 -0.06 0.08 -0.23 0.20 0.46 0.36 -0.01 -0.13 -0.51,结果分析: (1) Q1 = 0.2915 x=0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0; y=2.3201 2.647 2.9707 3.2885 3.6008 3.909 4.2147 4.5191 4.8232 5.1275;a=lsqcurvefit(f1,1;2;2;2,x,y),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。