数学建模介绍
数学建模是什么
数学模型是利用系统化的符号和数学表达式对间题的一种抽象描述。数学建模可看作是把问题定义转换为数学模型的过程。 和问题定义相对应,数学模型包括几个主要组成部分:决策变量、环境变量、目标函数和约束条件。决策变量表示决策者可以控制的因素,即可控输入,是需要通过模型求解来确定的模型中的未知变量。环境变量表示决策者不可控的外界因素,即非可控输入,需要在收集数据阶段确定其具体数值,并在模型中以常量表示。目标函数是指描述问题目标的数学方程,而约束条件则是指描述问题中制约和限制因素的数学表达式(等式或不等式)。(这个主要是规划的一种定义)
简单来说,就是利用数学知识和专业知识解决生活中的问题。这里最常见的有优化模型,预测模型。比如工业流程的优化,最佳策略的选取,数据预测等等,解决这些本质还是利用数学相关的知识。
个人感觉:数字建模就像一个小的科研经历,可以培养你和科研相关的一些知识,有些数学建模本身其实也是现在科研的一部分。当然这里区分一些数学建模和数学建模比赛,这俩个其实有一点点差距,数学建模应该是严谨的专业的,而数学建模比赛嘛,从个人利益角度出发,比赛就是为了学到东西和获奖,所以,这里也有了一些出入,现实和理想嘛,毕竟不少每一个人的模型都是严谨的准确的,误差可控的,这里一些题目本身其实也是不严谨的,所以一些美化,包装,甚至结果的一些篡改,借鉴等也成了一种获奖的方法。但还是希望大家可以独立思考,争取模型和结果的准确性,完成真正的“数字建模”。
数学建模比赛
全国大学生数模竞赛CUMCM
全国研究生数模竞赛NPGMCM
- 美国大学生数模竞赛MCM/ICM;
- 五一数学建模
- 亚太数学建模等等
这里最主要的是国赛和美赛,美赛和国赛,我感觉是不一样的,国赛分赛区,获奖也取决赛区的强弱,当然国赛获奖更难,国赛不仅对数学建模的思路和方法进行评估,还对模型结果的准确性有一个评估。美赛其实更推荐小白常见,因为美赛更看重思路,一些异想天开,不一样的想法模型很可能就获奖。其他的一些大部分是用来练手吧,多参加多实践才能在比赛中取得好成绩。
组队分工
找到建模小伙伴,认真负责,靠谱的人。建模比赛一般都是三天,三天要做出一篇建模论文时间是很紧迫的,三个人一起做会轻松很多,互相鼓励也更不容易放弃。个人觉得靠谱是挑选队友最重要的点,我看过很多队伍比赛会出现突然消失,平常答应很好,比赛突然不见了;还看到过队伍发生内部矛盾而发生撂挑子不干的事故。不用自卑不用盲目寻求大佬队友,成绩好不代表竞赛好,只要队友可以一起学习就可。最好是模拟一两次比赛看队友适不适合。
然后就得多参加多配合,这里我很感谢有磨合了2年的队友。
下面介绍一下分工:
- 建模
- 编程
- 写作
其实这三个不是对立的,最好的状态是队友什么都会,尤其擅长1-2个方向,如果编程和写作不懂建模,拿建模出来的东西很难后续实现,对于数据处理题,有时也需要编程手预处理等给出合理的建议,写作过程中也可能发现模型的不足,进行更改。总之,数学建模是团队合作的比赛。这里推荐大家一些基本的应该都会,比如查论文,能看懂模型,会排版(公式)等。
对于写作,其实这部分很关键,因为最后提交的是一篇论文,论文的好坏直接就是对应不同的成绩。
建模手
查找文献
知网
知网得会吧,一些模型可以利用句子搜索来确定。
谷歌学术
谷歌学术 : https://scholar.google.com.hk/?hl=zh-CN
美赛会涉及一些外网的东西,至于怎么查自己了解一下吧
其他
像web science,EI自己了解一下吧
这里还推举一些其他我可能用到的东西。
Aminer : https://www.aminer.cn/
常见模型
这里我copy网上一些内容:
常规优化模型:
线性规划,非线性规划,整数规划,多目标规划,动态规划评价模型:
层次分析法,模糊综合评价,熵值法,TOPSIS法,数据包络分析,秩和比法,灰色关联分析预测模型:
回归拟合,灰色预测,马尔可夫预测,时间序列分析动态模型:
微分方程模型,差分方程模型,元胞自动机,排队论,蒙特卡罗随机模拟图论模型:
最短路径,最小生成树,最小费用最大流,指派问题,旅行商问题统计分析模型:
分布检验,均值T检验,方差分析,协方差分析,相关分析,卡方检验,秩和检验,回归分析,Logistic回归,聚类分析,判别分析,关联分析现代智能算法:
模拟退火,神经网络,遗传算法,蚁群算法,粒子群算法,支持向量机,决策树,随机森林
其实也不用都掌握,大概了解不同情况下用那些就行了,到时候在具体看,一些常见的简单的会就行了,难一点只需要了解即可。
下面简单瞎说一点(主要好多人想了解建模的思路,但我是编程手,建模死马当活马医了,哈哈哈)
1 、优化模型
1.1 数学规划模型
线性规划、整数线性规划、非线性规划、多目标规划、动态规划。
1.2 微分方程组模型
阻滞增长模型、SARS传播模型。
1.3 图论与网络优化问题
最短路径问题、网络最大流问题、最小费用最大流问题、最小生成树问题(MST)、旅行商问题(TSP)、图的着色问题。
1.4 概率模型
决策模型、随机存储模型、随机人口模型、报童问题、Markov链模型。
1.5 组合优化经典问题
现代优化算法:禁忌搜索;模拟退火;遗传算法;人工神经网络
2、分类模型
判别分析是在已知研究对象分成若干类型并已经取得各种类型的一批已知样本的观测数据,在此基础上根据某些准则建立判别式,然后对未知类型的样品进行判别分析。
聚类分析则是给定的一批样品,要划分的类型实现并不知道,正需要通过局内分析来给以确定类型的。
2.1 判别分析
2.2 聚类分析
2.2.1 系统聚类法(分层聚类法)
基本思想:开始将每个样本自成一类;然后求两两之间的距离,将距离最近的两类合成一类;如此重复,直到所有样本都合为一类为止。
适用范围:既适用于样本聚类,也适用于变量聚类。并且距离分类准则和距离计算方法都有多种,可以依据具体情形选择。
2.2.2 快速聚类法(K-均值聚类法)
基本思想:按照指定分类数目,选择个初始聚类中心;计算每个观测量(样本)到各个聚类中心的距离,按照就近原则将其分别分到放入各类中;重新计算聚类中心,继续以上步骤;满足停止条件时(如最大迭代次数等)则停止。
使用范围:要求用户给定分类数目,只适用于样本聚类(Q型),不适用于变量聚类(R型)。
2.2.3 两步聚类法(智能聚类方法)
基本思想:先进行预聚类,然后再进行正式聚类。
适用范围:属于智能聚类方法,用于解决海量数据或者具有复杂类别结构的聚类分析问题。可以同时处理离散和连续变量,自动选择聚类数,可以处理超大样本量的数据。
2.2.4 模糊聚类分析
2.2.5 与遗传算法、神经网络或灰色理论联合的聚类方法
2.3 神经网络分类方法
3、评价模型
3.1 层次分析法(AHP)
基本思想:是定性与定量相结合的多准则决策、评价方法。将决策的有关元素分解成目标层、准则层和方案层,并通过人们的判断对决策方案的优劣进行排序,在此基础上进行定性和定量分析。它把人的思维过程层次化、数量化,并用数学为分析、决策、评价、预报和控制提供定量的依据。
基本步骤:构建层次结构模型;构建成对比较矩阵;层次单排序及一致性检验(即判断主观构建的成对比较矩阵在整体上是否有较好的一致性);层次总排序及一致性检验(检验层次之间的一致性)。
优点:它完全依靠主观评价做出方案的优劣排序,所需数据量少,决策花费的时间很短。从整体上看,AHP在复杂决策过程中引入定量分析,并充分利用决策者在两两比较中给出的偏好信息进行分析与决策支持,既有效地吸收了定性分析的结果,又发挥了定量分析的优势,从而使决策过程具有很强的条理性和科学性,特别适合在社会经济系统的决策分析中使用。
缺点:用AHP进行决策主观成分很大。当决策者的判断过多地受其主观偏好影响,而产生某种对客观规律的歪曲时,AHP的结果显然就靠不住了。
适用范围:尤其适合于人的定性判断起重要作用的、对决策结果难于直接准确计量的场合。要使AHP的决策结论尽可能符合客观规律,决策者必须对所面临的问题有比较深入和全面的认识。另外,当遇到因素众多,规模较大的评价问题时,该模型容易出现问题,它要求评价者对问题的本质、包含的要素及其相互之间的逻辑关系能掌握得十分透彻,否则评价结果就不可靠和准确。
改进方法:
(1) 成对比较矩阵可以采用德尔菲法获得。
(2) 如果评价指标个数过多(一般超过9个),利用层次分析法所得到的权重就有一定的偏差,继而组合评价模型的结果就不再可靠。可以根据评价对象的实际情况和特点,利用一定的方法,将各原始指标分层和归类,使得每层各类中的指标数少于9个。
3.2 灰色综合评价法(灰色关联度分析)
基本思想:灰色关联分析的实质就是,可利用各方案与最优方案之间关联度大小对评价对象进行比较、排序。关联度越大,说明比较序列与参考序列变化的态势越一致,反之,变化态势则相悖。由此可得出评价结果。
基本步骤:建立原始指标矩阵;确定最优指标序列;进行指标标准化或无量纲化处理;求差序列、最大差和最小差;计算关联系数;计算关联度。
优点:是一种评价具有大量未知信息的系统的有效模型,是定性分析和定量分析相结合的综合评价模型,该模型可以较好地解决评价指标难以准确量化和统计的问题,可以排除人为因素带来的影响,使评价结果更加客观准确。整个计算过程简单,通俗易懂,易于为人们所掌握;数据不必进行归一化处理,可用原始数据进行直接计算,可靠性强;评价指标体系可以根据具体情况增减;无需大量样本,只要有代表性的少量样本即可。
缺点:要求样本数据且具有时间序列特性;只是对评判对象的优劣做出鉴别,并不反映绝对水平,故基于灰色关联分析综合评价具有“相对评价”的全部缺点。
适用范围:对样本量没有严格要求,不要求服从任何分布,适合只有少量观测数据的问题;应用该种方法进行评价时,指标体系及权重分配是一个关键的问题,选择的恰当与否直接影响最终评价结果。
改进方法:
(1) 采用组合赋权法:根据客观赋权法和主观赋权法综合而得权系数。
(2) 结合TOPSIS法:不仅关注序列与正理想序列的关联度,而且关注序列与负理想序列的关联度,依据公式计算最后的关联度。
3.3 模糊综合评价法
基本思想:是以模糊数学为基础,应用模糊关系合成的原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事物隶属等级(或称为评语集)状况进行综合性评价的一种方法。综合评判对评判对象的全体,根据所给的条件,给每个对象赋予一个非负实数评判指标,再据此排序择优。
基本步骤:确定因素集、评语集;构造模糊关系矩阵;确定指标权重;进行模糊合成和做出评价。
优点:数学模型简单,容易掌握,对多因素、多层次的复杂问题评判效果较好。模糊评判模型不仅可对评价对象按综合分值的大小进行评价和排序,而且还可根据模糊评价集上的值按最大隶属度原则去评定对象所属的等级,结果包含的信息量丰富。评判逐对进行,对被评对象有唯一的评价值,不受被评价对象所处对象集合的影响。接近于东方人的思维习惯和描述方法,因此它更适用于对社会经济系统问题进行评价。
缺点:并不能解决评价指标间相关造成的评价信息重复问题,隶属函数的确定还没有系统的方法,而且合成的算法也有待进一步探讨。其评价过程大量运用了人的主观判断,由于各因素权重的确定带有一定的主观性,因此,总的来说,模糊综合评判是一种基于主观信息的综合评价方法。
应用范围:广泛地应用于经济管理等领域。综合评价结果的可靠性和准确性依赖于合理选取因素、因素的权重分配和综合评价的合成算子等。
改进方法:采用组合赋权法:根据客观赋权法和主观赋权法综合而得权系数。
3.4 BP神经网络综合评价法
基本思想:是一种交互式的评价方法,它可以根据用户期望的输出不断修改指标的权值,直到用户满意为止。因此,一般来说,人工神经网络评价方法得到的结果会更符合实际情况。
优点:神经网络具有自适应能力,能对多指标综合评价问题给出一个客观评价,这对于弱化权重确定中的人为因素是十分有益的。在以前的评价方法中,传统的权重设计带有很大的模糊性,同时权重确定中人为因素影响也很大。随着时间、空间的推移,各指标对其对应问题的影响程度也可能发生变化,确定的初始权重不一定符合实际情况。再者,考虑到整个分析评价是一个复杂的非线性大系统,必须建立权重的学习机制,这些方面正是人工神经网络的优势所在。针对综合评价建模过程中变量选取方法的局限性,采用神经网络原理可对变量进行贡献分析,进而剔除影响不显著和不重要的因素,以建立简化模型,可以避免主观因素对变量选取的干扰。
缺点: ANN在应用中遇到的最大问题是不能提供解析表达式,权值不能解释为一种回归系数,也不能用来分析因果关系,目前还不能从理论上或从实际出发来解释ANN的权值的意义。需要大量的训练样本,精度不高,应用范围是有限的。最大的应用障碍是评价算法的复杂性,人们只能借助计算机进行处理,而这方面的商品化软件还不够成熟。
适用范围:神经网络评价模型具有自适应能力、可容错性,能够处理非线性、非局域性的大型复杂系统。在对学习样本训练中,无需考虑输入因子之间的权系数,ANN通过输入值与期望值之间的误差比较,沿原连接权自动地进行调节和适应,因此该方法体现了因子之间的相互作用。
改进方法:
采用组合评价法:对用其它评价方法得出的结果,选取一部分作为训练样本,一部分作为待测样本进行检验,如此对神经网络进行训练,知道满足要求为止,可得到更好的效果。
3.5 数据包络法(DEA)
3.6 组合评价法
4、预测模型
定性研究与定量研究的结合,是科学的预测的发展趋势。在实际预测工作中,应该将定性预测和定量预测结合起来使用,即在对系统做出正确分析的基础上,根据定量预测得出的量化指标,对系统未来走势做出判断。
4.1 回归分析法
基本思想:根据历史数据的变化规律,寻找自变量与因变量之间的回归方程式,确定模型参数,据此预测。回归问题分为一元和多元回归、线性和非线性回归。
特点:技术比较成熟,预测过程简单;将预测对象的影响因素分解,考察各因素的变化情况,从而估计预测对象未来的数量状态;回归模型误差较大,外推特性差。
适用范围:回归分析法一般适用于中期预测。回归分析法要求样本量大且要求样本有较好的分布规律,当预测的长度大于占有的原始数据长度时,采用该方法进行预测在理论上不能保证预测结果的精度。另外,可能出现量化结果与定性分析结果不符的现象,有时难以找到合适的回归方程类型。
4.2 时间序列分析法
基本思想:把预测对象的历史数据按一定的时间间隔进行排列,构成一个随时间变化的统计序列,建立相应的数据随时间变化的变化模型,并将该模型外推到未来进行预测。
适用范围:此方法有效的前提是过去的发展模式会延续到未来,因而这种方法对短期预测效果比较好,而不适合作中长期预测。一般来说,若影响预测对象变化各因素不发生突变,利用时间序列分析方法能得到较好的预测结果;若这些因素发生突变,时间序列法的预测结果将受到一定的影响。
4.3 灰色预测法
基本思想:将一切随机变量看作是在一定范围内变化的灰色变量,不是从统计规律角度出发进行大样本分析研究,而是利用数据处理方法(数据生成与还原),将杂乱无章的原始数据整理成规律性较强的生成数据来加以研究,即灰色系统理论建立的不是原始数据模型,而是生成数据模型。
适用范围:预测模型是一个指数函数,如果待测量是以某一指数规律发展的,则可望得到较高精度的预测结果。影响模型预测精度及其适应性的关键因素,是模型中背景值的构造及预测公式中初值的选取。
4.4 BP神经网络法
人工神经网络的理论有表示任意非线性关系和学习等的能力,给解决很多具有复杂的不确定性和时变性的实际问题提供了新思想和新方法。
利用人工神经网络的学习功能,用大量样本对神经元网络进行训练,调整其连接权值和闭值,然后可以利用已确定的模型进行预测。神经网络能从数据样本中自动地学习以前的经验而无需繁复的查询和表述过程,并自动地逼近那些最佳刻画了样本数据规律的函数,而不论这些函数具有怎样的形式,且所考虑的系统表现的函数形式越复杂,神经网络这种特性的作用就越明显。
误差反向传播算法(BP算法)的基本思想是通过网络误差的反向传播,调整和修改网络的连接权值和闭值,使误差达到最小,其学习过程包括前向计算和误差反向传播。它利用一个简单的三层人工神经网络模型,就能实现从输入到输出之间任何复杂的非线性映射关系。目前,神经网络模型已成功地应用于许多领域,诸如经济预测、财政分析、贷款抵押评估和破产预测等许多经济领域。
优点:可以在不同程度和层次上模仿人脑神经系统的结构及信息处理和检索等功能,对大量非结构性、非精确性规律具有极强的自适应功能,具有信息记忆、自主学习、知识推理和优化计算等特点,其自学习和自适应功能是常规算法和专家系统技术所不具备的,同时在一定程度上克服了由于随机性和非定量因素而难以用数学公式严密表达的困难。
缺点:网络结构确定困难,同时要求有足够多的历史数据,样本选择困难,算法复杂,容易陷入局部极小点。
4.5 支持向量机法
支持向量机是基于统计学习的机器学习方法,通过寻求结构风险化最小,实现经验风险和置信范围的最小,从而达到在统计样本较少的情况下,亦能获得良好统计规律的目的。 其中支持向量机是统计学习理论的核心和重点。支持向量机是结构风险最小化原理的近似,它能够提高学习机的泛化能力,既能够由有限的训练样本得到小的误差,又能够保证对独立的测试集仍保持小的误差,而且支持向量机算法是一个凸优化问题,因此局部最优解一定是全局最优解,支持向量机就克服了神经网络收敛速度慢和局部极小点等缺陷。 核函数的选取在SVM方法中是一个较为困难的问题,至今没有一定的理论方面的指导。
4.6 组合预测法
在实际预测工作中,从信息利用的角度来说,就是任何一种单一预测方法都只利用了部分有用信息,同时也抛弃了其它有用的信息。为了充分发挥各预测模型的优势,对于同一预测问题,往往可以采用多种预测方法进行预测。不同的预测方法往往能提供不同的有用信息,组合预测将不同预测模型按一定方式进行综合。根据组合定理,各种预测方法通过组合可以尽可能利用全部的信息,尽可能地提高预测精度,达到改善预测性能的目的。
优化组合预测有两类概念,一是指将几种预测方法所得的预测结果,选取适当的权重进行加权平均的一种预测方法,其关键是确定各个单项预测方法的加权系数;二是指在几种预测方法中进行比较,选择拟合度最佳或标准离差最小的预测模型作为最优模型进行最优模型进行预测。组合预测是在单个预测模型不能完全正确地描述预测量的变化规律时发挥其作用的。
论文资料
我这里只有有小部分可以参考,不过我相信每一个参加的,都会有一堆这些资料,如果感兴趣可以私聊我发你。
这里推荐一个Github
Math_Model : https://github.com/personqianduixue/Math_Model/
MathModel : https://github.com/zhanwen/MathModel
Algorithms_MathModels: https://github.com/HuangCongQing/Algorithms_MathModels
其他可以自己github查找:
编程手
因为我主要是编程手,干的杂,其实大部分还是依赖有一个好队友,哈哈哈。
编程语言
MATLAB
matlab应该是最熟悉的软件,内置很多包和操作,很多数学建模的代码也是matlab的。
Python
工具软件
SPSS
mpai
Lingo
Lingo是运筹优化问题比较好的软件之一,它可以用于求解非线性规划,也可用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择,其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(既整数规划,包括0-1整数规划),方便灵活,而且执行速度很快。能与Excel,数据库等软件交换数据。
mathematica
科学计算多一点,多用在和物理相关的题目进行一些计算。
mathematica : https://www.wolfram.com/mathematica/
可视化
draw.io
echart
echart : https://echarts.apache.org/zh/index.html
ppt
一些流程图配合
excel
matlab
这里推荐一个插件:
关注b站MATLAB大佬图通道 : https://space.bilibili.com/223755925?from=search&seid=7825192864172994189&spm_id_from=333.337.0.0
python绘图
首先类似matlab的Matplotlib
Matplotlib : https://matplotlib.org/
Pyecharts
Pyecharts : https://pyecharts.org/#/zh-cn/intro
和前面echart一样的,代码及其相似,可视化交互吧
seaborn(sns)
也就是seaborn
seaborn : https://seaborn.pydata.org/
这个更快。用于特征选取的对比,一些封装好的图,输入数据就能出图,最喜欢seaborn.heatmap的相关性
还有seaborn.pairplot,变量之间的关系
其他
scikit-learn : https://scikit-learn.org.cn/
主流的机器学习,适合一些预测题
scikit-opt : https://scikit-opt.github.io/scikit-opt/#/zh/
一些智能优化,封装好的,之间导包就能用。
statsmodels : https://www.statsmodels.org/stable/examples/index.html
一个统计相关的库,很全面,偶尔使用吧
pycarets : https://pycaret.org/
和时间序列有关的slam吧
jieba : https://github.com/fxsjy/jieba
中文的分词的,用于nlp处理吧
wordninja : https://github.com/keredson/wordninja
英文的分词的,用于nlp处理吧
wordcloud : https://amueller.github.io/word_cloud/
词云生成器,也不难
nlp最难的是分析,噪声太多了,自己不太擅长。
写作手
写作模板
摘要
1.问题重述(背景介绍、文献综述、问题重述等)
2.问题分析(主要对问题进行一定的分析,可以做一个分析流图)
3.问题假设(其实也就是对问题的边界进行划定,我们需要让问题更具体一些)
4.符号说明(对于文章中主要出现的符号进行一定的解释,方便评委老师理解)
5.模型建立与求解(这一步最为核心,即数学建模和模型的求解部分)
6.灵敏度分析(即分析模型的输出,对参数或环境变化的敏感程度的分析)
7.模型的推广及优缺点(主要对模型的进一步研究分析和优缺点解释)
参考文献
附录
上面是大致的模板,当然具体情况可以自己修改,小白还是推荐参考,这里模型建立与求解,可以分开模型一的建模与求解,模型二的建模与求解等也可以合在一起,模型的建模,模型的求解.
排版
word
这里word应该是最简单,这里我也不多介绍,这个应该学一下,后面课程报告等都会用到.
这里推荐b站的一些视频,这里就不推荐,毕竟word这部分一个合格的大学生都应该掌握.(感兴趣还可以顺便考个二级)
latex
这里提一下latex,其实建议掌握,最起码会个latex的公式(这个真的是必学)
然后论文排版,latex和word在比赛中差距不是很大,但latex学习成本高于word,一定要慎重,latex排版的写作手,最好用latex排几次,练练手,要不然在比赛很容易产生没时间,or意外的bug,导致结果不太理想.
latex公式这里是强烈推荐的,尤其是
LaTeX公式编辑器 : https://www.latexlive.com/home
支持图像识别,latex公式代码提示。
latex编辑器推荐overleaf:https://cn.overleaf.com/
翻译
这里其实更推荐机器翻译,人工审核,美赛量有点大,纯人工翻译挺难的,而且还可能不太准确,这里最好推荐人工核查,搭配机器翻译,这里推荐谷歌翻译和deepl
deepl