数学是一门研究现实世界数量关系和空间形式的科学。很多人在学习数学类课程的时候,都会有一定的困惑:数学这么难,学习数学到底有什么用? 数学的难体现在大多数的数学知识都很抽象,让人很难联系实际。其实数学正是来源于实际,是从实际中抽象出来的。如果能够尝试用抽象的数学知识去解决实际问题,一切将变得具象起来,数学的学习会变得更有意思,也会更简单。在人类的发展历史中,许多科学家用数学模型来描述客观世界,促进了人类文明的发展,诸如17世纪牛顿提出的万有引力定律、20世纪爱因斯坦提出的广义相对论,这些都是数学成功应用的典范。
将数学应用于实际,这正是数学建模所要研究的内容。现如今,数学已经应用于日常生活的方方面面,数学建模也越来越受到人们的重视,几乎所有高校都开设了数学建模课程,以此提高学生们应用数学知识解决实际问题的能力,甚至有些中小学也在尝试开展数学建模活动。放眼世界,每年都会有大大小小的各类数学建模竞赛活动,比较著名的有“全国大学生数学建模竞赛”“中国研究生数学建模竞赛”和“美国大学生数学建模竞赛”。笔者每年都要指导学生参加这些竞赛活动,也多次获得优异的成绩。
用数学知识解决实际问题通常包括两个基本步骤:首先,需要把问题进行抽象,用数学的语言去描述,即在一定的合理假设下建立合适的数学模型;其次,建立数学模型后,需要选择合适的工具求解模型。这里的求解并不只是简单的公式推导,大多数情况下不能靠手算实现,必须要借助计算机软件来实现。笔者在指导学生参加数学建模竞赛的过程中,也切身体会到学生面临的最大困难往往并不是建立模型,而是编写程序求解模型。在众多的科学计算软件中,MATLAB是求解数学模型的利器。相比于其他软件,MATLAB有“草稿纸式”的编程语言,还有包罗万象的工具箱,易学易用,用户不仅可以调用其内部函数进行“傻瓜式”的计算,还可以根据自己的算法进行扩展编程。本书将结合数学建模案例全面介绍常用的数学建模方法及其MATLAB实现。相比于其他同类型的著作,本书的特色是双系统性,对数学建模方法与MATLAB编程语言的介绍都是自成系统的,当然也是紧密结合的。本书既可作为MATLAB从基础到提高的进阶教程,也可作为数学建模与数学实验的教程。
数学学科的分支有很多,这也就决定了数学建模的方法也有很多。对比近些年的数学建模竞赛赛题不难发现,数学建模所要解决的实际问题往往是开放性的,并没有一个标准答案,解决问题的过程也是比较复杂的,会用到多种不同的建模方法。大致总结一下,常用的数学模型与建模方法包括:积分模型、代数方程模型、常微分方程模型、偏微分方程模型、回归模型、线性规划模型、非线性规划模型、多目标规划模型、整数规划模型、图与网络优化模型、多项式与插值拟合方法、基本概率统计方法、方差分析方法、聚类分析方法、判别分析与模式识别方法、主成分分析法、遗传算法、模拟退火算法、粒子群算法、蚁群算法、人工神经网络方法、排队论方法、层次分析法、模糊综合评价法、图像处理方法、Simulink建模仿真方法等。针对具体问题,如何从众多的建模方法中选择合适的方法,建立合适的数学模型,这是让很多人颇感困惑的问题,笔者希望本书中大量的案例能给读者带来启发。
笔者长期从事本科生“数学建模与数学实验”“数据分析与数学软件实践”“高等数学”“线性代数”“概率论与数理统计”,硕士研究生“工程数学”,博士研究生“应用数学基础”等课程的教学。在教学中,笔者把MATLAB和数学建模方法引入课堂,深受学生欢迎。本书也是笔者长期教学经验的总结。
本书章节是这样安排的:第1章,MATLAB数组运算;第2章,MATLAB程序设计;第3章,MATLAB绘图与可视化;第4章,MATLAB数据管理;第5章,MATLAB符号计算;第6章,MATLAB数值计算;第7章,多项式与插值拟合;第8章,常用统计建模方法与MATLAB求解;第9章,常用优化建模方法与MATLAB求解;第10章,人工神经网络方法;第11章,排队论方法;第12章,多指标综合评价方法;第13章,MATLAB图像处理基础;第14章,Simulink建模与仿真;第15章,全国大学生数学建模竞赛真题解析。在章节顺序的安排上,以MATLAB软件为切入点,结合大量案例循序渐进地介绍常用的数学建模方法及其MATLAB实现,最后通过真题解析进行实战演练。相信通过本书的学习,读者一定能够在短时间内提高解决实际问题的能力,成为数学建模的高手!
针对本书,MATLAB中文论坛(http://www.ilovematlab.cn/)特别提供了读者与作者在线交流的平台https://www.ilovematlab.cn/forum-275-1.html,笔者希望在这个平台上与广大读者作面对面的交流,解决大家在学习本书过程中遇到的问题,分享彼此的学习经验,共同提高数学建模和模型求解的能力!
本书的所有数据和源程序可通过扫描本页的二维码→关注“北航科技图书”公众号→ 回复“3052”免费获得。所有程序在MATLAB R2018b(MATLAB 9.5)下通过了验证,均能够正确执行,读者可将自己的MATLAB更新至较新的版本,以免出现不必要的问题。
在本书的写作过程中,笔者得到了北京航空航天大学出版社陈守平编辑、天津工业大学汪晓银教授、MathWorks公司工程师卓金武、MATLAB 中文论坛管理员Smile(吕凌曦)和MATLAB技术论坛管理员Dynamic(詹惠崇)的支持与鼓励。在此,向他们表示最真诚的谢意! 此外,笔者也得到了天津科技大学理学院和数学系领导及同事们的支持与鼓励。张大克、邱玉文、王霞、邢化明、王玉杰、崔家峰、刘寅立、贾学龙、王洪武、张立东、孟祥波、李玉峰、廖嘉、夏国坤和孙明晶为本书提出了宝贵的修改意见,在此一并表示最诚挚的感谢!
最后,还要感谢我的妻儿,他们默默地为我付出,支持我顺利完成本书的写作。在此,向我的妻子和儿子表示最衷心的感谢!
由于作者水平有限,书中若存在疏漏和不当之处,恳请广大读者和同行批评指正! 作者邮箱:xiezhh@tust.edu.cn。本书勘误网址:https://www.ilovematlab.cn/thread-578894-1-1.html。
谢中华
2019年6月