1、1/1/202311/1/20232培训内容培训内容1.插值与拟合;插值与拟合;2.灰色系统;灰色系统;3.层次分析法;层次分析法;(重要重要)4.模糊数学方法;模糊数学方法;(重要重要)5.多元统计分析与多元统计分析与Spss;(重要重要)6.数学规划与数学规划与Lingo;(重要重要)7.图论模型及其图论模型及其Matlab程序;程序;1/1/202338.建模论文写作;建模论文写作;9.建模案例讲评。建模案例讲评。培训内容覆盖了数学建模中大部培训内容覆盖了数学建模中大部分常用的数学方法。通过刻苦钻研,分常用的数学方法。通过刻苦钻研,努力学习,掌握了上述方法后,必将努力学习,掌握了上述方法
2、后,必将大大提高建立数学模型和运用计算机大大提高建立数学模型和运用计算机解决实际问题的综合能力,也一定会解决实际问题的综合能力,也一定会在全国建模大赛中取得较好成绩。在全国建模大赛中取得较好成绩。1/1/20234培训方式培训方式 由于培训内容众多且有相当难度由于培训内容众多且有相当难度,而培训时间又较短,所以如果学生不而培训时间又较短,所以如果学生不事先认真预习相关内容,那么在课堂事先认真预习相关内容,那么在课堂上不可能完全听懂老师所讲内容,大上不可能完全听懂老师所讲内容,大部分学生会云山雾罩,一头雾水,从部分学生会云山雾罩,一头雾水,从而使得培训效果大打折扣。而使得培训效果大打折扣。综上,
3、强烈建议学生课前认真、综上,强烈建议学生课前认真、1/1/20235反复研读授课反复研读授课PPT和其它相关资料,和其它相关资料,然后带着疑问和兴趣再听老师讲解,然后带着疑问和兴趣再听老师讲解,这样才能保证培训效果。这样才能保证培训效果。培训培训PPT及软件、程序下载邮箱及软件、程序下载邮箱: MM:matlabmaple 培训以讲解为主,学生如有疑问培训以讲解为主,学生如有疑问,可在下午上机辅导时向老师咨询。可在下午上机辅导时向老师咨询。1/1/202361/1/20237 众所周知,在建模竞赛中,能否众所周知,在建模竞赛中,能否熟练使用相关数学软件是能否取得好熟练使用相关数学软件是能否取得
4、好成绩的关键之一。因此,数学软件的成绩的关键之一。因此,数学软件的培训应该是建模培训的重要内容。培训应该是建模培训的重要内容。建模中常用的数学软件有建模中常用的数学软件有Matlab,Spss,Lingo,Maple等。等。由于培训时间有限,在课堂上只由于培训时间有限,在课堂上只能简单介绍能简单介绍Spss和和Lingo,而,而Matlab和和1/1/20238Maple只能在上机过程中穿插介绍。只能在上机过程中穿插介绍。几乎所有的数学方法最终都要用几乎所有的数学方法最终都要用数学软件和程序实现,所以上机练习数学软件和程序实现,所以上机练习是与课堂讲授同等重要的培训内容。是与课堂讲授同等重要的
5、培训内容。上机训练的主要目的和内容是通上机训练的主要目的和内容是通过练习,掌握实现各类数学方法的数过练习,掌握实现各类数学方法的数学软件和程序。学软件和程序。上机所用数学软件和程序主要由上机所用数学软件和程序主要由1/1/20239教师提供,学生只要会用即可。教师提供,学生只要会用即可。但需要提醒同学们注意的是,现但需要提醒同学们注意的是,现成的软件和程序不可能解决建模中的成的软件和程序不可能解决建模中的所有问题。通过上机训练,掌握一些所有问题。通过上机训练,掌握一些基本编程和计算技能基本编程和计算技能(如用如用Matlab做做数据处理、画图数据处理、画图,用用Maple做简单的做简单的解析计
6、算解析计算),对于参加建模竞赛是绝,对于参加建模竞赛是绝对必要的。对必要的。1/1/202310 上机前,培训老师会布置上机练上机前,培训老师会布置上机练习,提供相关软件或程序,讲解关键习,提供相关软件或程序,讲解关键步骤和程序语句。上机过程中,辅导步骤和程序语句。上机过程中,辅导老师负责解答学生的疑难问题。老师负责解答学生的疑难问题。题外话题外话 特别要提醒大家的是,国赛完全特别要提醒大家的是,国赛完全不同于网络挑战赛,题目的难度和开不同于网络挑战赛,题目的难度和开放性适中,有答题要点、参考方法,放性适中,有答题要点、参考方法,1/1/202311甚至有参考答案;初评评委大部分由甚至有参考答
7、案;初评评委大部分由指导教师担任,评阅结果通常比较合指导教师担任,评阅结果通常比较合理、靠谱。那种连基本建模方法都不理、靠谱。那种连基本建模方法都不懂竟然也能获大奖的现象在国赛中几懂竟然也能获大奖的现象在国赛中几乎是不可能发生的,全国一等奖的论乎是不可能发生的,全国一等奖的论文必须模型、方法合理,结果基本可文必须模型、方法合理,结果基本可信、正确,写作清晰、规范。信、正确,写作清晰、规范。一句话,建模不能全靠忽悠。一句话,建模不能全靠忽悠。1/1/2023121/1/2023131/1/202314 插值与拟合属数值分析中函数逼插值与拟合属数值分析中函数逼近内容。在数学建模竞赛中,插值与近内容
8、。在数学建模竞赛中,插值与拟合是一种基本的数据分析手段,被拟合是一种基本的数据分析手段,被公认为建模中的常用算法之一。公认为建模中的常用算法之一。本讲第一部分首先介绍了插值问本讲第一部分首先介绍了插值问题、插值原理、高次插值的题、插值原理、高次插值的Runge现现象,然后讲解了象,然后讲解了Matlab中的一维和中的一维和二维插值命令,最后简要介绍了具有二维插值命令,最后简要介绍了具有1/1/202315强大插值功能的三维图形强大插值功能的三维图形(曲面图,曲面图,等高线等等高线等)绘制软件绘制软件Surfer。第二部分首先介绍了拟合问题、第二部分首先介绍了拟合问题、拟合原理与步骤,然后介绍了
9、拟合原理与步骤,然后介绍了Origin中的拟合功能及专业拟合软件中的拟合功能及专业拟合软件TableCurve 2D,3D。第三部分给出了一个应用插值和第三部分给出了一个应用插值和拟合的建模实例。拟合的建模实例。1/1/202316 本讲首先要理解插值问题和拟合本讲首先要理解插值问题和拟合问题的特点,其次要了解插值和拟合问题的特点,其次要了解插值和拟合的原理与方法,还要熟悉的原理与方法,还要熟悉Matlab插插值与绘图的相关命令,掌握值与绘图的相关命令,掌握Matlab编程的基本知识与技能,特别要熟练编程的基本知识与技能,特别要熟练掌握利用掌握利用Surfer,Origin,TableCurv
10、e等软件进行插值和拟合的技能。等软件进行插值和拟合的技能。下面给出本讲学习大纲,以方便下面给出本讲学习大纲,以方便1/1/202317大家学习。大家学习。1.插值问题和拟合问题的特点及插值问题和拟合问题的特点及区别;在实际中如何正确地判断、选区别;在实际中如何正确地判断、选择插值或拟合方法?择插值或拟合方法?2.高次插值的高次插值的Runge现象及避免现象及避免方法;方法;3.Matlab一维插值一维插值(interp1),二二维插值维插值(interp2),散乱点插值散乱点插值(griddat1/1/202318a)及相关命令及相关命令(surf,mesh,meshgrid,contour)
11、;4.Surfer绘图的步骤;绘图的步骤;5.了解了解Surfer中几种插值的意义;中几种插值的意义;6.Origin和和TableCurve拟合的步骤;拟合的步骤;7.Matlab基础知识基础知识,如数组及运算、如数组及运算、调用,循环与控制语句,绘图相关命调用,循环与控制语句,绘图相关命令,函数令,函数(m文件文件)的定义和调用等。的定义和调用等。1/1/2023191/1/2023201.插值问题插值问题 例例1 在一天在一天24小时内,从零点开小时内,从零点开始每间隔始每间隔2小时测得的环境温度数据小时测得的环境温度数据分别为分别为 12,9,9,10,18,24,28,27,25,2
12、0,18,15,13,推测中午推测中午1点温度,并做出点温度,并做出24小时温小时温度变化曲线图。度变化曲线图。1/1/202321 例例2 已知飞机下轮廓线上数据如已知飞机下轮廓线上数据如下,画出飞机下轮廓线。下,画出飞机下轮廓线。机翼下机翼下轮廓线轮廓线xy1/1/202322 例例3 测得平板表面测得平板表面3*5网格点处的网格点处的温度分别为:温度分别为:82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 做出平板表面的温度分布曲面做出平板表面的温度分布曲面z=f(x,y)的图形及等温线,并求出温度最高和的图形及等温线,并求出温度最高和最低点。最低
13、点。1/1/202323 上述问题可归结为上述问题可归结为“已知函数在已知函数在某区间某区间(域域)内若干点处的值内若干点处的值,求函数求函数在在该区间该区间(域域)内其它点处的内其它点处的值值”,这种,这种问题适宜用插值方法解决。问题适宜用插值方法解决。一维插值问题可描述为:已知函一维插值问题可描述为:已知函数在数在x0,x1,xn处的值处的值y0,y1,yn,求简单函数求简单函数 p(x),使,使 p(xi)=yi。通常取通常取 p(x)为多项式。为多项式。1/1/202324 可以用范德蒙行列式和克莱姆法可以用范德蒙行列式和克莱姆法则证明则证明(习题集第一章最后一题习题集第一章最后一题)
14、:在在x0,x1,xn处取值处取值y0,y1,yn的多项式存在且唯一,即插值问题的的多项式存在且唯一,即插值问题的解唯一存在。解唯一存在。常用的插值方法有常用的插值方法有Lagrange插插值法和值法和Newton插值法。插值法。1/1/2023252.高次插值的高次插值的Runge现象现象 在研究插值问题的初期,所有人在研究插值问题的初期,所有人都想当然地认为插值多项式的次数越都想当然地认为插值多项式的次数越高,插值精度越高。高,插值精度越高。Runge 通过对一个例子的研究发通过对一个例子的研究发现,上述结论仅仅在插值多项式的次现,上述结论仅仅在插值多项式的次数不超过七时成立;插值多项式的
15、次数不超过七时成立;插值多项式的次数超过七时,插值多项式会出现严重数超过七时,插值多项式会出现严重1/1/202326的振荡现象,称之为的振荡现象,称之为Runge现象现象。()f xx21125()px101/1/202327 因此,在实际中不应使用七次以因此,在实际中不应使用七次以上的插值。上的插值。避免避免Runge现象的常用方法是:现象的常用方法是:将插值区间分成若干小区间,在小区将插值区间分成若干小区间,在小区间内用低次间内用低次(二次,三次二次,三次)插值,即分插值,即分段低次插值,如段低次插值,如样条函数插值样条函数插值。1/1/202328样条插值结果样条插值结果1/1/202
16、3291/1/202330 Maple和和Matlab都可以进行插值都可以进行插值计算,计算,Maple的一维插值计算较为便的一维插值计算较为便捷,而捷,而Matlab的二维插值功能较强的二维插值功能较强,还能进行散乱点插值。还能进行散乱点插值。本节主要介绍本节主要介绍Matlab的一维和的一维和二维插值命令,大家务必要通过上机二维插值命令,大家务必要通过上机操作熟悉这些命令,同时还要初步掌操作熟悉这些命令,同时还要初步掌握握Matlab的基础知识与技能。的基础知识与技能。1/1/2023311.一维插值一维插值 一维插值命令是一维插值命令是interp1,其基本其基本格式为格式为yi=int
17、erp1(x,y,xi,method)。x,y为插值点,为插值点,xi,yi为被插值点为被插值点和插值结果,和插值结果,x,y和和xi,yi通常为向量;通常为向量;method表示插值方法:表示插值方法:nearest最邻近插值,最邻近插值,linear线性插值,线性插值,spline三次样条插值,三次样条插值,cubic立立1/1/202332方插值,缺省为线性插值。方插值,缺省为线性插值。例例1Matlab程序程序 x=0:2:24;y=12 9 9 10 18 24 28 27 25 20 18 15 13;x1=13;y1=interp1(x,y,x1,spline)xi=0:1/36
18、00:24;yi=interp1(x,y,xi,spline);plot(x,y,*,xi,yi)1/1/202333 请理解掌握程序中的每个语句,请理解掌握程序中的每个语句,并改变插值方法,观察图形变化。并改变插值方法,观察图形变化。1/1/202334例例2Matlab程序程序function planex0=0 3 5 7 9 11 12 13 14 15;y0=0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6;x=0:0.1:15;y1=lagrange(x0,y0,x);y2=interp1(x0,y0,x);y3=interp1(x0,y0,x,splin
19、e);subplot(3,1,1);1/1/202335plot(x0,y0,k+,x,y1,r);grid;title(lagrange);subplot(3,1,2);plot(x0,y0,k+,x,y2,r);grid;title(piecewise linear);subplot(3,1,3);plot(x0,y0,k+,x,y3,r);1/1/202336grid;title(spline);function y=lagrange(x0,y0,x)n=length(x0);m=length(x);for i=1:m z=x(i);s=0.0;for k=1:n p=1.0;1/1/2
20、02337 for j=1:n if j=k p=p*(z-x0(j)/(x0(k)-x0(j);end end s=p*y0(k)+s;end y(i)=s;end1/1/2023381/1/202339 例例2的程序较复杂,说明如下的程序较复杂,说明如下:(1)程序依次用程序依次用Lagrange、分段、分段线性和三次样条三种插值方法进行了线性和三次样条三种插值方法进行了计算,其中计算,其中Lagrange高次插值明显高次插值明显出现了出现了Runge现象;现象;(2)因为因为Matlab没有没有Lagrange高高次插值功能,所以程序中单独编写了次插值功能,所以程序中单独编写了高次插值函
21、数高次插值函数lagrange,然后调用;,然后调用;1/1/202340 (3)程序涉及到了数组、循环和程序涉及到了数组、循环和条件语句、子函数的定义与调用以及条件语句、子函数的定义与调用以及一些绘图命令一些绘图命令(subplot,grid,title)等。等。请大家通过上机理解、掌握上述请大家通过上机理解、掌握上述命令,特别是函数的定义及调用。命令,特别是函数的定义及调用。1/1/2023412.二维插值二维插值 二维插值命令是二维插值命令是interp2,基本格基本格式为式为zi=interp2(x,y,z,xi,yi,method)。二维插值命令的使用较复杂。二维插值命令的使用较复杂
22、。x,y,z为插值点,为插值点,z可以理解为被可以理解为被插值函数在插值函数在(x,y)处的值;处的值;xi,yi为被插为被插值点值点,zi为输出的插值结果,可理解为输出的插值结果,可理解为插值函数在为插值函数在(xi,yi)处的值;处的值;x,y为向为向1/1/202342量,量,xi,yi为为向量或矩阵向量或矩阵,而,而z和和zi则为则为矩阵矩阵。method表示插值方法:表示插值方法:neares t最邻近插值最邻近插值,linear双线性插双线性插值值,spline双三次样条插值,双三次样条插值,cubi c双立方插值,黙认双线性插值。双立方插值,黙认双线性插值。1/1/202343例
23、例3Matlab程序程序x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;figure(1);mesh(x,y,temps);xi=1:0.2:5;yi=1:0.2:3;1/1/202344zi=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)
24、;x=xi(j),y=yi(i),zmax=zi(i,j)1/1/202345 上述程序较复杂,说明如下:上述程序较复杂,说明如下:(1)interp2中的中的xi为行向量为行向量,而而yi为为列向量列向量,其实其实xi和和yi行列不同即可。行列不同即可。(2)plot3(空间曲线空间曲线),mesh(空间曲空间曲面面),surf(空间曲面空间曲面),contour(等高线等高线)是三维作图中的常用命令。是三维作图中的常用命令。mesh和和surf的区别是:的区别是:mesh画的是曲面网格画的是曲面网格图,而图,而surf画的是曲面表面图。画的是曲面表面图。1/1/202346 contour
25、(x,y,z,n)的功能是作出由的功能是作出由点点(x,y,z)插值而成曲面的插值而成曲面的n条等高线。条等高线。用用meshc和和surfc可在曲面下方画可在曲面下方画等高线。等高线。meshz和和surfz是画垂帘图。是画垂帘图。(3)程序的最后部分为求最高程序的最后部分为求最高(低低)点,请各位通过上机揣摩点,请各位通过上机揣摩min,max特特别是别是find的功能。的功能。(4)将程序中将程序中 figure 语句去除,通语句去除,通1/1/202347过观察结果,体味过观察结果,体味figure的作用。的作用。例例4 在某山区测得一些地点的高在某山区测得一些地点的高程如下表。平面区
26、域为程如下表。平面区域为 0 x5600,0y12时的数据出现了巨大误差。时的数据出现了巨大误差。样条插值的第一个图表明样条插样条插值的第一个图表明样条插值可以很好地解决第一个问题,但第值可以很好地解决第一个问题,但第二个图显示,用样条插值外推二个图显示,用样条插值外推t12时时的数据也会产生较大误差。的数据也会产生较大误差。综上,第二问不宜用插值方法。综上,第二问不宜用插值方法。1/1/202395例例6多项式多项式(9次次)拟合图形拟合图形R=0.944280246810125101520253035BA1/1/202396例例7Origin拟合结果拟合结果Equation y=A1*ex
27、p(-x/t1)+A2*exp(-x/t2)+y0Adj.R-Square0.99864Value Standard ErrorBy011.324160.71521BA1-2.766120.23031Bt111.239718.0397BA2-9.351890.51014Bt21.511270.167651/1/202397例例7Origin拟合图形拟合图形02468101214161834567891011BA1/1/2023983.TableCurve简介简介 TableCurve2D,3D是美国是美国SPSS公公司开发的曲线和曲线拟合软件。司开发的曲线和曲线拟合软件。TableCurve最
28、独特的功能是能最独特的功能是能自动找出与数据最匹配的曲线自动找出与数据最匹配的曲线(面面)。TableCurve2D可以从可以从3600多个多个方程中找出与数据最匹配的曲线。方程中找出与数据最匹配的曲线。TableCurve3D可以从可以从4亿多个方亿多个方1/1/202399程中找出与数据最匹配的曲面。程中找出与数据最匹配的曲面。与与Origin一样,一样,TableCurve也可也可以自创曲线和曲面方程以自创曲线和曲面方程。TableCurve使用简单使用简单,只需经过只需经过读入数据读入数据(通常为通常为Excel文件文件),选取数,选取数据列,即可拟合出所有曲线或曲面。据列,即可拟合出
29、所有曲线或曲面。这里要提醒各位的是,有些拟合这里要提醒各位的是,有些拟合方程虽然效果很好,但方程过于复杂方程虽然效果很好,但方程过于复杂,1/1/2023100不便于进一步分析与处理,因此需要不便于进一步分析与处理,因此需要综合考虑,选取合适的拟合方程。综合考虑,选取合适的拟合方程。下面给出例下面给出例6的的TableCurve2D拟拟合结果以及合结果以及2013网络挑战赛网络挑战赛A题数据题数据的的TableCurve3D拟合结果。拟合结果。1/1/2023101例例6 TableCurve2D拟合结果拟合结果Rank 23 Eqn 6844 Fourier Series Polynomia
30、l 4x2r2=0.98719601 DF Adj r2=0.92957805 FitStdErr=1.9897936 Fstat=28.912742a=-99.767088 b=-2.2816867 c=208.8891 d=123.44751 e=-8.4363424 f=-7.1488173 g=-54.74898 h=-9.2145414 i=1.7454379 02.557.51012.5时间05101520253035温度05101520253035温度1/1/20231022013A TableCurve3D拟合结果拟合结果1/1/2023103水塔流量的估计水塔流量的估计1/1
31、/2023104 某社区自来水由一个高某社区自来水由一个高12.2米米,直径直径17.4米圆柱形水塔提供。当水位米圆柱形水塔提供。当水位降至降至8.2米时米时,水泵自动启动加水;水水泵自动启动加水;水位升高到位升高到10.8 米时,水泵停止工作;米时,水泵停止工作;一般水泵每天工作两次。下表给出了一般水泵每天工作两次。下表给出了某天不同时间水位数据,其中有三次某天不同时间水位数据,其中有三次观察时水泵正在供水,无水位记录。观察时水泵正在供水,无水位记录。试建立适当的数学模型,计算任试建立适当的数学模型,计算任1/1/2023105意时刻的水流速度,估计一天的用水意时刻的水流速度,估计一天的用水
32、量和水泵的工作功率。量和水泵的工作功率。时刻时刻(h)水位水位(cm)0 0.92 1.84 2.95 3.87 4.98 5.90 7.01 7.93 8.97968 948 931 913 898 881 869 852 839 822时刻时刻(h)水位水位(cm)9.98 10.92 10.95 12.03 12.95 13.88 14.98 15.90 16.83 17.93 /1082 1050 1021 994 965 941 918 892时刻时刻(h)水位水位(cm)19.04 19.96 20.84 22.01 22.96 23.88 24.99 25.91 866 843
33、822 /10.82 1059 1035 10181/1/20231061.问题分析问题分析 题目中给出是水位与时间的关系题目中给出是水位与时间的关系,而问题的关键是水流速度。由于水塔而问题的关键是水流速度。由于水塔为圆柱形,水流速度即为水位与时间为圆柱形,水流速度即为水位与时间的函数的导数,所以可采用如下思路的函数的导数,所以可采用如下思路获取水流速度:获取水流速度:根据给出的水位与时间的对应数根据给出的水位与时间的对应数据,计算出每个小区间内水流的平均据,计算出每个小区间内水流的平均1/1/2023107速度,将此速度近似为该小区间中点速度,将此速度近似为该小区间中点的瞬时水流速度,从而得
34、到水流速度的瞬时水流速度,从而得到水流速度在各小区间中点的近似值。在各小区间中点的近似值。对水流速度在各小区间中点的近对水流速度在各小区间中点的近似值进行拟合或插值,即可得出水流似值进行拟合或插值,即可得出水流速度与时间的近似关系式。最后对此速度与时间的近似关系式。最后对此式积分即得每天的总用水量。式积分即得每天的总用水量。至于水泵的功率,可用上述计算至于水泵的功率,可用上述计算1/1/2023108结果根据机械原理获得。结果根据机械原理获得。2.具体计算方法与结果具体计算方法与结果 可用多项式拟合、样条插值、分可用多项式拟合、样条插值、分段样条插值求取水流速度。拟合时最段样条插值求取水流速度
35、。拟合时最好根据数据选择适当的多项式次数。好根据数据选择适当的多项式次数。对于不同方法的计算结果,可根对于不同方法的计算结果,可根据题给数据进行检验。据题给数据进行检验。计算结果如下:计算结果如下:1/1/2023109多项式拟合结果多项式拟合结果用水总量用水总量1261,水泵功率,水泵功率1.47。1/1/2023110样条插值结果样条插值结果用水总量用水总量1259,水泵功率,水泵功率1.48。1/1/20231113、分段样条插值、分段样条插值 用水总量1261,水泵功率1.48。分段样条插值结果分段样条插值结果用水总量用水总量1261,水泵功率,水泵功率1.48。1/1/2023112上机练习上机练习 1.根据学习大纲,认真学习、研根据学习大纲,认真学习、研读本读本PPT。2.用用Matlab验证例验证例1例例6(1)。3.用用Origin和和TableCurve2D对对例例6(2)和例和例7数据进行曲线拟合。数据进行曲线拟合。4.用用Origin和和TableCurve3D对对挑战赛挑战赛A题相关数据进行曲面拟合。题相关数据进行曲面拟合。1/1/2023113 有兴趣和实力的同学还可以尝试有兴趣和实力的同学还可以尝试完成完成MCM1991A。1/1/2023114