收藏 分享(赏)

数学模型的建立和选择.doc

上传人:lxhqcj 文档编号:6600818 上传时间:2019-04-18 格式:DOC 页数:17 大小:109.63KB
下载 相关 举报
数学模型的建立和选择.doc_第1页
第1页 / 共17页
数学模型的建立和选择.doc_第2页
第2页 / 共17页
数学模型的建立和选择.doc_第3页
第3页 / 共17页
数学模型的建立和选择.doc_第4页
第4页 / 共17页
数学模型的建立和选择.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 数学模型的建立和选择 第 1 页 共 17 页数学模型的建立和选择目 录【 关 键 字】【摘 要】【正 文】一、从信息原型到数 学模型二、数 学模 型的建立2.1 机理分析法2.1.1 直接 建模法2.1.2 套用常用模型法2.1.3 针对修改 常用模 型法2.1.4 综 合创造法2.2 统 计分析法三、数学 模型 的选择四、总结【附 录】【程 序】【参 考书 目】数学模型的建立和选择 第 2 页 共 17 页【关键字】信息原型 数学模型 建模【摘 要】本文主要探讨的是信息学竞赛中解题的关键:数学模型的建立和选择。首先分析了从信息原型到数学模型的重要性,提出了解题的简单过程:现实理论现实。然

2、后将数学模型的建立方法分为机理分析法和统计分析法两类,并着重分析了在竞赛中常用的机理分析法建模。接着,文章又对数学模型的选择做了一些必要的概述,得出一些模型选择的原则。最后,根据整篇文章探讨的结果得出了数学模型建立和选择的一般方法。【正 文】一、 从信息原型到数学模型在大千世界中,我们所面对的事物形形色色,扑朔迷离。它们都是由许多信息构成的。这些现实世界中对客观问题表面的自然语言描述,称为信息原型。当然,在信息学竞赛中我们所面临的问题也是信息原型。信息原型本身是由扑朔迷离的信息构成,掩盖了其重要的属性 1。我们因而无法直接从信息原型入手找到问题的答案。为此,我们就需要一种方法来“改造”信息原型

3、,使之既具有原来的重要属性,也具有可研究性。于是,我们试图将信息原型的属性一起转移到一个模型中。模型即是对客观问题属性的模拟。显然,这个对应出的模型可以说是信息原型的代表。我们就可以对这个模型进行研究。用什么方法将信息原型对应到模型上去呢?我们期望运用数学方法。这样对应出的模型即具有原问题的属性又具有数学的可研究性。我们称之为数学模型。数学模型:运用数学语言对信息原型通过抽象加以翻译归纳的产物叫做数学模型。信息原型是现实的问题,对应到的数学模型又是理论上的模型,对该模型进行研究使我们得出了现实问题的解。这就是信息学竞赛中解题的简单过程:现实理论现实。如图一所示:为了能快速地从信息原型得到信息原

4、型的解,在整个分析解题的过程中,从信息原型到数学模型的这一转变过程至关重要。根据图一,我们称该过程为数学模型的建立和选择 第 3 页 共 17 页建模:利用数学思想将信息原型转化成数学模型的过程。下面,我们就将讨论:如何从信息原型到数学模型。二、 数学模型的建立从实践中积累的经验,我们知道,建模没有固定的套路可言,方法比较多样化。但总的来说一般分为机理分析法和统计分析法两大类。2.1 机理分析法【定 义】机理分析法:根据客观事物的特性,分析其内部的机理,弄清关系,在适当抽象的条件下,利用合适的数学工具得到描述事物属性的数学模型的方法。【图表描述】我们在信息学竞赛中常用这种方法建立模型,然后根据

5、所对应的算法求出解。如图二所示:由信息原型,我们运用机理分析法通过抽象建模得出数学模型,再根据得出的数学模型理论对应到算法,编程实现,通过算法的执行得到问题的解。【分 类】机理分析法也是多种多样的,我们在实际竞赛中往往各种机理分析方法混用,所以分类比较困难。根据建模的几个不同层次特点,一般将其分为四类:2.1.1 直接建模法【诠 释】信息原型 数学模型理论算法问题的解机理分析法算法的执行图二理论对应信息原型数学模型信息原型解建模算法决策图 一数学模型的建立和选择 第 4 页 共 17 页当信息原型比较简单,其属性显而易见时,我们通常用直接建模法。该方法可以说是将信息原型的显而易见的属性按数学方

6、法综合起来得出模型。这个得到的数学模型针对性强,不具有普遍意义。【分 析】实际上,该直接建模法是一种创造。但思维比较简单,没有理论上的新发现,我们称为一级创造。例如 NOI97 的竞赛排名一题,信息原型的各个属性十分明确,题目本身也有一定的抽象程度,性质大都由数学语言描述,更有利于我们直接建立简单的模型解题。在竞赛中我们一般遇到的这类题目主要考察我们怎样较好地将信息原型已知的属性按数学方法综合起来。建模方法既然有创造,就有摹仿。我们还经常摹仿已知的模型来建模。下面就要介绍两种摹仿建模的方法。2.1.2 套用常用模型法【诠 释】建模时,我们抽象数学模型的方向往往向已知的常用模型上靠拢,而且一旦符

7、合,就直接建立已知的模型,并且完全套用其算法。【举例分析】下面我们就结合 NOI99 的 01 串问题进行分析。例 1 01 串问题 2 这道试题信息原型很好地将数学模型遮掩了起来,使我们比较难从中理出头绪。首先还是来分析一下该题的信息原型的主要属性:设序列 S 为问题的一个解,则其一定满足:1. si=0 或 si=1,1k 的时候,第 k 大的数一定在左边部分,右边部分就不用继续排序了;当 x(n2+(m+n)n-(n+m)2)2=1=(n2+mn+n2-n2-2mn-m2)2=1=(n2-mn-m2)2=1 成立以上各步可逆,所以当(n,m)是方程(n 2-mn-m2)2=1的一组解时,

8、(n+m,n)一定是方程的另一组解 1。 (附程序 max.pas)【小 结】原本奇妙的信息原型在简单的测试数据面前被揭开了神秘的面纱。这道题目正是统计分析法的有效运用。但要注意到,不是每个信息原型都能用统计分析法建模:因为我们有时候根本无法求出问题的部分解,或者无法根据问题的部分解用数理统计知识加以分析。所以,在图五中,这两个过程我们用的是虚线。统计分析法虽然在近年来的竞赛中出现次数不多,但作为与机理分析法相对的一大类方法,在其他众多领域广泛运用,其应用于信息学的潜力也是巨大的。分析完以上两种方法,我们脑海中显然已经有这么一个思想:既然有多个建模方法,建立的模型也多种多样,那如何选择呢?下面

9、,我们就简单讨论一下如何选择数学模型。三、 数学模型的选择【理论描述】信息原型就好比一个“黑匣子” ,我们在里面进行盲人摸象似的探索。角度多种多样,建立数学模型还是有所区别的。如果一个信息原型能对应多个数学模型(如图六所示) ,这时,我们就面临抉择。当然,我们期望所选择的模型是最好的。那么这就涉及到对模型的评价问题。我们在竞赛中建立模型后要对应到算法,那么对一个数学模型评价自然要着重于其对应算法的好坏。1 该推理证明为作者自己证明,若有错误之处,还请指正。数学模型的建立和选择 第 10 页 共 17 页一般地,评价一个数学模型有以下几个原则:1时间复杂度一个好的算法一般效率比较高。在竞赛中,试

10、题常常会做一些算法运行时间上的限制。这就要求我们所建立的数学模型对应算法的效率一定要符合要求。这也是最重要的一个原则。2空间复杂度出于计算机自身的限制,程序在运行时一般只被提供 500k 的内存空间。这也就要求我们建立模型时顾及到这一点。但对于模型对应的算法来说,并不是要求空间越低越好,只要不超过内存限制就可以了。3编程复杂度相对而言, “编程复杂度”的要求要略低一些。但是在竞赛中,如果建立的算法实现起来十分繁琐,自然不利于比赛。所以,在建立模型时(特别是在竞赛中)这点也要纳入考虑之中。【分类分析】面对多种数学模型的选择,大致下有两种情况:1同种思想方法的不同实现方法例如 IOI99 的 CO

11、DES 一题,同样是动态规划的思想,却有两种不同的实现方法,这两种截然不同的动态规划算法各有千秋。2不同思想方法的各种实现方法通常来说,有向无环图中的费用流问题在理论上都可以用动态规划来解决。这就造成了可能一道题目对应两种截然不同的思想算法:动态规划和最大流。当我们面对一道题目既可以用动态规划又可以用最大流的时候,我们一般选取动态规划算法。原因在于,最大流算法的实现是比较困难的,而且在图的建立方面要花费很大功夫,例如 IOI93 的最佳旅行路线一题,邵铮同学所出的艺术品出售一题,都是既可用动态规划又可用最大流解决的。当然,这里不同的思想方法并不仅仅局限于动态规划和最大流,还包括许多其他的思想方

12、法,例如最小生成树有有两种经典的思想方法。这还是要针对实际情况针对分析。【小 结】实际上,多种数学模型的选择主要考察的是选手对所要建立的模型的时空复杂度分析能力。在竞赛中,我们很少一下建立几个模型然后从中选择(因为时间不允许) ,而是在分析中,选择一个较好地建模方向。图 六信息原型机理分析统计分析数学模型 1数学模型 2数学模型 3理论算法信息原型的解算法执行选择其一数学模型的建立和选择 第 11 页 共 17 页比如我们发现一道题目可能对应几种不同思想的模型,就要根据评价模型的标准来衡量一下,确定一个模型作为分析方向。这时的评价标准除了上述的时间、空间、编程三个标准外,还要加上一个思维的复杂

13、度。所谓思维的复杂度,是指思考所耗费的时间和精力。如果我们确定了一个模型作为分析的方向(没有考虑思维复杂度) ,从信息原型到该数学模型的建模过程却十分复杂,导致思维耗费时间长,精力多,那自然是不好的。就像上面的例子一样,面对最大流和动态规划两个模型,我们不用最大流,原因还在于其思维的复杂度。最大流所对应的图,点,边,流量,费用等等的意义确定是十分麻烦的,相反,动态规划模型我们较为熟悉,建模的思维复杂度小,因而颇受青睐。总的来说,对于多种数学模型的选择,我们遵循“边分析,边选择,四个标准来衡量”的原则。四、 总 结通过上面的分析,我们大体已经得出了建立数学模型的过程。将上面几幅图结合起来,得到的

14、图七就充分展现了建模解题的过程。我们甚至可以说,解决一个题目就是求图七中从“信息原型”到“全集 I”的“最优路径” 。运用机理分析法建立一个正确高效的数学模型一般按如下步骤进行:1用自己的语言复述问题这实际上是从自然语言上对信息原型的转化,有利于我们抓住其主要属性;2用数学的语言复述问题我们抓住了信息原型的主要属性,接着用数学语言描述出来。实际上是将信息原型进行抽象,以建立适当的数学模型;3联想有关的知识事实上,当我们用数学语言描述信息原型时,如果所得结果简单明了,可以直接形成算法或构造简单模型。我们就运用机理分析法一来解决了信 息 原 型数学模型 A数学理论上的对问题的分析、控制和决策(即理

15、论算法) 。?某种方法机理分析法 1;机理分析法 2;图七算法执行理论对应数学模型 B数学模型 C全集 I部分解集A数理统计 经过选择数学模型的建立和选择 第 12 页 共 17 页(即一级创造) 。如果不行,则需要“联想有关知识” 。这实际上是往“一级摹仿”靠近。主要联想的是相似的信息原型或存在关系的已知数学模型。4推出有用的事实如果联想到的知识可以帮我们建立数学模型。那么,我们自然可以套用算法解题了。但进一步延伸下去,也就是达到“二级摹仿” 。我们针对该信息原型的特有属性,得出某些“有用”的事实来改进优化模型和算法。5大胆的创造当然,通过以上四步,我们能够较好的建立一个正确高效数学模型就不

16、错了。但通过上述四步,我们很可能在脑海中酝酿着模糊的新模型。不要埋没它,大胆的创造,很有可能建立一种新的具有广泛适用性的模型或一套新的方法体系。这也就是我们所说的“二级创造” 。当然,还有统计分析法。一般来说,我们先用机理分析法进行分析,如果机理分析进行不下去的时候在用统计分析法。还有就是当问题的数学性强,容易找到部分简单解的情况下,我们优先考虑统计分析法。事实上,往往我们的机理分析得出的某些结论会有效的运用于统计分析法;而统计分析法得出的某些规律也可能被运用到机理分析当中。所以,这两者并不是相对孤立的。我们在建模的时候也完全可以将两者混用。建立完模型,我们任务才完成了一半。如果可建立的模型有

17、多个,还要根据各个模型的时间,空间,编程三个复杂度来选择。最后还要反复不断的将整个模型完善。这才真正建立完一个准确高效的数学模型。【附 录】1 属性,即一个事物不可缺少的性质。在这里指的是决定信息原型的一切机理特征。2 01 串题目给定 7 个整数 N,A0,B0,L0,A1,B1,L1,要求设计一个 01 串S=s1s2sisN,满足:A. si=0 或 si=1,10) and (datai+wj=0)then begin finish:=false; datai+pj:=datai+wj;end;until finish;end;procedure out; 输出过程vari :Word

18、;beginassign(output,outfns);rewrite(output);if datan=2570 判断无解情况then writeln(-1)elsebeginwrite(0); 输出时,要将 data 转变回 01 串序列for i:=1 to n-1 dowrite(datai-datai-1);writeln;end;close(output);end;begininit;main;out;end.求第 k 大的数 program sort;typeTdata = array 110000 of Word;vardata :Tdata;n,k :Word;数学模型的建立

19、和选择 第 15 页 共 17 页procedure out(x:Word); 输出答案beginwriteln(datax);halt;end;procedure swap(var a,b:Word); 交换 a 和 bvartmp :Word;begintmp:=a;a:=b;b:=tmp;end;procedure get_mid(head,tail:integer;var x:integer); 寻找分治点 xvari,j :integer;m :Word;begini:=head+random(tail-head+1);swap(datahead,datai); 随机化i:=head

20、-1; j:=tail+1; m:=datahead;while true dobeginrepeat j:=j-1;until dataj=m;if i=jthenbeginx:=j;exit;endelse swap(datai,dataj);end;end;procedure quicksort(head,tail:integer); 排序主程序varx :integer;begin数学模型的建立和选择 第 16 页 共 17 页if headtail then exit;get_mid(head,tail,x);if xk then quicksort(head,x)else if x

21、1000000000) then halt;如果 k 不在要求范围内,就终止m:=1; n:=1; next:=m+n; 确定斐波拉契数列的头三项while next=k do 顺推,求出 m,n 的最大值beginm:=n; n:=next;next:=m+n;end;writeln(M= ,m); writeln(N= ,n);end.【参考书目】数学模型的建立和选择 第 17 页 共 17 页1 数学思维能力的训练 广东人民出版社 19922 IOI98 中国集训队优秀论文集 IOI 中国集训队 信息学奥林匹克编辑部 19993沈继红 施久玉等编著 数学建模 哈尔滨工程大学出版社 19984王树禾 编著 数学模型基础 中国科学技术大学出版社 19975徐利治 编著 数学抽象与数学抽象方法 1990

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 高中教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报