第1讲插值与拟合

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

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

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

资源描述

2015数学建模培训引言2020/2/293参加数学建模竞赛的主要目的自然是获得好成绩。影响建模竞赛成绩的因素众多,本人将其总结为如下四个方面:知识,技能,经验,运气。1.知识开展大学生数学建模竞赛的初衷是培养、提高大学生运用数学知识和2020/2/294计算机技术解决实际问题的能力。这里所说的“知识”就是指参加数学建模竞赛所需的应用数学知识和方法。试想,如果连基本的数学建模方法都不熟悉,那参加数学建模竞赛只能完全靠“忽悠”。对于这一点,经历过数学建模网络挑战赛的学生应该深有体会。2020/2/295在十五天的暑期培训中,主要介绍各类数学建模基本方法,即主要解决“知识”问题。2.技能即使掌握了数学建模基本方法也不足以保证能在竞赛中取得好成绩,数学建模竞赛还对参赛者提出了很高的技能要求。2020/2/296这里所说的“技能”主要包括编程能力,使用相关应用软件(主要是数学软件)的能力,论文的写作和编辑能力,网上资料搜集能力等。本人认为,从数学建模竞赛的发展趋势看,“技能”越来越比“知识”重要,理由如下:(1)近年来的数学建模竞赛题目(2020/2/297特别是研究生建模题目)的关键点和难点往往在于编程。比如,2014年B题“创意折叠桌”问题并不需要什么经典的数学建模方法,只要能编程计算出合理的结果就能获得好成绩;2010A题“储油罐的标定”和2012B题“太阳能小屋的设计”也属此类问题。(2)“知识”的培训和掌握相对来2020/2/298说并不太难,而“技能”的提升则需要一个过程,还需要一点天赋,短期培训很难取得明显效果。在培训中,会适当介绍一些数学软件使用、编程和写作,希望对提高大家的技能有所帮助。3.经验经验对于做任何事情都是非常重2020/2/299要的。这里所说的“经验”主要表现在下列方面:(1)如何选择题目?(2)如何搜集相关资料、数据?(3)如何进行成员分工,如何把握“做”与“写”的进度?(4)如何对某些疑难问题进行“忽2020/2/2910悠”,忽悠到什么程度?(5)论文写作时如何扬长避短?(6)如何准备复评?经验靠积累。让基本不掌握数学建模方法的学生直接参加网络挑战赛的作法看似荒唐,但参赛学生至少从头到尾经历了一次完整的竞赛,积累了宝贵的经验,是有意义的。2020/2/29114.运气做事不能只靠运气。但不可否认,运气偶尔确能左右事情的结局。在数学建模竞赛中,运气的好坏也可能影响竞赛成绩。比如,能否遇见踏实能干的队友、认真负责的指导老师、心态正常的评委等。2020/2/2912最后,送给各位本人总结的四句名言:知识靠学;技能靠练;经验靠赛;运气靠碰。培训内容与方式2020/2/2914培训内容1.插值与拟合;2.灰色关联分析与灰色预测;3.层次分析法;4.模糊综合评价;5.均值比较与方差分析;6.相关分析与回归分析;7.时间序列分析(一);2020/2/29158.时间序列分析(二);9.综合预测实例;10.主成分分析与因子分析;11.聚类分析与判别分析;12.综合评价实例;13.数学建模论文的写作与编辑;14.图论模型及其Matlab程序;15.数学规划与Lingo。2020/2/2916培训内容覆盖了数学建模中大部分常用的数学方法。通过刻苦钻研,努力学习,掌握了上述方法后,必将大大提高应用数学知识和计算机解决实际问题的综合能力,也一定会在全国建模大赛中取得较好成绩。2020/2/2917培训方式由于培训内容众多且有相当难度,而培训时间又较短,所以如果学生不事先认真预习相关内容,那么在课堂上不可能完全听懂老师所讲内容,大部分学生会云山雾罩,一头雾水,从而使得培训效果大打折扣。综上,强烈建议学生课前认真、2020/2/2918反复研读授课PPT和其它相关资料,然后带着疑问和兴趣再听老师讲解,这样才能保证培训效果。培训PPT及软件、程序下载邮箱:austmathmodeling@163.comMM:matlabmaple培训以讲解为主,学生如有疑问,可在下午上机辅导时向老师咨询。上机操作与练习2020/2/2920众所周知,在建模竞赛中,能否熟练使用相关数学软件是能否取得好成绩的关键之一。因此,数学软件的培训应该是建模培训的重要内容。建模中常用的数学软件有Matlab,SPSS,Lingo,Maple等。由于培训时间有限,在课堂上只能重点介绍SPSS,而Matlab等只能在2020/2/2921上机过程中穿插介绍。几乎所有的数学方法最终都要用数学软件和程序实现,所以上机练习也是比较重要的培训内容。上机训练的主要目的和内容是通过练习,掌握实现各类数学方法的数学软件和程序。上机所用数学软件和程序主要由2020/2/2922教师提供,学生只要会用即可。但需要提醒同学们注意的是,现成的软件和程序不可能解决建模中的所有问题。通过上机训练,掌握一些基本编程和计算技能(如用Matlab做数据处理、画图,用Maple做简单的解析计算),对于参加建模竞赛是绝对必要的。2020/2/2923上机前,培训老师会布置上机练习,提供相关软件或程序,讲解关键步骤和程序语句。上机过程中,辅导老师负责解答学生的疑难问题。题外话特别要提醒大家的是,国赛完全不同于网络挑战赛,题目的难度和开放性适中,有答题要点、参考方法,2020/2/2924甚至有参考答案;初评评委大部分由指导教师担任,评阅结果通常比较合理、靠谱。那种连基本建模方法都不懂竟然也能获大奖的现象在国赛中几乎是不可能发生的,全国一等奖的论文必须模型、方法合理,结果基本可信、正确,写作清晰、规范。一句话,建模不能全靠忽悠。第1讲插值与拟合一、引言2020/2/2927插值与拟合是数学建模中的一种基本的数据分析手段,被公认为建模中的常用算法之一。在2011A“城市土壤污染分析”、2013A“车道被占对道路通行能力的影响”、2014A“嫦娥三号软着陆轨道设计与控制策略”中均用到插值或拟合。2020/2/2928本讲第一部分首先介绍了插值问题、插值原理、高次插值的Runge现象,然后讲解了Matlab中的一维和二维插值命令。第二部分首先介绍了拟合问题、拟合原理与步骤,然后介绍了Matlab和Origin的拟合计算。本讲首先要理解插值问题和拟合2020/2/2929问题的特点,其次要了解插值和拟合的原理与方法,特别要熟练掌握利用Matlab和Origin等软件进行插值和拟合的相关命令和技能,此外还要掌握Matlab编程的基本知识与技能。二、插值2020/2/29311.插值问题例1在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,10,18,24,28,27,25,20,18,15,13,推测中午1点温度,并做出24小时温度变化曲线图。2020/2/2932例2已知飞机下轮廓线上数据如下,画出飞机下轮廓线。X035791112131415Y01.21.72.02.12.01.81.21.01.6机翼下轮廓线xy2020/2/2933例3测得平板表面3*5网格点处的温度分别为:828180828479636165818484828586做出平板表面的温度分布曲面z=f(x,y)的图形及等温线,并求出温度最高和最低点。2020/2/2934上述问题可归结为“已知函数在某区间(域)内若干点处的值,求函数在该区间(域)内其它点处的值”,这种问题适宜用插值方法解决。一维插值问题可描述为:已知函数在x0,x1,…,xn处的值y0,y1,…,yn,求简单函数p(x),使p(xi)=yi。p(xi)=yi称为插值条件。2020/2/2935通常取p(x)为多项式。可以用范德蒙行列式和克莱姆法则证明(习题集第一章最后一题):在x0,x1,…,xn处取值y0,y1,…,yn的多项式存在且唯一,即插值问题的解唯一存在。常用的插值方法有Lagrange插值法和Newton插值法。2020/2/29362.高次插值的Runge现象在研究插值问题的初期,所有人都想当然地认为插值多项式的次数越高,插值精度越高。Runge通过对一个例子的研究发现,上述结论仅仅在插值多项式的次数不超过七时成立;插值多项式的次数超过七时,插值多项式会出现严重2020/2/2937的振荡现象,称之为Runge现象。()fxx21125()px102020/2/2938因此,在实际中不应使用七次以上的插值。避免Runge现象的常用方法是:将插值区间分成若干小区间,在小区间内用低次(二次,三次)插值,即分段低次插值,如样条函数插值。2020/2/2939样条插值结果三、Matlab插值2020/2/2941Maple和Matlab都可以进行插值计算,Maple的一维插值计算较为便捷,而Matlab的二维插值功能较强,还能进行散乱点插值。本节主要介绍Matlab的一维和二维插值命令,大家务必要通过上机操作熟悉这些命令,同时还要初步掌握Matlab的基础知识与技能。2020/2/29421.一维插值一维插值命令是interp1,其基本格式为yi=interp1(x,y,xi,'method')。x,y为插值点,xi,yi为被插值点和插值结果,x,y和xi,yi通常为向量;'method'表示插值方法:'nearest'—最邻近插值,'linear'—线性插值,'spline'—三次样条插值,'cubic'—立2020/2/2943方插值,缺省为线性插值。例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/2/2944请理解掌握程序中的每个语句,并改变插值方法,观察图形变化。2020/2/2945例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/2/2946plot(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/2/2947grid;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/2/2948forj=1:nifj~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end2020/2/29492020/2/2950例2的程序较复杂,说明如下:(1)程序依次用Lagrange、分段线性和三次样条三种插值方法进行了计算,其中Lagrange高次插值明显出现了Runge现象;(2)因为Matlab没有Lagrange高次插值功能,所以程序中单独编写了高次插值函数lagrange,然后调用;2020/2/2951(3)程序涉及到了数组、循环和条件语句、子函数的定义与调用以及一些绘图命令(subplot,grid,title)等。请大家通过上机理解、掌握上述命令,特别是函数的定义及调用。Matlab中提供了专门用于样条函数插值及相关计算的工具箱SplineToolbox,有兴趣的同学可以查阅。2020/2/29522.二维插值二维插值命令是interp2,基本格式为

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

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

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

×
保存成功