第一讲插值与拟合课件_第1页
第一讲插值与拟合课件_第2页
第一讲插值与拟合课件_第3页
第一讲插值与拟合课件_第4页
第一讲插值与拟合课件_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2013数学建模培训,培训内容与方式,2020/7/4,3,培训内容1.插值与拟合;2.灰色系统;3.层次分析法;(重要)4.模糊数学方法;(重要)5.多元统计分析与Spss;(重要)6.数学规划与Lingo;(重要)7.图论模型及其Matlab程序;,2020/7/4,4,8.建模论文写作;9.建模案例讲评。培训内容覆盖了数学建模中大部分常用的数学方法。通过刻苦钻研,努力学习,掌握了上述方法后,必将大大提高建立数学模型和运用计算机解决实际问题的综合能力,也一定会在全国建模大赛中取得较好成绩。,2020/7/4,5,培训方式由于培训内容众多且有相当难度,而培训时间又较短,所以如果学生不事先认真

2、预习相关内容,那么在课堂上不可能完全听懂老师所讲内容,大部分学生会云山雾罩,一头雾水,从而使得培训效果大打折扣。综上,强烈建议学生课前认真、,2020/7/4,6,反复研读授课PPT和其它相关资料,然后带着疑问和兴趣再听老师讲解,这样才能保证培训效果。培训PPT及软件、程序下载邮箱:MM:matlabmaple培训以讲解为主,学生如有疑问,可在下午上机辅导时向老师咨询。,上机操作与练习,2020/7/4,8,众所周知,在建模竞赛中,能否熟练使用相关数学软件是能否取得好成绩的关键之一。因此,数学软件的培训应该是建模培训的重要内容。建模中常用的数学软件有Matlab,Spss,Lingo,Mapl

3、e等。由于培训时间有限,在课堂上只能简单介绍Spss和Lingo,而Matlab和,2020/7/4,9,Maple只能在上机过程中穿插介绍。几乎所有的数学方法最终都要用数学软件和程序实现,所以上机练习是与课堂讲授同等重要的培训内容。上机训练的主要目的和内容是通过练习,掌握实现各类数学方法的数学软件和程序。上机所用数学软件和程序主要由,2020/7/4,10,教师提供,学生只要会用即可。但需要提醒同学们注意的是,现成的软件和程序不可能解决建模中的所有问题。通过上机训练,掌握一些基本编程和计算技能(如用Matlab做数据处理、画图,用Maple做简单的解析计算),对于参加建模竞赛是绝对必要的。,

4、2020/7/4,11,上机前,培训老师会布置上机练习,提供相关软件或程序,讲解关键步骤和程序语句。上机过程中,辅导老师负责解答学生的疑难问题。题外话特别要提醒大家的是,国赛完全不同于网络挑战赛,题目的难度和开放性适中,有答题要点、参考方法,,2020/7/4,12,甚至有参考答案;初评评委大部分由指导教师担任,评阅结果通常比较合理、靠谱。那种连基本建模方法都不懂竟然也能获大奖的现象在国赛中几乎是不可能发生的,全国一等奖的论文必须模型、方法合理,结果基本可信、正确,写作清晰、规范。一句话,建模不能全靠忽悠。,第一讲插值与拟合,一、引言,2020/7/4,15,插值与拟合属数值分析中函数逼近内容

5、。在数学建模竞赛中,插值与拟合是一种基本的数据分析手段,被公认为建模中的常用算法之一。本讲第一部分首先介绍了插值问题、插值原理、高次插值的Runge现象,然后讲解了Matlab中的一维和二维插值命令,最后简要介绍了具有,2020/7/4,16,强大插值功能的三维图形(曲面图,等高线等)绘制软件Surfer。第二部分首先介绍了拟合问题、拟合原理与步骤,然后介绍了Origin中的拟合功能及专业拟合软件TableCurve2D,3D。第三部分给出了一个应用插值和拟合的建模实例。,2020/7/4,17,本讲首先要理解插值问题和拟合问题的特点,其次要了解插值和拟合的原理与方法,还要熟悉Matlab插值

6、与绘图的相关命令,掌握Matlab编程的基本知识与技能,特别要熟练掌握利用Surfer,Origin,TableCurve等软件进行插值和拟合的技能。下面给出本讲学习大纲,以方便,2020/7/4,18,大家学习。1.插值问题和拟合问题的特点及区别;在实际中如何正确地判断、选择插值或拟合方法?2.高次插值的Runge现象及避免方法;3.Matlab一维插值(interp1),二维插值(interp2),散乱点插值(griddat,2020/7/4,19,a)及相关命令(surf,mesh,meshgrid,contour);4.Surfer绘图的步骤;5.了解Surfer中几种插值的意义;6.

7、Origin和TableCurve拟合的步骤;7.Matlab基础知识,如数组及运算、调用,循环与控制语句,绘图相关命令,函数(m文件)的定义和调用等。,二、插值,2020/7/4,21,1.插值问题例1在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18,24,28,27,25,20,18,15,13,推测中午1点温度,并做出24小时温度变化曲线图。,2020/7/4,22,例2已知飞机下轮廓线上数据如下,画出飞机下轮廓线。,2020/7/4,23,例3测得平板表面3*5网格点处的温度分别为:828180828479636165818484828586做出

8、平板表面的温度分布曲面z=f(x,y)的图形及等温线,并求出温度最高和最低点。,2020/7/4,24,上述问题可归结为“已知函数在某区间(域)内若干点处的值,求函数在该区间(域)内其它点处的值”,这种问题适宜用插值方法解决。一维插值问题可描述为:已知函数在x0,x1,xn处的值y0,y1,yn,求简单函数p(x),使p(xi)=yi。通常取p(x)为多项式。,2020/7/4,25,可以用范德蒙行列式和克莱姆法则证明(习题集第一章最后一题):在x0,x1,xn处取值y0,y1,yn的多项式存在且唯一,即插值问题的解唯一存在。常用的插值方法有Lagrange插值法和Newton插值法。,202

9、0/7/4,26,2.高次插值的Runge现象在研究插值问题的初期,所有人都想当然地认为插值多项式的次数越高,插值精度越高。Runge通过对一个例子的研究发现,上述结论仅仅在插值多项式的次数不超过七时成立;插值多项式的次数超过七时,插值多项式会出现严重,2020/7/4,27,的振荡现象,称之为Runge现象。,2020/7/4,28,因此,在实际中不应使用七次以上的插值。避免Runge现象的常用方法是:将插值区间分成若干小区间,在小区间内用低次(二次,三次)插值,即分段低次插值,如样条函数插值。,2020/7/4,29,样条插值结果,三、Matlab插值,2020/7/4,31,Maple和

10、Matlab都可以进行插值计算,Maple的一维插值计算较为便捷,而Matlab的二维插值功能较强,还能进行散乱点插值。本节主要介绍Matlab的一维和二维插值命令,大家务必要通过上机操作熟悉这些命令,同时还要初步掌握Matlab的基础知识与技能。,2020/7/4,32,1.一维插值一维插值命令是interp1,其基本格式为yi=interp1(x,y,xi,method)。x,y为插值点,xi,yi为被插值点和插值结果,x,y和xi,yi通常为向量;method表示插值方法:nearest最邻近插值,linear线性插值,spline三次样条插值,cubic立,2020/7/4,33,方插

11、值,缺省为线性插值。例1Matlab程序x=0:2:24;y=129910182428272520181513;x1=13;y1=interp1(x,y,x1,spline)xi=0:1/3600:24;yi=interp1(x,y,xi,spline);plot(x,y,*,xi,yi),2020/7/4,34,请理解掌握程序中的每个语句,并改变插值方法,观察图形变化。,2020/7/4,35,例2Matlab程序functionplanex0=035791112131415;y0=01.21.72.02.12.01.81.21.01.6;x=0:0.1:15;y1=lagrange(x0,

12、y0,x);y2=interp1(x0,y0,x);y3=interp1(x0,y0,x,spline);subplot(3,1,1);,2020/7/4,36,plot(x0,y0,k+,x,y1,r);grid;title(lagrange);subplot(3,1,2);plot(x0,y0,k+,x,y2,r);grid;title(piecewiselinear);subplot(3,1,3);plot(x0,y0,k+,x,y3,r);,2020/7/4,37,grid;title(spline);functiony=lagrange(x0,y0,x)n=length(x0);m=

13、length(x);fori=1:mz=x(i);s=0.0;fork=1:np=1.0;,2020/7/4,38,forj=1:nifj=kp=p*(z-x0(j)/(x0(k)-x0(j);endends=p*y0(k)+s;endy(i)=s;end,2020/7/4,39,2020/7/4,40,例2的程序较复杂,说明如下:(1)程序依次用Lagrange、分段线性和三次样条三种插值方法进行了计算,其中Lagrange高次插值明显出现了Runge现象;(2)因为Matlab没有Lagrange高次插值功能,所以程序中单独编写了高次插值函数lagrange,然后调用;,2020/7/4,

14、41,(3)程序涉及到了数组、循环和条件语句、子函数的定义与调用以及一些绘图命令(subplot,grid,title)等。请大家通过上机理解、掌握上述命令,特别是函数的定义及调用。,2020/7/4,42,2.二维插值二维插值命令是interp2,基本格式为zi=interp2(x,y,z,xi,yi,method)。二维插值命令的使用较复杂。x,y,z为插值点,z可以理解为被插值函数在(x,y)处的值;xi,yi为被插值点,zi为输出的插值结果,可理解为插值函数在(xi,yi)处的值;x,y为向,2020/7/4,43,量,xi,yi为向量或矩阵,而z和zi则为矩阵。method表示插值方

15、法:nearest最邻近插值,linear双线性插值,spline双三次样条插值,cubic双立方插值,黙认双线性插值。,2020/7/4,44,例3Matlab程序x=1:5;y=1:3;temps=8281808284;7963616581;8484828586;figure(1);mesh(x,y,temps);xi=1:0.2:5;yi=1:0.2:3;,2020/7/4,45,zi=interp2(x,y,temps,xi,yi,cubic);figure(2);mesh(xi,yi,zi);figure(3);contour(xi,yi,zi,20,r);i,j=find(zi=m

16、in(min(zi);x=xi(j),y=yi(i),zmin=zi(i,j)i,j=find(zi=max(max(zi);x=xi(j),y=yi(i),zmax=zi(i,j),2020/7/4,46,上述程序较复杂,说明如下:(1)interp2中的xi为行向量,而yi为列向量,其实xi和yi行列不同即可。(2)plot3(空间曲线),mesh(空间曲面),surf(空间曲面),contour(等高线)是三维作图中的常用命令。mesh和surf的区别是:mesh画的是曲面网格图,而surf画的是曲面表面图。,2020/7/4,47,contour(x,y,z,n)的功能是作出由点(x,

17、y,z)插值而成曲面的n条等高线。用meshc和surfc可在曲面下方画等高线。meshz和surfz是画垂帘图。(3)程序的最后部分为求最高(低)点,请各位通过上机揣摩min,max特别是find的功能。(4)将程序中figure语句去除,通,2020/7/4,48,过观察结果,体味figure的作用。例4在某山区测得一些地点的高程如下表。平面区域为0x5600,0y4800试用Matlab中的最邻近插值、双线性插值和双三次插值3种方法作出该山区的地貌图和等高线图,并求出最高和最低点。,2020/7/4,49,2020/7/4,50,Matlab程序x=0:400:5600;y=0:400:

18、4800;z=370470550600670690670620580450400300100150250;.510620730800850870850780720650500200300350320;.650760880970102010501020830900700300500550480350;.740880108011301250128012301040900500700780750650550;.830980118013201450142014001300700900850840380780750;.8801060123013901500150014009001100106095087

19、0900930950;.9101090127015001200110013501450120011501010880100010501100;.9501190137015001200110015501600155013801070900105011501200;.143014301460150015501600155016001600160015501500150015501550;.1420143014501480150015501510143013001200980850750550500;.1380141014301450147013201280120010809407806204603

20、70350;.13701390141014301440114011101050950820690540380300210;.13501370139014001410960940880800690570430290210150;,2020/7/4,51,figure(1);meshz(x,y,z);xlabel(X),ylabel(Y),zlabel(Z);xi,yi=meshgrid(0:50:5600,0:50:4800);figure(2);z1i=interp2(x,y,z,xi,yi,nearest);surfc(xi,yi,z1i);xlabel(X),ylabel(Y),zlabe

21、l(Z);figure(3);z2i=interp2(x,y,z,xi,yi);,2020/7/4,52,surfc(xi,yi,z2i);xlabel(X),ylabel(Y),zlabel(Z);figure(4);z3i=interp2(x,y,z,xi,yi,cubic);surfc(xi,yi,z3i);xlabel(X),ylabel(Y),zlabel(Z);figure(5);subplot(1,3,1),contour(xi,yi,z1i,10,r);subplot(1,3,2),contour(xi,yi,z2i,10,r);subplot(1,3,3),contour(x

22、i,yi,z3i,10,r);,2020/7/4,53,程序用“xi,yi=meshgrid(0:50:5600,0:50:4800);”生成网格点(xi,yi),作用相当于“xi=0:50:5600;yi=0:50:4800;”,但meshgrid(x,y)生成的xi,yi为同维矩阵,xi的行均为x,而yi的列均为y。请根据x,y=meshgrid(1:5,2:6)的运行结果理解meshgrid的作用,并补充程序中求最高、高低点部分。,2020/7/4,54,网线图,2020/7/4,55,最邻近点插值,2020/7/4,56,双线性插值,2020/7/4,57,双三次插值,2020/7/4

23、,58,等高线,2020/7/4,59,3.散乱点插值前面讨论的插值问题的插值点(x,y)均为网格点。当(x,y)为散乱点时,可用griddata(x,y,z,xi,yi,method)命令进行二维插值。例5在某海域测得一些点(x,y)处的水深z如下表,船的吃水深度为5英尺,在矩形区域(75,200)*(50,150)内,2020/7/4,60,的哪些地方船要避免进入。,2020/7/4,61,Matlab程序clearx=129140103.588185.5195105.5157.5107.57781162162117.5;y=7.5141.52314722.5137.585.5-6.5-8

24、1356.5-66.584-33.5;z=-4-8-6-8-6-8-8-9-9-8-8-9-4-9;xi,yi=meshgrid(75:0.5:200,-70:0.5:150);zi=griddata(x,y,z,xi,yi,cubic);,2020/7/4,62,figure(1);meshz(xi,yi,zi);xlabel(X),ylabel(Y),zlabel(Z);figure(2),contour(xi,yi,zi,-5-5,b);grid;holdon;plot(x,y,+);xlabel(X),ylabel(Y);,2020/7/4,63,海底地形图,2020/7/4,64,等

25、高线图,四、Surfer软件简介,2020/7/4,66,“城市表层土壤重金属污染分析”(2011A)评阅要点中明确指出:可用插值方法获得污染物浓度的空间分布;由于数据是不规则的,可用散乱数据插值,如Kriging插值、Shepard插值等;应对所用方法做出分析,不能只简单套用软件。一些获全国奖的优秀论文正是借,2020/7/4,67,助Surfer软件,采用Kriging插值,较好地解决了污染物浓度的空间分布问题。在数学建模竞赛中,是否熟悉相关软件有时是能否顺利解决问题,甚至是能否获得好成绩的重要因素。本节简要介绍Surfer软件的基本功能和使用步骤。,2020/7/4,68,1.Surfe

26、r的基本功能Surfer是一款主要供地质工作者使用的三维作图软件,主要功能是绘制各种三维曲面图及其等高线。Surfer的最大特色是具有丰富的插值及其它数据处理功能。Surfer操作简单,使用方便,在教程的帮助下可很快掌握基本用法。,2020/7/4,69,Surfer界面为典型的Windows风格,最常用的菜单为Grid和Map。各菜单含义及用法详见教程。Surfer绘图的流程如下:1.建立XYZ三维数据文件;2.将数据文件网格化;3.绘制等高线图、网线图、图像图、地貌图、3D表层图等。,2020/7/4,70,2.建立数据文件Surfer的数据文件是指后缀为dat或txt的文本文件,可以在S

27、urfer的工作表中输入,也可由其它软件比如Excel等生成。数据文件由三列,分别为XYZ,其中X,Y表示x,y坐标,Z表示函数在(x,y)处的值。,2020/7/4,71,除第一行被看成文件头外,其它行均被黙认为数据。3.数据文件的网格化数据文件不能直接用于绘图,因为Surfer对绘图数据有特殊的格式要求,因此绘图前还需将数据文件转换成grd文件,即网格文件。数据文件的网格化步骤如下:,2020/7/4,72,(1)打开菜单Grid|Data,在open对话框中选择数据文件。(2)选择要进行网格化的数据列,然后选择一种插值方法(需要比原始数据更密的数据或原始数据散乱时);建议选择距离平方反比

28、法(inversedistancetoapower)或Kriging法。这两种插值法的含义参见教程。,2020/7/4,73,选定输出文件名后,网格文件就生成了。4.绘制三维图形打开菜单Map|New即可绘制等高线图(ContourMap),曲面图(SurfaceMap)等。绘图时,可根据需要进行必要的设置,具体内容参见教程。,2020/7/4,74,下面给出2011A中污染物浓度的等高线图和三维曲面图,据此可研究污染物浓度的空间分布及污染源。请大家根据题中所给Excel数据,利用Surfer软件,作出污染物浓度的各种三维图形,并对图形进行编辑和设置,熟悉Surfer软件的基本功能与用法。,2

29、020/7/4,75,等高线图,2020/7/4,76,曲面图,五、拟合,2020/7/4,78,1.拟合问题例6从1点到12点每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。(1)试估计每隔1/10小时的温度值,并做出温度变化图形。(2)推测t=13.5时的温度。例7在某化学反应中,根据实验,2020/7/4,79,测得生成物浓度y与时间x的关系如下表,求浓度y与时间x的对应函数关系y=f(x),并据此求出反应速度曲线。,2020/7/4,80,例6的第1问是典型的插值问题,但第2问不宜用插值方法,因为13.5已超出所给数据范围,用

30、插值函数外推插值区间外的数据会产生较大误差。解决第2问的常用方法是,根据1到12点间的温度数据求出温度与时间之间的近似函数关系f(t),由f(t)推断t=13.5时的温度。,2020/7/4,81,这种根据离散数据求数据间近似函数关系的问题称为曲线拟合问题。拟合问题与插值问题的区别在于:(1)插值函数过已知点,而拟合函数不一定过已知点;(2)插值主要用于求函数值,而拟合的主要目的是求函数关系,从而进行预测等进一步的分析。,2020/7/4,82,当然,某些特定问题既可以用插值也可以用拟合。综上,例7也属典型的拟合问题。根据所给数据拟合出浓度y与时间x的函数关系y=f(x)后,再求导数即得反应速

31、度函数。,2020/7/4,83,2.拟合的计算曲线拟合需解决如下两个问题:(1)线型的选择;(2)线型中参数的计算。线型的选择是拟合计算的关键和难点。通常主要根据专业知识和散点图确定线型。线性拟合中参数的计算可采用最,2020/7/4,84,小二乘法,而非线性拟合参数的计算则要应用Gauss-Newton迭代法。许多软件都可以进行拟合计算,其中Origin和TableCurve最为专业。这两个软件不仅能进行参数的计算,还提供了大量的线型供选择,可方便地进行一维和二维拟合。,六、Origin与TableCurve简介,2020/7/4,86,1.Origin简介Origin是美国MicroCa

32、l公司开发的数据分析和绘图软件。Origin可以非常方便地进行各类二维和三维图的绘制,所绘图形精美,可在Word,PPT中进行编辑、修改。Origin的数据分析功能包括插值,微积分,简单统计分析,Fourier变换,滤,2020/7/4,87,波等,但最具特色的是拟合功能。Origin不仅提供了数百种曲线和曲面供选择,而且还允许自创曲线和曲面线型。Origin操作较为简单,基本上只需要通过菜单即可完成全部操作。,2020/7/4,88,2.Origin拟合过程Origin的拟合过程如下:(1)建立拟合数据,作出散点图。拟合数据可以在Origin输入,也可以直接调用Excel文件。(2)选定拟合

33、线型。打开AnalysisFitting菜单,可直接选择Linear,Polynomial或Nonli,2020/7/4,89,nearFit,在NLFit对话框中,根据散点图的形状,选择合适的线型。(3)点Fit按扭开始拟合。Origin提供完整的拟合线型表达式、参数值、拟合曲线、残差平方和(ReducedChi-Sqr)及调节确定系数(Adj.R-Square)。这里要提醒各位的是,有时拟合,2020/7/4,90,出的曲线与散点图相关很大,其原因是:系统黙认的初始值不合适,导致Gauss-Newton迭代不收敛。此时,只要改变初始值通常就可解决问题。下面用Origin对例6和例7中数据进

34、行拟合。首先借助Maple用插值方法解决例6的两个问题。,2020/7/4,91,高次插值(012),2020/7/4,92,高次插值(012.5),2020/7/4,93,样条插值(012),2020/7/4,94,样条插值(016),2020/7/4,95,高次插值的第一个图中出现的明显的Runge现象,第二个图显示外推t12时的数据出现了巨大误差。样条插值的第一个图表明样条插值可以很好地解决第一个问题,但第二个图显示,用样条插值外推t12时的数据也会产生较大误差。综上,第二问不宜用插值方法。,2020/7/4,96,例6多项式(9次)拟合图形R=0.94428,2020/7/4,97,例

35、7Origin拟合结果,Equationy=A1*exp(-x/t1)+A2*exp(-x/t2)+y0Adj.R-Square0.99864ValueStandardErrorBy011.324160.71521BA1-2.766120.23031Bt111.239718.0397BA2-9.351890.51014Bt21.511270.16765,2020/7/4,98,例7Origin拟合图形,2020/7/4,99,3.TableCurve简介TableCurve2D,3D是美国SPSS公司开发的曲线和曲线拟合软件。TableCurve最独特的功能是能自动找出与数据最匹配的曲线(面)。TableCurve2D可以从3600多个方程中找出与数据最匹配的曲线。TableCurve3D可以从4亿多个方,2020/7/4,100,程中找出与数据最匹配的曲面。与Origin一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论