第一讲插值与拟合概要

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2013数学建模培训培训内容与方式2020/1/293培训内容1.插值与拟合;2.灰色系统;3.层次分析法;(重要)4.模糊数学方法;(重要)5.多元统计分析与Spss;(重要)6.数学规划与Lingo;(重要)7.图论模型及其Matlab程序;2020/1/2948.建模论文写作;9.建模案例讲评。培训内容覆盖了数学建模中大部分常用的数学方法。通过刻苦钻研,努力学习,掌握了上述方法后,必将大大提高建立数学模型和运用计算机解决实际问题的综合能力,也一定会在全国建模大赛中取得较好成绩。2020/1/295培训方式由于培训内容众多且有相当难度,而培训时间又较短,所以如果学生不事先认真预习相关内容,那么在课堂上不可能完全听懂老师所讲内容,大部分学生会云山雾罩,一头雾水,从而使得培训效果大打折扣。综上,强烈建议学生课前认真、2020/1/296反复研读授课PPT和其它相关资料,然后带着疑问和兴趣再听老师讲解,这样才能保证培训效果。培训PPT及软件、程序下载邮箱:austmathmodeling@163.comMM:matlabmaple培训以讲解为主,学生如有疑问,可在下午上机辅导时向老师咨询。上机操作与练习2020/1/298众所周知,在建模竞赛中,能否熟练使用相关数学软件是能否取得好成绩的关键之一。因此,数学软件的培训应该是建模培训的重要内容。建模中常用的数学软件有Matlab,Spss,Lingo,Maple等。由于培训时间有限,在课堂上只能简单介绍Spss和Lingo,而Matlab和2020/1/299Maple只能在上机过程中穿插介绍。几乎所有的数学方法最终都要用数学软件和程序实现,所以上机练习是与课堂讲授同等重要的培训内容。上机训练的主要目的和内容是通过练习,掌握实现各类数学方法的数学软件和程序。上机所用数学软件和程序主要由2020/1/2910教师提供,学生只要会用即可。但需要提醒同学们注意的是,现成的软件和程序不可能解决建模中的所有问题。通过上机训练,掌握一些基本编程和计算技能(如用Matlab做数据处理、画图,用Maple做简单的解析计算),对于参加建模竞赛是绝对必要的。2020/1/2911上机前,培训老师会布置上机练习,提供相关软件或程序,讲解关键步骤和程序语句。上机过程中,辅导老师负责解答学生的疑难问题。题外话特别要提醒大家的是,国赛完全不同于网络挑战赛,题目的难度和开放性适中,有答题要点、参考方法,2020/1/2912甚至有参考答案;初评评委大部分由指导教师担任,评阅结果通常比较合理、靠谱。那种连基本建模方法都不懂竟然也能获大奖的现象在国赛中几乎是不可能发生的,全国一等奖的论文必须模型、方法合理,结果基本可信、正确,写作清晰、规范。一句话,建模不能全靠忽悠。第一讲插值与拟合一、引言2020/1/2915插值与拟合属数值分析中函数逼近内容。在数学建模竞赛中,插值与拟合是一种基本的数据分析手段,被公认为建模中的常用算法之一。本讲第一部分首先介绍了插值问题、插值原理、高次插值的Runge现象,然后讲解了Matlab中的一维和二维插值命令,最后简要介绍了具有2020/1/2916强大插值功能的三维图形(曲面图,等高线等)绘制软件Surfer。第二部分首先介绍了拟合问题、拟合原理与步骤,然后介绍了Origin中的拟合功能及专业拟合软件TableCurve2D,3D。第三部分给出了一个应用插值和拟合的建模实例。2020/1/2917本讲首先要理解插值问题和拟合问题的特点,其次要了解插值和拟合的原理与方法,还要熟悉Matlab插值与绘图的相关命令,掌握Matlab编程的基本知识与技能,特别要熟练掌握利用Surfer,Origin,TableCurve等软件进行插值和拟合的技能。下面给出本讲学习大纲,以方便2020/1/2918大家学习。1.插值问题和拟合问题的特点及区别;在实际中如何正确地判断、选择插值或拟合方法?2.高次插值的Runge现象及避免方法;3.Matlab一维插值(interp1),二维插值(interp2),散乱点插值(griddat2020/1/2919a)及相关命令(surf,mesh,meshgrid,contour);4.Surfer绘图的步骤;5.了解Surfer中几种插值的意义;6.Origin和TableCurve拟合的步骤;7.Matlab基础知识,如数组及运算、调用,循环与控制语句,绘图相关命令,函数(m文件)的定义和调用等。二、插值2020/1/29211.插值问题例1在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18,24,28,27,25,20,18,15,13,推测中午1点温度,并做出24小时温度变化曲线图。2020/1/2922例2已知飞机下轮廓线上数据如下,画出飞机下轮廓线。X035791112131415Y01.21.72.02.12.01.81.21.01.6机翼下轮廓线xy2020/1/2923例3测得平板表面3*5网格点处的温度分别为:828180828479636165818484828586做出平板表面的温度分布曲面z=f(x,y)的图形及等温线,并求出温度最高和最低点。2020/1/2924上述问题可归结为“已知函数在某区间(域)内若干点处的值,求函数在该区间(域)内其它点处的值”,这种问题适宜用插值方法解决。一维插值问题可描述为:已知函数在x0,x1,…,xn处的值y0,y1,…,yn,求简单函数p(x),使p(xi)=yi。通常取p(x)为多项式。2020/1/2925可以用范德蒙行列式和克莱姆法则证明(习题集第一章最后一题):在x0,x1,…,xn处取值y0,y1,…,yn的多项式存在且唯一,即插值问题的解唯一存在。常用的插值方法有Lagrange插值法和Newton插值法。2020/1/29262.高次插值的Runge现象在研究插值问题的初期,所有人都想当然地认为插值多项式的次数越高,插值精度越高。Runge通过对一个例子的研究发现,上述结论仅仅在插值多项式的次数不超过七时成立;插值多项式的次数超过七时,插值多项式会出现严重2020/1/2927的振荡现象,称之为Runge现象。()fxx21125()px102020/1/2928因此,在实际中不应使用七次以上的插值。避免Runge现象的常用方法是:将插值区间分成若干小区间,在小区间内用低次(二次,三次)插值,即分段低次插值,如样条函数插值。2020/1/2929样条插值结果三、Matlab插值2020/1/2931Maple和Matlab都可以进行插值计算,Maple的一维插值计算较为便捷,而Matlab的二维插值功能较强,还能进行散乱点插值。本节主要介绍Matlab的一维和二维插值命令,大家务必要通过上机操作熟悉这些命令,同时还要初步掌握Matlab的基础知识与技能。2020/1/29321.一维插值一维插值命令是interp1,其基本格式为yi=interp1(x,y,xi,'method')。x,y为插值点,xi,yi为被插值点和插值结果,x,y和xi,yi通常为向量;'method'表示插值方法:'nearest'—最邻近插值,'linear'—线性插值,'spline'—三次样条插值,'cubic'—立2020/1/2933方插值,缺省为线性插值。例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/1/2934请理解掌握程序中的每个语句,并改变插值方法,观察图形变化。2020/1/2935例2Matlab程序functionplanex0=[035791112131415];y0=[01.21.72.02.12.01.81.21.01.6];x=0:0.1:15;y1=lagrange(x0,y0,x);y2=interp1(x0,y0,x);y3=interp1(x0,y0,x,'spline');subplot(3,1,1);2020/1/2936plot(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/1/2937grid;title('spline');functiony=lagrange(x0,y0,x)n=length(x0);m=length(x);fori=1:mz=x(i);s=0.0;fork=1:np=1.0;2020/1/2938forj=1:nifj~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end2020/1/29392020/1/2940例2的程序较复杂,说明如下:(1)程序依次用Lagrange、分段线性和三次样条三种插值方法进行了计算,其中Lagrange高次插值明显出现了Runge现象;(2)因为Matlab没有Lagrange高次插值功能,所以程序中单独编写了高次插值函数lagrange,然后调用;2020/1/2941(3)程序涉及到了数组、循环和条件语句、子函数的定义与调用以及一些绘图命令(subplot,grid,title)等。请大家通过上机理解、掌握上述命令,特别是函数的定义及调用。2020/1/29422.二维插值二维插值命令是interp2,基本格式为zi=interp2(x,y,z,xi,yi,'method')。二维插值命令的使用较复杂。x,y,z为插值点,z可以理解为被插值函数在(x,y)处的值;xi,yi为被插值点,zi为输出的插值结果,可理解为插值函数在(xi,yi)处的值;x,y为向2020/1/2943量,xi,yi为向量或矩阵,而z和zi则为矩阵。'method'表示插值方法:'nearest'—最邻近插值,'linear'—双线性插值,'spline'—双三次样条插值,'cubic'—双立方插值,黙认双线性插值。2020/1/2944例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/1/2945zi=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==min(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/1/2946上述程序较复杂,说明如下:(1)interp2中的xi为行向量,而yi'为列向量,其实xi和yi行列不同即可。(2)plot3(空间曲线),mesh(空间曲面),surf(空间曲面),contour(等高线)是三维作图中的常用命令。mesh和surf的区别是:mesh画的是曲面网格图,而surf画的是曲面表面图。2020/1/2947contour(x,y,z,n)的功能是作出由点(x,y,z)插值而成曲面的n条等高线。用meshc和surfc可在曲面下方画等高线。meshz和surfz是画垂帘图。(3)程序的最后部分为求最高(低)点,请各位通过上机揣摩min

1 / 114
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功