海军士官学校安徽蚌埠 233000
摘要:计算机在数学建模中发挥着不可或缺的作用,本文研究了计算机与数学建模的关系,接受培训学生的特点,计算机培训内容的设置及教学方法的选择与实施,为后续开展数学建模活动提供思考与借鉴。
关键词:数学建模 计算机 教学方法
计算机的应用渗透到数学建模每一个步骤,包括模型的假设、模型的建立、模型的求解、分析检验和应用等。数学建模的学习,对学生计算机能力的培养起着极大的推动作用。
一、计算机与数学建模的关系
数学建模是一项实践性比较强的活动,能够培养学生独立思考、想象、转换及构造等能力。数学建模问题的一个重要特点是数据量大,采取的算法比较复杂,许多问题的求解结果只是近似解。这些难度大、工作量大的数学问题必须借助计算机才能够解决。
2014年全国大学生数学建模竞赛D题“公共自行车服务系统的统计评价”,提供了浙江省温州市鹿城区20天借车和还车的原始数据及所给站点的地理位置信息,需要统计各个站点每日借车频次、还车频次,不同持卡人每日及累计的刷卡频次统计,借车高峰时段和还车高峰时段等。针对这样的大样本数据,显然人工是无法完成统计的,必须借助计算机技术才能完成,这道竞赛题可以用NPOI技术和折半查找算法。NPOI是POI项目的.NET版本,而POI是一个开源的Java读写Excel、Word等微软OLE2组件文档的项目,NPOI中的数据全部在内存中运行,运行速度快。折半查找又称二分查找,它充分利用了元素间的次序关系,采用分治策略完成搜索任务。这种查找算法比较次数少,查找速度快,平均性能好。
在数学建模过程中使用计算机对数据进行挖掘,能够发现事物之间的内在联系,有助于构造出最优模型。总之,计算机为数学建模竞赛活动提供了有力的工具,具备必备的计算机知识是培养学生数学建模创新能力的关键。
二、培训对象分析
学校每年组织学生参加大学生数学建模竞赛活动,学生参与的积极性比较高。经过严格的初赛和校级竞赛,最终参加省级、国家竞赛大约有30名学生。这部分学生数学基础知识扎实,喜欢和热爱数学建模,理解能力、逻辑思维能力及求知欲比较强,遇到难题,能够积极查找相关资料或者寻求老师的帮助解决。学生掌握了一些常用软件的操作,如Word文档的编辑、PowerPoint课件的制作,部分学生会一门高级编程语言,如VB、C#等。但是,他们不了解计算机算法,通用数学软件接触较少。
三、计算机课程的设置
根据数学建模竞赛的需要,我们将计算机知识分为三个模块:工具软件的使用,包括Word、PowerPoint;数学常用软件的使用,如MATLAB、Lingo、SPYSS;算法的设计和实现。
(一)工具软件的使用
数学建模中常用工具软件是Word、PowerPoint,这两个软件的基本操作,如文字、段落、页面格式的设置,图片、视频的插入,动画的设置等,大部分学生都已经掌握。这部分内容的设置主要考虑两点,一是论文的格式要符合规范,二是制作的课件要美观,能够有效的传递信息。因此,讲解工具软件的操作方法时,必须拓展相关教学内容。例如,论文中表格的使用,内容包括使用表格的原则,使用表格的时机,使用表格的基本要求如“三线表”的结构、表序和表题、数据、线条、表注、位置等,科技论文中使用表格应注意的问题。
(二)数学常用软件的使用
数学常用软件有MATLAB、Lingo、SPSS等。MATLAB语言编程简洁、计算和图形功能强大,适用范围广。所以软件培训以MATLAB为基础,开设MATLAB软件的独立课程,课程共四个章节:计算,绘图,数据拟合,程序设计。计算的主要内容是用MATLAB求微积分、解方程等。绘图的主要内容是根据所给函数或数据绘制平面或立体的图像。数据拟合的主要内容是根据离散数据拟合出完整的函数或曲线。程序设计则以具体案例的问题牵引,让学生快速熟悉循环语句for和判断语句if的使用方法。
另外两款软件主要用于解决特定的问题。Lingo是一套专门用于求解最优化问题的软件,用Lingo求解最优化问题编程难度低,执行速度快。SPSS则主要用于专业的数据统计,它不仅操作简单,而且交互界面直观。这两款软件会在培训线性规划问题和数据统计问题时一并学习,不开设独立课程。
(三)算法的设计和实现
在数学建模中应用比较广泛的算法有十种类型:1.随机性模拟算法蒙特卡罗;2.数据拟合、参数估计、插值等数据处理算法;3.线性规划、整数规划、多元规划、二次规划等规划类算法;4.图论算法,包括最短路、网络流、二分图等。5.动态规划、回溯搜索、分治算法、分支定界等计算机算法;6.最优化理论的三大非经典算法,模拟退火法、神经网络、遗传算法;7.网络算法和穷举法;8.一些连续离散化方法;9.数值分析算法;10.图像处理算法。
考虑到学生的学习能力以及历年国家大学生大专组数学建模竞赛内容,一些复杂的算法并没有涉及,如遗传算法、神经网络、动态规划、网络流等。这十大经典算法应用到具体的建模问题时,必须要加以改进。例如 “采用运输机的物资配载与运输”,要求将不同规格尺寸的集装箱摆放入容积一定的货舱之中,以获得最佳效益的三维装箱问题。在这个问题当中,无需考虑集装箱的重量和价值,要使货舱装载的所有集装箱的累计体积尽量大,解决这个问题可以采用贪心算法。贪心算法指的是在对问题求解时,总是做出当前看来是最好的选择,也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上局部最优解。本题采取的贪心策略是每次选取体积最大的集装箱,约束条件为不能超过货舱的长、宽、高及体积。编程后,运算结果并不理想。主要是因为不同型号的集装箱放在一起,存在体积“碎片”,因此必须将相同型号的集装箱进行捆绑,但是这样带来另外一个问题,捆绑后体积太大,无法利用货舱的细小空间。最终的解决方案为针对大于一定体积的集装箱进行捆绑,这样计算的结果比较理想。
四、教学方法的选择
数学建模课程实践性强,它不是培养学生的数学理论知识,而是培养学生利用数学和计算机解决实际问题的能力,这类课程采取案例教学法较好。案例教学法中选取的案例必须具有一定的代表性和普遍性,学生通过案例的学习能够举一反三,触类旁通,解决类似的问题。案例的选取既可以通过搜集资料,借鉴别人的成果,也可以对历年的竞赛试题进行提炼总结。经过多次教学实践后,形成案例教材。
每次上课前,将案例下发给学生,要求学生以小组为单位,查阅相关资料,积极思考、讨论交流,探讨解决问题的方法。学习小组一般以三人最佳,小组成员最好优势互补,要数学基础较好、编程及计算机的使用比较熟练、写作表达能力强。
在课堂上,每小组派一个代表发言,阐述对案例的理解,解题思路以及存在的疑惑。老师对案例进行分析,解答学生的问题。例如,在讲解“最短路径”算法时,老师对照图形,讲解算法的设计思路,算法的可行性和可靠性。课后要求学生使用一门编程语言来实现算法,进一步巩固所学习的知识。最后,老师归纳总结出历年类似的竞赛试题及计算方法的改进。
五、小结讲评
在数学建模活动中开展计算机技能的培训,提高了学生分析解决问题的能力,学生在国家大学生数学建模竞赛中多次荣获一、二等奖。在今后教学实践中,将逐步丰富计算机培训内容,采取形式多样的教学手段,进一步提升教学效果。
参考文献:
[1]覃启伦.以数学建模为例浅谈计算机的应用.信息与电脑理论版,2015年第4期
[2]司守奎 孙玺菁.数学建模算法与应用.国防工业出版社,2015.03
[3]马司远.数学建模中计算机技术的应用研究.计算机光盘软件与应用,2014年第17期
[4]常春.张舒.计算机模拟在数学建模中的应用.数学学习与研究教研版,2015年第17期
[5]江能兴等.以数学建模为平台提高大学生计算机应用能力.电脑与信息技术,2013年第3期