—般说来建立数学模型的方法大体上可分为两大类、一类是机理分析方法,一类是测试分析方法.机理分析是根据对现实对象特性的认识、分析其因果关系,找出反映内部机理的规律,建立的模型常有明确的物理或现实意义.
模型准备 首先要了解问题的实际背景,明确建模的目的搜集建模必需的各种信息如现象、数据等,尽量弄清对象的特征,由此初步确定用哪一类模型,总之是做好建模的准备工作.情况明才能方法对,这一步一定不能忽视,碰到问题要虚心向从事实际工作的同志请教,尽量掌握第一手资料.
模型假设 根据对象的特征和建模的目的,对问题进行必要的、合理的简化,用精确的语言做出假设,可以说是建模的关键一步.一般地说,一个实际问题不经过简化假设就很难翻译成数学问题,即使可能,也很难求解.不同的简化假设会得到不同的模型.假设作得不合理或过份简单,会导致模型失败或部分失败,于是应该修改和补充假设;假设作得过分详细,试图把复杂对象的各方面因素都考虑进去,可能使你很难甚至无法继续下一步的工作.通常,作假设的依据,一是出于对问题内在规律的认识,二是来自对数据或现象的分析,也可以是二者的综合.作假设时既要运用与问题相关的物理、化学、生物、经济等方面的知识,又要充分发挥想象力、洞察力和判断力,善于辨别问题的主次,果断地抓住主要因素,舍弃次要因素,尽量将问题线性化、均匀化.经验在这里也常起重要作用.写出假设时,语言要精确,就象做习题时写出已知条件那样.
模型构成 根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量(常量和变量)之间的等式(或不等式)关系或其他数学结构.这里除需要一些相关学科的专门知识外,还常常需要较广阔的应用数学方面的知识,以开拓思路.当然不能要求对数学学科门门精通,而是要知道这些学科能解决哪一类问题以及大体上怎样解决.相似类比法,即根据不同对象的某些相似性,借用已知领域的数学模型,也是构造模型的一种方法.建模时还应遵循的一个原则是,尽量采用简单的数学工具,因为你建立的模型总是希望能有更多的人了解和使用,而不是只供少数专家欣赏.
模型求解 可以采用解方程、画图形、证明定理、逻辑运算、数值计算等各种传统的和近代的数学方法,特别是计算机技术.
模型分析 对模型解答进行数学上的分析,有时要根据问题的性质分析变量间的依赖关系或稳定状况,有时是根据所得结果给出数学上的预报,有时则可能要给出数学上的最优决策或控制,不论哪种情况还常常需要进行误差分析、模型对数据的稳定性或灵敏性分析等.
模型检验 把数学上分析的结果翻译回到实际问题,并用实际的现象、数据与之比较,检验模型的合理性和适用性.这一步对于建模的成败是非常重要的,要以严肃认真的态度来对待.当然,有些模型如核战争模型就不可能要求接受实际的检验了.模型检验的结果如果不符合或者部分不符合实际,问题通常出在模型假设上,应该修改、补充假设,重新建模.有些模型要经过几次反复,不断完善,直到检验结果获得某种程度上的满意.
模型应用 应用的方式自然取决于问题的性质和建模的目的,这方面的内容不是本书讨论的范围。
应当指出,并不是所有建模过程都要经过这些步骤,有时各步骤之间的界限也不那么分明.建模时不应拘泥于形式上的按部就班,本书的建模实例就采取了灵活的表述方式
1. 预测模块:灰色预测、时间序列预测、神经网络预测、曲线拟合(线性回归);
2. 归类判别:欧氏距离判别、fisher判别等 ;
3. 图论:最短路径求法 ;
4. 最优化:列方程组 用lindo 或 lingo软件解 ;
5. 其他方法:层次分析法 马尔可夫链 主成分析法 等 。
建模常用算法,仅供参考:
1. 蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决 问题的算法,同时间=可以通过模拟可以来检验自己模型的正确性,是比赛时必 用的方法) 。
2. 数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数 据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab 作为工具) 。
3. 线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多 数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通 常使用Lindo、Lingo 软件实现) 。
4. 图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算 法,涉及到图论的问题可以用这些方法解决,需要认真准备) 。
5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算 法设计中比较常用的方法,很多场合可以用到竞赛中) 。
6. 最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些 问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助, 但是算法的实现比较困难,需慎重使用) 。
7. 网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很 多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种 暴力方案,最好使用一些高级语言作为编程工具) 。
8. 一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计 算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替 积分等思想是非常重要的) 。
9. 数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分 析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编 写库函数进行调用) 。
10. 图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文 中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问 题,通常使用Matlab 进行处理)。
这些是以前在网上整理的:要重点突破:1 预测模块:灰色预测、时间序列预测、神经网络预测、曲线拟合(线性回归);2 归类判别:欧氏距离判别、fisher判别等 ;3 图论:最短路径求法 ;4 最优化:列方程组 用lindo 或 lingo软件解 ;5 其他方法:层次分析法 马尔可夫链 主成分析法 等 ;6 用到软件:matlab lindo (lingo) excel ;7 比赛前写几篇数模论文。
这是每年参赛的赛提以及获奖作品的解法,你自己估量着吧……赛题 解法 93A非线性交调的频率设计 拟合、规划 93B足球队排名 图论、层次分析、整数规划 94A逢山开路 图论、插值、动态规划 94B锁具装箱问题 图论、组合数学 95A飞行管理问题 非线性规划、线性规划 95B天车与冶炼炉的作业调度 动态规划、排队论、图论 96A最优捕鱼策略 微分方程、优化 96B节水洗衣机 非线性规划 97A零件的参数设计 非线性规划 97B截断切割的最优排列 随机模拟、图论 98A一类投资组合问题 多目标优化、非线性规划 98B灾情巡视的最佳路线 图论、组合优化 99A自动化车床管理 随机优化、计算机模拟 99B钻井布局 0-1规划、图论 00A DNA序列分类 模式识别、Fisher判别、人工神经网络 00B钢管订购和运输 组合优化、运输问题 01A血管三维重建 曲线拟合、曲面重建 01B 工交车调度问题 多目标规划 02A车灯线光源的优化 非线性规划 02B彩票问题 单目标决策 03A SARS的传播 微分方程、差分方程 03B 露天矿生产的车辆安排 整数规划、运输问题 04A奥运会临时超市网点设计 统计分析、数据处理、优化 04B电力市场的输电阻塞管理 数据拟合、优化 05A长江水质的评价和预测 预测评价、数据处理 05B DVD在线租赁 随机规划、整数规划 算法的设计的好坏将直接影响运算速度的快慢,建议多用数学软件( Mathematice,Matlab,Maple, Mathcad,Lindo,Lingo,SAS 等),这里提供十种数学 建模常用算法,仅供参考: 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决 问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必 用的方法) 2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数 据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab 作为工具) 3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多 数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通 常使用Lindo、Lingo 软件实现) 4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算 法,涉及到图论的问题可以用这些方法解决,需要认真准备) 5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算 法设计中比较常用的方法,很多场合可以用到竞赛中) 6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些 问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助, 但是算法的实现比较困难,需慎重使用) 7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很 多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种 暴力方案,最好使用一些高级语言作为编程工具) 8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计 算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替 积分等思想是非常重要的) 9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分 析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编 写库函数进行调用) 10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文 中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问 题,通常使用Matlab 进行处理)。
第一、模型准备 首先要了解问题的实际背景,明确建模目的,搜集必需的各种信息,尽量弄清对象的特征。
第二、模型假设 根据对象的特征和建模目的,对问题进行必要的、合理的简化,用精确的语言作出假设,是建模至关重要的一步。如果对问题的所有因素一概考虑,无疑是一种有勇气但方法欠佳的行为,所以高超的建模者能充分发挥想象力、洞察力和判断力,善于辨别主次,而且为了使处理方法简单,应尽量使问题线性化、均匀化。
第三、模型构成 根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量间的等式关系或其它数学结构。这时,我们便会进入一个广阔的应用数学天地,这里在高数、概率老人的膝下,有许多可爱的孩子们,他们是图论、排队论、线性规划、对策论等许多许多,真是泱泱大国,别有洞天。
不过我们应当牢记,建立数学模型是为了让更多的人明了并能加以应用,因此工具愈简单愈有价值。 第四、模型求解 可以采用解方程、画图形、证明定理、逻辑运算、数值运算等各种传统的和近代的数学方法,特别是计算机技术。
一道实际问题的解决往往需要纷繁的计算,许多时候还得将系统运行情况用计算机模拟出来,因此编程和熟悉数学软件包能力便举足轻重。 第五、模型分析 对模型解答进行数学上的分析。
"横看成岭侧成峰,远近高低各不"。能否对模型结果作出细致精当的分析,决定了你的模型能否达到更高的档次。
还要记住,不论那种情况都需进行误差分析,数据稳定性分析。
2常用的建模方法(I)初等数学法。
主要用于一些静态、线性、确定性的模型。例如,席位分配问题,学生成绩的比较,一些简单的传染病静态模型。
(2)数据分析法。从大量的观测数据中,利用统计方法建立数学模型,常见的有:回归分析法,时序分析法。
(3)仿真和其他方法。主要有计算机模拟(是一种统计估计方法,等效于抽样试验,可以离散系统模拟和连续系统模拟),因子试验法(主要是在系统上做局部试验,根据试验结果进行不断分析修改,求得所需模型结构),人工现实法(基于对系统的了解和所要达到的目标,人为地组成一个系统)。
(4)层次分析法。主要用于有关经济计划和管理、能源决策和分配、行为科学、军事科学、军事指挥、运输、农业、教育、人才、医疗、环境等领域,以便进行决策、评价、分析、预测等。
该方法关键的一步是建立层次结构模型。
数学建模(mathematical modeling)就是通过建立数学模型来解决各种实际问题的方法。数学建模没有固定的格式和标准,也没有明确的方法,通常有6个步骤:
明确问题
合理假设
搭建模型
求解模型
分析检验
模型解释
1、明确问题
数学建模所处理的问题通常是各领域的实际问题,这些问题本身往往含糊不清,难以直接找到关键所在,不能明确提出该用什么方法。因此建立模型的首要任务是辨明问题,分析相关条件和问题,一开始尽可能使问题简单,然后再根据目的和要求逐步完善。
2、合理假设
作出合理假设,是建模的一个关键步骤。一个实际问题不经简化、假设,很难直接翻译成数学问题,即使可能也会因其过于复杂而难以求解。因此,根据对象的特征和建模的目的,需要对问题进行必要合理地简化。
合理假设的作用除了简化问题,还对模型的使用范围加以限定。
作假设的依据通常是出于对问题内在规律的认识,或来自对数据或现象的分析,也可以是两者的综合。作假设时,既要运用与问题相关的物理、化学、生物、经济、机械等专业方面的知识,也要充分发挥想象力、洞察力和判断力,辨别问题的主次,尽量使问题简化。
为保证所作假设的合理性,在有数据的情况下应对所作的假设及假设的推论进行检验,同时注意存在的隐含假设。
3、搭建模型
搭建模型就是根据实际问题的基本原理或规律,建立变量之间的关系。
要描述一个变量随另一个变量的变化而变化,最简单的方法是作图,或者画表格,还可以用数学表达式。在建模中,通常要把一种形式转换成另一种形式。将数学表达式转换成图形和表格较容易,反过来则比较困难。
用一些简单典型函数的组合可以组成各种函数形式。使用函数解决具体的实际问题,还比须给出各参数的值,寻求这些参数的现实解释,往往可以抓住问题的一些本质特征。
4、求解模型
对模型的求解往往涉及不同学科的专业知识。现代计算机科学的发展提供了强有力的辅助工具,出现了很多可进行工程数值计算和数学推导的软件包和仿真工具,熟练掌握数学建模的仿真工具可大大增强建模能力。
不同数学模型的求解难易不同,一般情况下很多实际问题不能求出解析解,因此需要借助计算机用数值的方法来求解,在编写代码之前要明确算法和计算步骤,弄清初始值、步长等因素对结果的影响。
5、分析检验
在求出模型的解后,必须对模型和“解”进行分析,模型和解的适用范围如何,模型的稳定性和可靠性如何,是否到达建模目的,是否解决了问题?
数学模型相对于客观实际不可避免地会带来一定误差,一方面要根据建模的目的确定误差的允许范围,另一方面要分析误差来源,想办法减小误差。
一般误差有以下几个来源,需要小心分析检验:
模型假设的误差:一般来说模型难以完全反映客观实际,因此需要做不同的假设,在对模型进行分析时,需要对这些假设小心检验,分析比较不同假设对结果的影响。
求近似解方法的误差:一般来说很难得到模型的解析解,在采用数值方法求解时,数值计算方法本身也会有误差。这类误差许多是可以控制的。
计算工具的舍入误差:在用计算器或计算机进行数值计算时,都不可避免由于机器字长有限而产生舍入误差,如果进行了大量运算,这些误差的积累是不可忽视的。
数据的测量误差:在用传感器、调查问卷等方法获得数据时,应注意数据本身的误差。
6、模型解释
数学建模的最后阶段是用现实世界的语言对模型进行翻译,这对使用模型的人深入了解模型的结果是十分重要的。模型和解是否有实际意义,是否与实际证据相符合。这一步是使数学模型有实际价值的关键一步。
相关阅读
数学模型和数学建模介绍
数学建模常用的
模型种类
用字母、数字和其他数学符号构成的等式或不等式,或用图表、图像、框图、数理逻辑等来描述系统的特征及其内部联系或与外界联系的模型。它是真实系统的一种抽象。数学模型是研究和掌握系统运动规律的有力工具,它是分析、设计、预报或预测、控制实际系统的基础。数学模型的种类很多,而且有多种不同的分类方法。
静态和动态模型
静态模型是指要描述的系统各量之间的关系是不随时间的变化而变化的,一般都用代数方程来表达。动态模型是指描述系统各量之间随时间变化而变化的规律的数学表达式,一般用微分方程或差分方程来表示。经典控制理论中常用的系统的传递函数也是动态模型,因为它是从描述系统的微分方程变换而来的(见拉普拉斯变换)。
分布参数和集中参数模型
分布参数模型是用各类偏微分方程描述系统的动态特性,而集中参数模型是用线性或非线性常微分方程来描述系统的动态特性。在许多情况下,分布参数模型借助于空间离散化的方法,可简化为复杂程度较低的集中参数模型。
连续时间和离散时间模型
模型中的时间变量是在一定区间内变化的模型称为连续时间模型,上述各类用微分方程描述的模型都是连续时间模型。在处理集中参数模型时,也可以将时间变量离散化,所获得的模型称为离散时间模型。离散时间模型是用差分方程描述的。
随机性和确定性模型
随机性模型中变量之间关系是以统计值或概率分布的形式给出的,而在确定性模型中变量间的关系是确定的。
参数与非参数模型
用代数方程、微分方程、微分方程组以及传递函数等描述的模型都是参数模型。建立参数模型就在于确定已知模型结构中的各个参数。通过理论分析总是得出参数模型。非参数模型是直接或间接地从实际系统的实验分析中得到的响应,例如通过实验记录到的系统脉冲响应或阶跃响应就是非参数模型。运用各种系统辨识的方法,可由非参数模型得到参数模型。如果实验前可以决定系统的结构,则通过实验辨识可以直接得到参数模型。
线性和非线性模型
线性模型中各量之间的关系是线性的,可以应用叠加原理,即几个不同的输入量同时作用于系统的响应,等于几个输入量单独作用的响应之和。线性模型简单,应用广泛。非线性模型中各量之间的关系不是线性的,不满足叠加原理。在允许的情况下,非线性模型往往可以线性化为线性模型,方法是把非线性模型在工作点邻域内展成泰勒级数,保留一阶项,略去高阶项,就可得到近似的线性模型。
组合数学(combinatorial mathematics) 有人认为广义的组合数学就是离散数学,也有人认为离散数学是狭义的组合数学和图论、代数结构、数理逻辑等的总称。
但这只是不同学者在叫法上的区别。总之,组合数学是一门研究离散对象的科学。
随着计算机科学的日益发展,组合数学的重要性也日渐凸显,因为计算机科学的核心内容是使用算法处理离散数据。 狭义的组合数学主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。
组合数学的主要内容有组合计数、组合设计、组合矩阵、组合优化等。 binatorics.net.cn/binatorics.net/cfc/。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.323秒