数学与计算机技术相结合,已经形成了一种普遍且可以实现的关键技术。数学的重要性已经得到业内广泛的认同,但是数学要走向应用,真正显示其在各个领域、各种层次应用中的关键性、决定性的作用,以及强大的生命力,就必须设法在实际问题和数学之间架设一座桥梁。首先要将实际问题化为一个相应的数学问题,然后进行相应的分析和计算,最后把所求得的结果和解答回归实际,看能不能有效地回到原先的实际问题,这个过程中的第一步就称为数学建模,即为所考察的实际问题构建数学模型。正是数学建模的这种桥梁作用,为应用数学知识解决实际问题提供了可能。所以说,数学建模非常重要,它能真正让数学学以致用。
正因数学建模具有如此重要的地位和作用,使得数学建模竞赛、数学建模课程等数学建模活动蓬勃开展。将数学建模的思想和方法融入数学类主干课程的教学改革,提倡问题驱动的应用数学研究等数学改革和教学实践,得到了社会各界和广大师生的广泛认可和大力支持。
数学建模所涵盖的知识面非常广,若停留在给学生灌输枯燥的算法理论和算法步骤,拿现成的数学建模资料照本宣科,对于学生和老师来说则价值不大。也有一些数学建模课程主打案例式教学,但是讲解不够细致、缺少建模案例实现的细节,学生学完仍然知其然不知其所以然。另外,现有的一些数学建模图书,普遍存在两方面的不足:对建模算法的理解和表述偏理论,所配案例和编程实现缺少细节,学生知识储备有限,阅读困难;代码要么调试不通,要么只能勉强套用,而且实现算法的代码都比较陈旧和繁冗,只考虑可实现性却不考虑可读性和易用性,没有写成更先进、更适宜学生学习的新的简洁代码。为此,我们数学建模教师团队想要编写一本真正适合学生学习和实践、真正通俗地讲解和表述算法的入门书。
本书真正将编程融入算法,并彻底贯彻这样的理念:真正以案例为导向,把算法讲通俗,把案例讲细致,把编程实现的技术细节讲明白,对于案例中体现的建模方法,既要深刻解析又要提炼出来加以应用。
现仅以第2章中“旅游地选择”为例简述本书是如何贯彻这一理念的。
首先,用通俗的语言解释层次分析法原理、优缺点及适用场景。然后,针对旅游地选择的案例,先以计算一个层次结构的权重为例,将MATLAB向量化编程技术融入其中,逐步按照层次分析法的算法步骤推演到最终结果。接着,融入编程语言中的自定义函数的技术,将上述层次分析法的推演过程封装为MATLAB自定义函数,既方便后续使用,又教会读者怎样实现从算法到代码的跨越。最后,借助自定义函数,计算其他层次结构权重再综合合成,完成整个旅游地选择案例,并对结果加以解读。
通过这样的设计再加上计算机操作演示代码,将编程知识、编程能力融入案例当中,让读者既学会了层次分析法的算法原理步骤及使用方法,又学会了通过编程实现算法的技术以及MATLAB语法知识,还能体会到用计算机代替笔算的神奇之处,从而极大地调动了读者学习数学建模知识的积极性。
本书采用主流编程技术和简洁代码实现常用的数学建模算法,以案例为导向,围绕数学建模知识体系展开。
前两章是数学建模基础篇:包括数学建模介绍、数学建模的一般流程(初等模型)、如何从算法到编程实现(层次分析法与自定义函数)。
接着按算法板块组织内容。
? 微分方程模型篇:人口模型、传染病模型。
? 优化模型篇:规划模型、投资优化策略、优化模型进阶。
? 评价模型篇:经典评价模型、模糊理论。
? 预测模型篇:常规预测模型、时间序列分析。
本书定位于夯实数学建模基础,围绕数学建模设计了从易到难、涵盖全面的知识板块,精选案例,用主流的编程技术借助案例实现算法。
本书可作为高等院校数学建模的入门教材,也可作为数学建模指导教师的参考资料,还可作为其他相关行业人员、科研人员使用数学模型解决实际问题的参考用书。
本书第1章由任中贵编写,第2章由吴玉东编写、第3章由苗秀凤编写,第4、6章由罗志坤编写,第5章由郭丽华编写,第7、9、11章由张敬信编写,第8章由徐志丹编写,第10章由周庆欣编写。全书由张敬信统稿。
本书所用软件版本:MATLAB 2021a、Lingo18、R4.1.2。
本书中的MATLAB、Lingo、R 程序均调试通过,所有示例的数据、程序代码、教学课件都可以通过扫描关注机械工业出版社计算机分社官方微信订阅号获取(具体方式见封底),也可以在Github(https://github.com/zhjx19/)、码云(https://gitee.com/ zhjx19/mathmodelbook)下载。
另外,我们计划开发一个专门用于数学建模的R包:mathmodels(https://github. com/zhjx19/mathmodels),以求代替MATLAB、Lingo等商业软件,欢迎关注。
感谢哈尔滨商业大学数学建模团队的十余位同事,我们共同投身学校的数学建模事业,共同讨论和提高,收获很大。特别感谢罗志坤老师在书稿撰写之余,发现和指出若干错误。
感谢我的爱人及岳父、岳母,在家庭生活方面给予我诸多照顾,让我能安心写作;感谢我的父母和兄弟,特别是我远在河北老家的母亲和弟弟,在我因工作原因而无法全力尽孝的时候,照顾患病的父亲,免去了我的后顾之忧。
感谢知乎上的粉丝,感谢“数学建模:算法与编程实现”QQ群的群主和群里的很多朋友,大家一起学习数学建模,一起解答问题,非常开心!也谢谢你们对我的支持以及对本书的期待,是你们给了我写这本书的动力!谢谢群友们帮忙指出书中的错误。
感谢在工作和生活中帮助过我的领导、同事、朋友。
虽然花了很多时间和精力去核对书中的文字、代码和图片,但因为水平有限,书中仍难免会有错漏之处,如果读者有疑问,恳请反馈给我,也非常欢迎读者与我探讨数学建模算法与编程实现的相关技术,上述信息可发送到我的邮箱
[email protected],也可在本书的读者群“数学建模:算法与编程实现”QQ群(716320758)在线交流,或者在我的知乎专栏https://www.zhihu.com/people/huc_zhangjingxin相关文章下面评论或私信,我会努力回答疑问或者给出一个认为正确的方向。
张敬信