数学建模问题攻略指南
数学建模是一个将现实世界的复杂问题转化成数学形式来对问题进行分析和求解的过程。这个过程涉及将实际问题中的复杂因素简化为数学结构,并用数学语言描述这些因素及其相互关系。
引入一个经典问题:长方形(四角连线呈长方形)的椅子是否可以在地面上放稳,数学建模的过程就是需要将其转化成数学形式进行分析和求解,主要分为以下五个步骤。
1.提出问题
首先分析问题,列出问题中涉及的变量,包括适当的单位。经过分析,可以用变量表示椅子的位置,用函数表示椅子四脚与地面的距离,进而用数学语言把问题表达出来.在收集信息时,需要了解的数据有:各院校专业的报录比、推免比例、招生人数、复试情况、考试大纲等。选择院校是一个非常重要的环节,它会决定你的复习状态和心态,所以一定要尽早确定自己的目标院校。
接着模型假设,我们要抛开一些非主干的问题,因此需要对问题做一些假设。模型假设是对问题增加的约束条件,在做模型假设时要考虑假设的合理性和特殊性。例如,不能假设地面时完全水平的或是阶梯,这种假设没有意义。
-
假设椅子的四条腿一样长,椅子腿与地面接触处抽象为一个点,四脚的连线呈长方形。
-
地面高度是连续变化的,沿周围任意方向都不会出现间断 (高度突变),即地面是连续曲面。这个假设相当于给出了椅子能放稳的必要条件。
-
对于椅子脚的间距和椅子腿的长度而言,地面是相对平坦的,使椅子在任何位置至少有三只脚同时着地。
然后进行数学表达,根据模型假设和涉及的变量将问题数学化,这一步通常要结合考虑我们可能会用到的模型。
当椅脚与地面的竖直距离为零时,椅脚就着地,而当距离大于零时椅脚不着地。假设椅子的四脚记作A,B,C,D。根据假设3至少由三只脚同时着地,那么椅子在地面上移动对问题没有影响,只考虑椅子旋转的情况。因此假设某一时刻A,B,C着地,以AC与BD连线的交点为原点,AC为X轴建立平面直角坐标系,设OA与X轴的夹角为θ,因为长方形的旋转可代表椅子位置的改变,则旋转角度θ这一变量可表示椅子的位置。A、B两脚与地面竖直距离之和为f(θ),C、D两脚与地面竖直距离之和为g(θ),其中θ∈[0,π]。
在更多复杂的现实问题中,在问题分析和模型假设之前,可能还需要进行数据集处理工作。例如希望建立模型来预测房价,需要进行一下工作:
-
数据收集:通过各个平台收集包含多个房屋特征的数据集,例如房屋面积、卧室数量、位置、房价等。
-
数据清洗:收集的数据集可能存在很多问题,数据清洗的目标是处理数据中的问题,使数据质量达到可用的标准。包括缺失值处理,比如数据集中有些房屋的“面积”特征缺失,可以用均值、中位数或最频繁值填充缺失值,或者使用插值方法填补缺失值;异常值处理,比如发现一些房屋的“面积”值异常大,可能是录入错误,通过统计分析(如箱线图)识别异常值,并根据业务规则决定是否删除或修正这些值;重复数据处理,比如数据集中存在重复的房屋记录。我们要删除重复记录,以确保每个房屋只有一个数据条目;
-
数据标准化:房屋价格可能使用了不同的货币单位。要统一所有价格数据的单位,以便进行比较和分析。
-
特征工程:目标是从原始数据中提取有用的信息,创建新的特征,或者转换现有特征,以提高模型的性能。特征提取,例如数据集中没有包含房屋的“楼层”信息,但这可能对房价有影响。可以从房屋的描述字段中提取出“楼层”信息,并作为一个新特征添加到数据集中;特征归一化,一些特征(如房屋面积和房龄)具有不同的量纲,这可能会影响模型训练。可以对特征进行标准化或归一化,以确保所有特征在相同的尺度上。
2.选择建模方法
选择解决问题的一个一般的求解方法。一般地,这一步需要有一定的数学建模经验和技巧。同时需要熟悉相关的文献。要求我们对常见的数学模型和算法有一定的了解。下图列出来针对不同问题的常见模型。
例如回归拟合预测模型就是房价预测中常用的一种方法。它通过建立一个数学模型来描述房价与其他特征变量(房屋面积、卧室数量、位置、房价、楼层)之间的关系,从而进行预测。
常用的十大算法:
-
蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)
-
数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具)
-
线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现)
-
图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决需要认真准备)
-
动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)
-
最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)
-
网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)
-
一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)
-
数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)
-
图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题。
3.推导模型的公式
将第一步中得到的问题重新表达成第二步选定的建模方法所需要的形式,从而构建模型,确保第一步中的变量名与第二步的一致。记下任何补充假设,这些假设是为了使第一步中描述的问题与第二步中选定的数学结构相适应而做出的。
在房价预测问题中,数学模型构建:通过线性函数用于建模多个自变量 x1,x2,……xp 和一个因变量 y 之间的线性关系。其中自变量X可以表示房屋面积、卧室数量、位置、房价、楼层等特征变量,y是房价。
在椅子平稳性问题中,数学模型构建:已知f(θ)和g(θ)是θ的非负连续函数,对∀θ,f(θ)•g(θ)=0,证明:∃θ0∈[0,π],使得f(θ0)=g(θ0)=0成立。
4.求解模型
将第二步中所选方法应用于第三步得到的表达式,再求解过程中注意数学推导,确保推导过程无误且结果有意义。并采用适当的方法扩大解决问题的范围并减少计算错误。
在椅子平稳性问题中,①若f(0)=g(0)=0,那么结论成立。②若f(0)与g(0)不同时为零,不妨设f(0)>0,g(0)=0。将长方形ABCD绕点O逆时针旋转角度π后,A,B与C,D互换,但长方形ABCD在地面上所处的位置不变,由此可知,f(π)=g(0),g(π)=f(0).∴f(0)>0,g(0)=0 → g(π)>0,f(π)=0。
令h(θ)=f(θ)-g(θ),由f(θ)和g(θ)的连续性知h(θ)也是连续函数。又h(0)=f(0)-g(0)>0,h(π)=f(π)-g(π)<0,根据连续函数介值定理,必存在θ0∈(0,π)使得h(θ0)=0,即f(θ0)=g(θ0) ;又因为f(θ0)•g(θ0)=0,所以f(θ0)=g(θ0)=0。即四只脚同时着地,椅子稳定。
在预测房价问题中,需要是预测的房价和真实的房价的误差趋于最小,使用最小二乘法作为损失函数优化模型,即使图中Q值趋于最小,也就是当梯度为零的时候取最小值。
5.回答问题
最终在论文中,需要用非技术性的语言将第四步的结果重新表述,表述过程中需要避免数学符号和术语。这部分是对整篇论文成果的总结,一定要写的有深度。除此之外,通常还要写上一些灵敏度分析,如果是统计模型的话,要有模型检验。论文通常会需要画一些图表,可以使用Matlab、R等软件来画跟数据有关的图,使用Visio或者PPT画流程图之类的图。
在椅子平稳性问题中,椅子在旋转过程中,至少存在一个点能使椅子能在不平的地面上放稳。
在预测房价问题中,根据推导出的模型,当已知特征变量时,能够预测房屋价格。