大家好,又见面了,我是你们的朋友全栈君。
一,数学模型分类
本人在大学时期 待了两年的数学建模社团,也参加过国赛,最近有些许感性,想以此纪念一下。
首先,既然是数学建模,就离不开模型,具体的模型有哪些呢?
按建立模型的数学方法,数学模型主要分为以下几种:
几何模型、代数模型、规划模型、优化模型、微分方程模型、统计模型、概率模型、图论模型、决策模型等。
想要完成一篇优秀的数模论文,我们需要对建模方法有基本的了解,审题时可以找出最适合的方法。
二、建模方法分类
常用的方法有:
1.类比法、2.二分法、3.量纲分析法、4.图论法;5.差分法、6.变分法、7.数据拟合法、8.回归分析法
9.数学规划法(线性规划,非线性规划,整数规划,动态规划,目标规划)
10.机理分析、11.排队方法、12.决策方法,13.层次分析法、14.主成分分析法、15.因子分析法
16.聚类分析法、17.TOPSIS法、18.模糊评判方法、19.时间序列方法;
20.灰色理论方法、21. 蒙特卡罗法、22. 现代优化算法(模拟退火算法、遗传算法、神经网络法)等。
代码语言:javascript复制别看方法有这么多,但究其实际操作,了解主要原理即可,更应该看重在何处,如何使用模型。
毕竟比赛考察的是解决问题的思维,而不是单纯的模型,算法。
1、类比法
类比法建模一般在具体分析该实际问题的各个因素的基础上,通过联想、归纳对各因素进行分析,并且与已知模型比较,把未知关系化为已知关系。
在不同的对象或完全不相关的对象中找出同样的或相似的关系,用已知模型的某些结论类比得到解决该“类似”问题的数学方法,最终建立起解决问题的模型。
2、二分法
二分法常用于数据的排序与查找,当数据量很大时宜采用该方法。
代码语言:javascript复制想象一本书找到其中一页有什么办法?
是不是要先从中间打开看页数是比目标页数大还是小,再选择靠近的一边
另一边再从中间打开,看页数是比目标页数大还是小。。。
如此反复,直至找到。即为简单的二分法。
3、量纲分析法
量纲分析法常用于定性地研究某些关系和性质,利用量纲齐次原则寻求物理量之间的关系,在数学建模过程中常常进行无量纲化。
无量纲化是根据量纲分析思想,恰当地选择特征尺度,将有量纲量化为无量纲量,从而达到减少参数、简化模型的效果。
代码语言:javascript复制想像一个单位为吨,一个单位为米,能相加减或者比大小吗?
去量纲的目的就是可以简化的得到单位不同的物理量之间的关联。
4、图论法
图论方法是数学建模中一种独特的方法,图论建模是指对一些抽象事物进行抽象、化简,并用图来描述事物特征及内在联系的过程,也是数学建模的一个必备工具。
图论是研究由线连成的点集的理论,一个图中的结点表示对象,两点之间的连线表示两对象之间具有某种特定关系(先后关系、胜负关系、传递关系和连接关系等)。
代码语言:javascript复制迪杰斯特拉算法当时比赛我还用过,用图论求最优路径和最短路径时可以优先考虑。
5、差分法
差分法的数学思想是通过taylor级数展开等方法,把控制方程中的导数,用网格节点上的函数值的差商代替进行离散;
从而建立以网格节点上的值为未知数的方程组,将微分问题转化为代数问题,是建立离散动态系统数学模型的有效方法。
差分法的解题步骤为:建立微分方程;构造差分格式;求解差分方程;精度分析和检验。
代码语言:javascript复制微积分棒棒的,所以说高数离散要好好学。
6、变分法(使用较少)
变分法用于处理函数的函数的数学领域,即泛函问题,和处理数的函数的普通微积分相对。 泛函可以通过未知函数的积分和它的导数来构造,最终寻求的是极值函数。变分问题的求解方法通常有两种:古典变分法和最优控制论。
代码语言:javascript复制变分法了解即可,用的很少了。
7、数据拟合法
在建立数学模型时,实际问题有时仅给出一组数据,处理这类问题较简单易行的方法是通过数据拟合法求得“最佳”的近似函数式———经验公式。
从几何上看就是找一条“最佳”的曲线,使之和给定的数据点靠得最近,即进行曲线拟合。
根据一组数据来确定其经验公式,一般可分为三步进行:
决定经验公式的形式
决定经验公式中的待定参数
进行模型检验
代码语言:javascript复制 俗称拟合,用最小二乘法,求出最优函数,matlab中有工具包
可以使用其补全缺失值 或 检查异常数据
和差值法有异曲同工之妙
8、回归分析法
回归分析方法是统计分析的重要组成部分,用回归分析方法来研究建模问题是一种常用的有效方法,一般与实际联系比较密切。
回归分析的主要内容:
- 从一组数据出发,确定这些变量(参数)间的定量关系(回归模型);
- 对模型的可信度进行统计检验;
- 从有关的许多变量中,判断变量的显著性;
- 应用结果是对实际问题作出的判断。
常见的回归模型有:一元线性回归模型、多元线性回归模型、非线性回归模型。
代码语言:javascript复制回归这个模块就比较大了,同时作用也非常大,涉及到统计学。
常常使用到的都是多元线性回归模型,用于 预测,分析时比拟合要更健壮的。
一般就用stata或者spss操作,操作方便。
9、数学规划法(适用于最优化、决策类问题)
(1)线性规划
线性规划问题的解法在变量比较少的情形下可以用图解法得到最优解,在变量比较多的情形下,一般借助于计算机编程求解。
(2)非线性规划
非线性规划问题(目标函数或约束条件中至少有一个非线性函数的最优化问题)的解法主要有罚函数法和近似规划法。
(3)整数线性规划
整数规划问题是要求决策变量取整数值的线性或非线性规划问题,可分为整数线性规划和整数非线性规划。求解整数规划的方法主要有分枝定界法和割平面法。
(4)动态规划
动态规划法主要用于解决多阶段决策过程问题的一种最优化方法,其基本思路是:
按时空特点,将复杂问题划分为相互联系的若干个阶段,在选定系统行进方向之后,逆着这个行进方向,从终点向始点计算,逐次对每个阶段寻找某种决策,使整个过程达到最优,故又称为逆序决策过程。
(5)目标规划
目标规划是在线性规划的基础上,为适应经济管理中多目标决策的需要而逐步发展起来的一个分支。
目标规划模型的建模步骤:确定目标值,列出目标约束与绝对约束;根据决策者的需要,将绝对约束转化为目标约束;给各目标赋予相应的优先因子;对同一优先等级中的各偏差变量,赋予相应的权系数。
代码语言:javascript复制涉及到运筹学,但其实高中就学了一些大概了,规划问题求最优解,一般使用matlab。
10、机理分析法
机理分析是根据对现实对象特性的认识,分析其因果关系,找出反映内部机理的规律。
该方法立足于揭示事物的内在规律,通过对数据和现象的分析,对事物内在规律做出猜想(模型假设)。
代码语言:javascript复制机理分析用途广,在物理、化学等领域都有特定作用。
一般都是为了解决专业性比较强的化学或动力学问题,a,b题
综合评价类问题:
11、层次分析法
适用于具有分层交错评价指标的目标系统,且目标值又难以定量描述的决策问题。
代码语言:javascript复制这是一个处理评价体系问题的 小白利器。
当初刚接触数学建模,我用的挺嗨的,但是弊端也非常明显。
评分标准都是自己编的,没有什么专家打分,得出的评分体系靠语言支撑。
但是初入门还是可以用用,也没有坏处。
因为其实评分模型都有点这个问题,可以考虑与topsis模型互补一下。
12、主成分分析法
利用降维的思想,把多个指标转化为少数几个综合指标。
代码语言:javascript复制机器学习的降维,很经典。
但主成分分析法最大的缺点就是,得出分类结果你有可能无法解释。
结果都解释不了,就不能放论文里了。
这时你可以考虑一下因子分析。
13、因子分析法
通过线性组合将原变量综合成几个主成分,用较少的综合指标来代替原来较多的指标。
代码语言:javascript复制这个因子分析比主成分分析更好用。
像是一个加强版的主成分分析法。
毕竟主成分分析法 得出分类结果还要你解释,因子分析却几乎解决了这个问题。
14、聚类分析法
样本或者变量之间存在不同的相似性,找出一些能够度量它们之间相似程度的统计量,作为分类的依据,再利用这些量将样本或者变量进行分类。
代码语言:javascript复制比方在一个圆内撒满豆子,你想把它们按范围分为3类,聚类就可以帮你做到。
甚至你想分几类就几类,其中的求距离方式常见的为 欧拉距离,当然也有其他的。
比较不同豆子之间的距离,将其划分为簇。
15、理想解法(TOPSIS法)
通过测度各个被测评对象的指标向量与评价的理想解和负理想解的性对距离进行测评排序,同时计算各评价对象的综合评价指数。
代码语言:javascript复制TOPSIS法是评价类的较稳定的方法,靠数据说话。
相对于熵权法,我个人比较看好topsis法。
16、模糊综合评价法
根据模糊数学的隶属度理论把定性评价转化为定量评价,用模糊数学对受到多种因素制约的事务或对象做出一个总体的评价。
代码语言:javascript复制模糊综合评价法也是评价体系的一个常用方法,在很多优秀论文中常出现。
一般是用其与其他模型搭配使用。
预测类问题:
17、时间序列法
系统中某一变量的观测值按时间序列(时间间隔相同)排列成一个数值序列,展示研究对象在一定时期内的变动过程;从中寻找和分析事物的变化特征、发展趋势和规律。
代码语言:javascript复制时间序列法和回归分析的模块大小相差不多,也是非常重要。
对于许多时间预测问题都可以用,例如要知道AR,MA,ARMA等的大致原理。
一般使用SPSS,时间序列里的专家建模模式会推选一个最优模型。很给力。
18、灰色理论方法
通过对原始数据的处理挖掘系统变动规律,建立相应微分方程,从而预测事物未来发展状况。
优点:对于不确定因素的复杂系统预测效果较好,且所需样本数据较小;
缺点:基于指数率的预测没有考虑系统的随机性,中长期预测精度较差。
代码语言:javascript复制 灰色系统方法是国内的邓聚龙八二年提出的,发展了进40年了。
如果用于预测:
最佳情况是因为已知数据不多,不多的标准大概为 大于10小于30。
如果大于了30那就用时间序列更好,毕竟灰色系统现在的争议还是挺大的。
美赛尽量不要用。
19、蒙特卡罗法(比赛常用,适用于排队论、检验类问题)
该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性。
当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时;
通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
蒙特卡罗方法的解题过程:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。
代码语言:javascript复制蒙特卡罗法,需要靠编程的队友会,用于检验模型的正确性,放到论文里有锦上添花的作用。
20、现代优化算法(适用于优化类、预测类问题)
最优化理论的三大非经典算法:模拟退火法、神经网络法、遗传算法。
它们主要用于解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用。
BP神经网络算法采用WidrowHoff学习算法和非线性可微转移函数的多层网络,在理论上可以逼近任意函数,可以用来分类、预测和建立模型等。
模拟退火算法是基于MonteCarlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。
遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
代码语言:javascript复制模拟退火、神经网络、遗传算法,这些涉及到的东西就更深了,三大非经典算法拿出一个都是万金油。
尤其是神经网络,就是机器学习中的知识。
靠计算机的训练学习,再通过校验,如此反复,迭代。得出模型。
究其原理就像一个无底洞,会用这个万金油即可。
另外两个都是用于求最优解,遗传模拟生物间的优胜劣汰,模拟退火随机择优。
还有一些话想说,再更叭。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190351.html原文链接:https://javaforall.cn