最近在复习和学习数学建模的东西,主要是《数学建模优秀论文精选与点评(2011-2015)》和《数学建模方法及其应用》两本书,资源在下面。(包括文中出现的一些案例就来源于书中)
个人觉得数学建模是介乎业务模型和数据挖掘之间的东西,既要有将实际问题转化为数学模型的思维,同时在采用的模型、算法方面和数据挖掘有极大的重合。所以对于开拓横向的数据化业务思维、分析能力以及基础的数据挖掘能力都有帮助。
链接: https://pan.baidu.com/s/1U3fI-U3WSFN8Zj02iqLp0w 提取码: fvfy
一、引言
数学建模方法:
- 机理分析方法
- 构造分析方法(先建立一个合理的模型结构,再对模型进行参数模拟)
- 直观分析方法
- 数值分析方法:差值、回归等
- 数学分析方法:图论、微分、概率统计等
(数学建模所需要的知识首先是广!其次才是精!)
数学建模步骤:
问题分析→模型假设→模型建立→模型求解→解的分析与检验→写作和应用
二、两种初等分析方法
- 量纲分析方法
- 集合分析方法
三、微分方程方法
基础理论:
- 微分方程的一般形式(这个还是差不多记得的)
- 微分方程解的存在唯一性(定理肯定会忘)
- 微分方程的稳定性问题:在给定的初始解/扰动的条件下,微分方程的解是不是稳定的(是趋于某个稳定值还是无穷值)
典型场景
微分方程一般是时间微分方程,微分方程稳定性问题的典型场景是判断博弈过程,判断最终哪一方会赢、哪一方会败,比如下面的战争问题;或者就是消息/疾病随时间传播的过程。
四、差分方程方法
基础理论:
-
差分方程的定义:
差分只是一个过程变量,既可以求微分,也可以求积分。而且差分方程本身也是需要求解、以及判断稳定性的,但是似乎利用差分方程求解方程本身很少,而利用差分/差商来积分反而更常用
- 微分的差分方法:向前差、向后差、中心差(利用差分求微分)
- 定积分的差分方法:复化矩形公式、复化梯形公式、复化辛普森公式、复化科斯特公式(利用差分求积分)
- 常微分方程的差分方法:就是已知微分方程,但是你可能不想把原方程求解出来,而是想转化成一个差分方程,这样你在有初始解的条件下,就可以不断差分,然后求解出之后所有的值,而不是把原始方程解出来。。。常用方法有欧拉公式、梯形公式、龙格库塔方法(一阶、二阶、三阶、四阶。。。)
五、差值与拟合方法
基础理论:
- 一般差值方法:拉格朗日插值,就是多项式插值;牛顿插值,也是多项式插值,牛顿插值其实是拉格朗日插值的变形,关键在于牛顿插值可以直接接受新的插值点,而进行新的多项式更新,而不是拉格朗日要从头开始更新。
- 样条差值:分二次样条函数插值和三次样条函数插值,二次就是多段的二项式,三次就是多段的三项式。
最简单的理解是,两点可以确定一次多项式(一条直线),两点加临界点的一次导数可以确定二次多项式,两点加临界点的一二次导数可以确定三次多项式。所以三次样条就是在已知临界点一二次导数的情况下求取的三次多项式,目的是保证充分光滑,适用于飞机、汽车等光滑界面的处理。
样条函数的目的是保证光滑,而不是用拉格朗日拟合方法来进行非常高阶的强行拟合。但实际过程中,一二阶导数通常未知,所以常采用差分方法来估计 - B样条函数差值:B样条相对样条函数好像是多了一个满足凹凸函数特性,不过这个确实应该用不到。
拟合方法:
- 最小二乘法:最小二乘法的本质是均方差的极小化问题。
一般线性最小二乘拟合方法是可以直接求解的,但是非线性最小二乘问题,通常求解很复杂,可以采用梯度法(这个最常用)、共轭梯度法、最速下降法(后两者是求解特殊的正定矩阵)进行求解。。。。
六、层次分析法
基础理论:
方案层、准则层、决策目标→构造比较矩阵→相对权重向量确定→一致性校验→计算组合权重和组合一致性校验(两层权重的累加)
应用场景:
实际应用应该很广了,发现一个可以用在互联网运营中的:https://www.jianshu.com/p/f4fdf18988cb
七、概率分布方法
基础理论:
- 排列和组合:就是P(n,k)和C(n,k)的区别
- 事件和概率:随机试验和事件类有,必然事件、不可能事件;包含事件、相等事件、互补相容事件、差事件、积事件;概率类有一般概率、条件概率、全概率事件(多个条件概率事件的累加表示)
-
随机变量与分布函数:离散型随机变量、连续性随机变量;分布函数F、密度函数f;多维随机变量的联合分布函数、联合分布密度;期望、方差,除了传统求期望和方差的公式,还有这个转化方法
采用概率分布:
- 常用为离散型:
1、两点分布、二项分布(由很多个两点分布组成的)
2、泊松分布:当二项分布的n很大而p很小时,泊松分布由二项分布推导而来。泊松分布适合于描述单位时间(或空间)内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数。举个例子,要计算造8点在车站站台的人数,这个n就是全市区的人数,p就是一个乘客在8点出现在站台的概率,可以知道n足够大,p足够小,最后的人数就是一个泊松分布。所以广义意义上理解泊松分布是,容易出现一个小值,但是很难出现一个大值。 - 通常为连续型:
1、比较通用的,均匀分布、正态分布;
2、卡方分布:正态分布平方的累加
3、t分布:正太分布与卡方开方的比值(所以肯定比较趋于1)
4、F分布:两个卡方分布的比值,像是正态平方/正态平方
参考:<u>https://blog.csdn.net/anshuai_aw1/article/details/82735201</u>
八、数理统计方法
基础理论:
- 样本、样本的容量、观测值
- 简单随机样本:随机性+独立性,所以必须保证独立,从盒子里不放回的拿10个球这不是简单随机样本,但是重复“从盒子离不放回得拿10个球”十次,每一次都是简单随机样本。关键在于样本的含义是“一组”,而不是“一个”,“一组”涵盖“一个”。
- 统计量:
1、位置统计量:平均值、中位数、分位数
2、变异程度统计量:标准差、方差、极差(最大值与最小值之差)
3、分布形态统计量:偏度、峰度、原点矩和中心矩
参数估计:
- 点估计:
1、矩估计法:用样本的k阶原点矩来估计总体的k阶原点矩,并求解出参数(典型的就是均值是一阶原点矩是样本均值,然后二阶原点矩是均值平方+方差平方);
2、最大似然估计:求解得到样本数据的概率,此时使概率达到最大的参数(因为样本已经发生)就是参数的最大似然估计值。 -
区间估计:
1、定义是:参数处在某个区间的概率是1-α,则该区间是被估计参数在置信水平为1-α下的置信区间。
2、区间估计准确来说是只适用服从正太分布的函数的,只不过这里有一条,似乎也意味着在实际问题处理上,通常把样本够大的数据经过转化后认为服从正态分布:
3、转换估计:已知方差,求期望的置信区间:经过转化是服从标准正太分布未知方差,求期望的置信区间:用样本方差来代替方差,经过转化是服从t(n-1)分布的。。等等。
4、估计量评价:
方差分析:
分为单因素方差分析法和多因素方差分析法。这里只考虑单因素。
-
组间方差SSA:
-
组内方差SSE:
因为是方差,平方的形式,所以转化过后肯定是卡方分布,两者都是卡方分布,只是自由度和转化形式方面确实不容易记住。而且中间的推导过程其实是省略的,重点还是要放在会用上面。
-
构造一个F分布:
相关分析方法:
- 协方差:
Cov(X,Y) = E(XY) − E(X)E(Y) -
皮尔逊相关性系数,所以相当于是将协方差经过了标准化,最终处在-1~1之间:
九、回归分析方法
基础理论:
- 求解方法:最小二乘法
-
回归方程的显著性校验:校验的是回归系数是否为0,利用回归均方(预测数据和均值的差值均方)和残差均方(预测数据和实际数据的差值均方)的比值符合F分布:
- 回归方程的拟合校验:显著性校验的是相关系数是否不为0,拟合校验校验的是常数项+常数项系数(两者共同构成了回归方程)与随机误差之间的一个比率关系,显然也是F分布。这个拟合其实校验的是误差水准问题,所以一般显著性都会设置到0.05,在这个情况下我们才认为拟合是有效的。但是实际应用中一般就是直接分析残差,远远不会用0.05这个水平来要求。
多元回归方程的显著性校验和拟合校验:
- 显著性校验:校验多个回归系数至少有一个不为0;
- 拟合校验:原理也是一样的,只是如果校验出来拟合效果不好的话,如何对指标进行调整(如果拟合不好的,实际需要的是新增,淘汰的话其实是在拟合情况比较好的情况下将无用指标给剔除):
a)淘汰法:第一次先尽量把所有的指标都纳入进去,然后逐个剔除检验;
b)纳新法:先把确定的变量选进去,然后逐渐添加变量;
c)逐步回归法:一边淘汰一边纳新
(所以在做回归的时候,是可以用这个方法来筛选和剔除指标的,思想就是看调整了变量之后的回归平方和和残差平方和的F分布是否明显(也有一个显著性水平))
回归模型正交化
正交化的目的只是为了计算,比如自变量有x1,x2和x3=x1*x2,这个时候明知变量中有相关性问题存在,正交化的计算最快。实际应该不会考虑这种情况,反正都是机器跑。
十、线性规划方法
基础理论:
-
线性规划的标准形式:
- 线性规划的标准形式:
所以一般形式要引入一个松弛变量变为标准形式求解。
线性规划的求解方法
知己用lingo吧骚年!
线性规划的对偶问题
-
典型的对偶问题:
原问题:
对偶问题:
-
拉格朗日对偶问题:
原问题:
可能约束无法转化为基可行解(因为不是线性约束),所以引入一个拉格朗日乘子(为什么是max?因为实际上是优化α和β的值,让其尽量很大,在不满足约束的时候有一个很大的值):
进一步,原始优化问题转化为:
然后先优化出x,再确定参数α和β。。。详细的优化步骤先省了,以后遇到了再看。
十一、整数规划方法
常用方法
- 分支界定发
- 切割法
- 0-1规划的穷举法(竟然是穷举)
- 总的来说还不如优化算法好使
十二、非线性规划方法
基础理论
- 存在局部极值和全局极值的问题。
- 海赛矩阵概念(二阶偏导)
- 局部极值的必要条件是梯度为0(一阶偏导),充分条件是梯度为0,然后海赛矩阵还有要求。
无约束规划的解法
- 梯度法(最速下降法):就每次按最大梯度方向走,但是梯度法的步长很影响效率,我搜了一下网上,关于步长的确定有几种方法,没有最优的一种通用方法。(文中给的一个步长应该是结合了海赛矩阵给的一个保证肯定能够到达一个更优值的步长,但是似乎也没有什么意义,对计算机而言,还不如固定步长来得快呢)。
- 共轭梯度法:umm,适用于求解正定二次函数的规划
- 牛顿法:也是求解正定二次函数的规划
Umm,所以看了这些之后,大概心里有数,求解非线性规划一般就是梯度法、爬坡法还有其他的优化算法,因为其实也没有什么很标准的解法
有约束非线性规划的解法
- 广泛采用惩罚函数方法。。
十三、动态规划方法
我认为真正的动态规划问题,其实是类似于马尔可夫链的那种问题,这里其实没有涉及到这么高深。反而是把本来可以用静态规划方法求解的,转化成动态来求解。
十四、排队论方法
基础理论
- X/Y/Z/A/B/C模型表示:
X:相继到达的时间
Y:服务时间
Z:服务台数目
A:系统容量限制
B:顾客源数目
C:服务规则
(X,Y一般有几种典型的分布方式:负指数分布、泊松分布、爱尔朗分布) - 运行指标:
队长
排队长
逗留时间
等待时间
服务机构连续工作时间
损失率
服务强度 - 优化目标:
静态最优化:优化系统的配置,包括服务机构规模大小、个数等
动态最优化:根据系统情况寻求运营机制
XY分布
分布才是排队论的理论核心,在确定了分布之后,你甚至可以直接用蒙特卡洛模拟出排队结果嘛。
- 泊松分布:泊松分布就是典型的随机时间分布,原理是把时间段切割到足够短,这样每个时间段只有事件发生/未发生,而且每个时间段事件的发生与否完全独立。换做排队问题就是,把1个小时分为60分钟或者3600秒,每秒有人排队的概率是多少。
- 负指数分布(其实就是指数分布):泊松分布是t时间内有多少人来排队的概率,而负指数分布式在此基础上求解的后一个顾客到来所需的时间的分布。
- 爱尔朗分布:有串列的k个服务台,一个顾客在接受完k个服务台的总时间所服从的分布(其实就是负指数分布的拓展)
十五、对策论方法
二人有限零和对策的基本模型:
- 确定模型:根据双方策略集,确定双方的赢得值矩阵(双方互为相反),整体模型极为G={S1,S2;A}
- 确定最优策略:根据矩阵可以确定最优解,可以看出,这个解是根据对方的选择,自己再做出最优的选择,所以是先min(对方会想方设法让自己min),然后自己想方设法max
- 对策的鞍点:umm,好像就是最优解啊,鞍点就是最平衡的局势,是双方博弈后的最优解
二人有限零和对策的混合策略:
(双方为了获取更多的利益,会根据概率来博弈)
- 确定模型:双方选择策略是根据概率选择的,不同策略对垒是有一个赢得值,所以在此基础上可以构建赢得矩阵和函数
- 最优策略:这个是要优化双方的概率选择,从而保证赢得最优
二人有限非零和对策:
- 纳什平衡点:是双方博弈后的一个平衡点
- 在此基础上有不同的解的定义:
(1)严格意义下的解:首先是有一个帕累托最优策略对的集合,然后如果里面存在纳什平衡点,那肯定这个解就是最优解(因为博弈后还会达到共同最优,那肯定大家都会选这个点),但显然囚犯问题的解不是严格意义下的解
(2)完全弱意义下的解:似乎就是纳什平衡点里面的一个最优解,但并不是全局的最优解 - 进一步如果考虑双方存在合作关系:那就有一个概率违约的问题,最终其实也只是根据概率求期望再确定最优策略。
(总的来说,对策论要么就是求一个最优的赢得值,要么就是求一个概率保证能够有更大的赢得值)
十六、随机性决策分析方法
基础理论
- 主观概率:通常不能利用大量重复试验来确定其概率分布,因此只能由决策人主观地做出估计。
- 效用函数:就是做出不同决策所对应的带来的效用。
- 效用和风险理论:厌恶型、喜好型、中立型,因为效用函数其实对应一个概率问题,所以就对应一个风险,然后又设计决策者的风险偏好问题;效用可以单独计算,也可以把风险偏好考虑进去再进行综合折算,不过整体也是要进行折算的。不过有一种S型效用函数曲线很通用,反映的是财产一旦增加,则越发的追求高风险高收益。
- 损失函数:就是效用函数的负值,表示采用决策会收到多少损失,不过一般需要确定一个基准,让损失函数一定为负。
十七、第十七章多目标决策分析方法
在帕累托最优解中,再找最优解
十八、图论方法
图:
- 有向图/无向图
- 简单图:任两个顶点最多只有一条边,而且每条边端点不重合(不会像花瓣一样绕回自己),简单图就是比较常见的图啦。。。
- 完全图:任两个定点都有至少一条边,即都相邻。我们说的一般是简单完全图。
- 二分图:https://blog.csdn.net/li13168690086/article/details/81506044
二分图就是可以将所有顶点分为两个集合,集合里面的点互不相连,所有顶点的边只会连接另一个集合的点。二分图有比较多的理论,包括如何判定什么的。。。 - 连通图:任两个点都有路径可以实现连通,如果是无向图的话,不用考虑路径问题,否则必须是双向都有路径。连通图有点完全图的意思,但是一个是连通图有更严格的路径要求,一个是只要求两点有连通的路径,并不是一定两点直接相连。
连通图用Dijkstra迪克斯特拉算法可以实现求解。典型问题是制定城市到另一个城市去的最短路线
树:
- 可以从多个方法判定是不是树,一种判定是,无圈的连通图就是树。
- 典型问题是修路选线问题,已知一个大公路网中各个相邻城市的造假,设计一条路线使得整个公路往能够连通,同时造价最低。所以这不是上面那个求图中的最短路径的问题,而是寻求一个最小生成树,保证涵盖各个顶点(城市),而且总造价最低。
- 典型方法是Kruskal克鲁斯卡尔算法求解。
遍历
- 欧拉图:并不是所有连通图都能实现遍历,如果从一个顶点出发,每边恰通过一次能回到出发点,则成为欧拉图。
- 曼哈顿图:从一个顶点出发,每一个顶点恰通过一次能回到出发点。(欧拉图是点可以重复,边不能重复,哈密顿如果点不能重复的话,显然边也不会重复,所以哈密顿要求更高)
遍历的场景尚不清楚
解法
常采用匈牙利算法,暂时不研究。
图矩阵
- 邻接矩阵,即两个顶点相连则为1,否则为0(那两个顶点多条边怎么办???);
- 一个是关联矩阵,是给各个边进行编号,然后如果顶点和边相关则我1(这个好像没啥意义。。)
一个典型问题是循环赛/非循环赛的实力问题,可以把各个队伍当做一个顶点,然后可以得出邻接矩阵。(当然也可以认为是直接的矩阵求解。。)
书中还给出了一个婚配的案例,但是实际上可以直接线性规划求解的。。。线性规划其实适合很多问题,包括上面的决策等等。。。
十九、模糊数学方法
基础理论
- 隶属函数
-
隶属函数的确定方法:统计方法(统计n次中属于A的频次);指派方法(主观经验选取合适的分布函数):这里的偏大型就是x越大,隶属度越高;偏小型就是x越小隶属度越高;客观方法:比如“设备完好”就用设备完好率来作为隶属度。
- 模糊矩阵:论域U里面的子集和论域V里面的子集,两者的一个模糊相关关系。
模糊综合评判
总评分法、加权评分法
然后针对多层次模糊综合评判会涉及到一个矩阵的综合加权
典型场景
问题:中介机构有遵纪守法情况、纳税情况、奖惩情况等等维度的情况,建立综合评估问题。
看计算过程,理解起来还是比较简单,最直观的理解就是,比如针对几个指标,分为差、中、好三个等级,隶属度是一个隶属度矩阵,然后最终的展示结果就是经过加权之后的综合向量,比如是0.3,0.3,0.2,那就是经过模糊综合评判,整体属于差、中、好的隶属度分别是多少。
所以模糊综合评判方法最后也只是给你一个隶属于各个等级的隶属度,但如何确定他是好还是差,还是要再加一个指标判断,而综合评判方法给你提供的便利,只是让多级指标汇总而已。。。
模糊综合评判和AHP很大程度上都是解决一类型问题,就看怎么选择。
二十、灰色系统分析方法
个人觉得,灰色系统模型的应用场景一般都是用来对时间做回归预测,那还不如直接用回归呢。所以可能灰色系统模型基本不会采用?