前言:中文期刊网精心挑选了数学建模算法与程序范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
数学建模算法与程序范文1
该课程研究的内容主要包含两部分:一是现实世界中的信息如何抽象并用数据的形式在计算机内的存储问题,也就是数据的结构;二是对存储的数据进行加工处理以获取新的信息的方法,也就是算法。这种课程既有很强的抽象性,同时也有很强的逻辑性和目标性。该类课程很适合采用任务驱动的教学模式。
2.1数学建模流程指导“数据结构”课堂教学过程的优化数学建模一般要经过分析问题、建立模型、模型求解、解决问题四个环节,而且后三个环节可以多次循环进行以便得到令人满意的结果。“数据结构”教学过程中可以按这样的思路来引出问题,进一步给出更好的算法,这样可以引导学生创新意识的培养和逻辑思维能力的提高。下面结合课程中排序部分讲到了“冒泡排序”算法来展示这个过程:}这样一个算法对任何一个10数据组都能进行正确排序,看似问题已经解决了,但这时应该让学生考虑:如果给出的一组数据2.2数学建模团队的协作模式启发“数据结构”课堂教学模式变革数学建模时问题复杂、信息多样、计算量大等特点决定了整个任务不是一人能完成的,需要一个分工协作较好的团队。只有准备充分、分工明确、精诚合作的团队才能取得好的成绩。受此启发,教学过程中,可以对于部分内容采用分组学习和讨论的方式进行。如在学习“队列”的时候,可以让学生分成几组,每一组首先通过资料查询等方法提出一个可以抽象为队列的实际问题(如火车调度问题、银行排队问题等),然后针对实际问题小组内展开讨论,进一步写出算法并验证。教师可以分时段地参与到不同的小组中讨论。2.3数学建模结果的实用性和高效性指导“数据结构”课堂教学评价数学建模的最终结果要求实用和高效。实用就是要求最终建立的数学模型及其算法能针对具体的问题给出正确的结果,否则就是错误的模型,整个过程是失败的。高效就是要求针对具体的问题提出的模型特别是算法所用时间是最短的,所需要的条件是最少的。“数据结构”课堂教学效果如何需要做出判断,如何判断才是合理的?课堂教学后可以通过考试或课程作业汇报等形式,针对具体的问题,看学生给出的算法是否真的能把问题解决了,将多个同类问题的算法做比较和评价,看是否有改进或创新。
3“数据结构”课堂教学为数学建模提供必要的能力储备
3.1在“数据结构”课堂教学中培养学生的抽象思维能力课堂教学中涉及到了数据组织的三大逻辑结构(即线性结构、树状结构和网状结构),在教学过程中多提出一些实际问题,然后针对这些问题引导学生利用所学知识进行问题抽象,最终把实际问题涉及到的对象用某种逻辑结构表示出来。这样学生的抽象思维能力会不断提高。下面讲一个例子:多叉路通灯管理问题[10]:某个城市的某一路口的道路交叉情况现状如图1所示,要求给出一个针对该路口的红绿灯管理方案,既要能高效地顺利通行又不会发生交通事故。图1路口的道路交叉情况示意图对于这个问题,如果只是针对图1宏观地去分析比较复杂而且不具备通用性,提出的问题应该是解决一类问题。结合“数据结构”的内容很容易想到用图状结构来解决,关键问题是怎样抽象为图状结构。抽象过程之一可以是这样:因为是通行道路交叉问题,因此通路是数据元素,不能通行可以抽象为关系,结合图1展示的现场情况,可以给出图2所示的通行关系图。图中颜色不同的顶点所代表的通路不能同时放行。3.2在“数据结构”课堂教学中培养学生的算法分析和创新能力“数据结构”课程一开始就提出算法效率以及分析方法,可见算法的效率的重要性。因此,后续经典算法讲解完都给出了算法分析思路,课堂教学中,也要重视这一点。在教学过程中应该有意识地通过讲解或讨论的形式,让学生习惯于这种算的的比较和分析,并在此基础上提出自己新的想法。比如文中第二部分第1点提到的“冒泡排序”算法的改进问题,就是一个很好的例子。再比如针对排序问题,课程中还提出了其它的算法,其中“选择排序”算法更为经典。算法如下:3.3在“数据结构”课堂教学中培养学生的动手能力“数据结构”课程一般有配套的实验课程,实验课程的主要内容就是课堂教学过程给出的算法的验证以及改进或新提出的算法的实现。实验过程需要学生用自己熟练掌握的语言工具通过在计算机上编写和调试对应的程序,通过程序的结果来检验算法的正确性与否。从这个角度来讲,锻炼和提高了学生的动手能力,这也正是数学建模中两个重要环节(即模型求解、解决问题)所必须的一种能力。
数学建模算法与程序范文2
关键词: 数学建模竞赛 教学模式 综合素质能力
江汉大学自2002年组队参加全国大学生数学建模竞赛,至今10多年了。最近一年内,在2013年2月派队参加美国数学建模大赛,获得一等奖,在4月份和5月份的网络杯赛中获得多项二等奖和三等奖,培养了一批优秀的数模人才。因此2013年我校的数模协会吸引了更多的学生加入,大家都渴望通过数模学习提高自己的创新能力和综合素质能力,并希望在数模比赛中获得好成绩。为了把将来的培训工作做得更好,我们从以下几个方面提出了培训改革方案,并在我校试点实行。
1.校内公开选拔人才作为后备基础
2013年7月11号开始,统计出《高等代数》或《数学分析》,《线性代数》或《高等代数》,《概率论和数理统计》这几门数学基础课平均分在75分以上的全校大二和大三学生,并向他们发出邀请,欢迎他们加入数学建模小组,再进行集中学习和择优,选出学员参加各类数学建模比赛。虽然数学建模能力与数学成绩没有太大的关系,但是大部分数学基础好的学生除基础知识扎实外,平时的学习积极性也很高,在数学建模小组中会以端正的态度对待,这些是必备的基础。
数学基础稍差的学生也可以参加,但要有一定的特长,如对算法熟悉,或能熟练操作excel,或有较强的写作能力。最重要的是要在培训学习一段时间后,经过考核有明显的进步。例如有一个机电系的学生对模拟退火算法有一定的研究,我们邀请他加入数学建模小组。
2.鼓励较早选修与数模相关的课程
数学建模竞赛的选题一般来源于工业、农业、工程技术和管理科学等方面,经过适当简化加工的实际问题,也就是说在建模中不能死板地用数学知识,而是要和实际知识相结合。
《运筹学》是一门利用统计学、数学模型和算法等方法,寻找复杂问题中的最佳或近似最佳的解答的学科。研究运筹学的基础知识包括图论、随机过程、离散数学,线性规划和非线性规划,优化理论和算法基础等。而在应用方面,多与仓储、物流、优化理论和算法等领域相关。因此运筹学是与应用数学、工业工程、计算机科学等专业密切相关的学科。学好了这门课再加上上述的三门数学基础课,整个数模所要求的知识就掌握了一大部分。因此,我们应该鼓励建模班的学生选修《运筹学》,由于我校采用的是选课制,因此实现起来并不难。同样,熟悉算法和编程能力也是数模中的一大特色和难点,是数学理论和实际应用中结合的重要环节。如果建立了很好的数学模型,不能有效利用计算机求解和计算,最终也是无效的,因此建议学生选修《数值计算方法》或《数学实验》等计算数学方面的至少一门课程。如果一个学生掌握好了三门数学基础课,再加上《运筹学》和《数学实验》(或《数值计算方法》),那他就具备了得奖的必要条件。
我们建议和指导学生选修这两门课,是要他们掌握这些课程中的相关知识,而不是硬要他们非选不可,不要让他们理解为是为了建模而选课。但是,在我校的数学专业,《运筹学》和《数值计算方法》是必修的课程;在工课专业,优化理论和数值计算也是很有必要学习的一门课;在经管等专业,《运筹学》也是必选课。在计算机和网络专业中,在他们的必修课《离散数学》中,也介绍了部分随机过程,图论方面的知识,对算法就更熟悉了。因此从整个参赛队伍来看,无论队员来自哪个专业,都可以在所在的专业学到所需的知识。我们要做的是将上述理由解释给他们听,为了建模而选的课和他们所学专业要求的选修课程并不冲突。但是很多学生习惯在大四时学一些更深的数学知识,我们建议他们较早地选这些课。我校学生大多数在大三时参加数模比赛,这就要他们在大二这一年熟悉优化算法、图论等方面的知识和上机写算法程序方面的能力。
3.充分利用网络教学资源
暑假50多天本是集中学习培训的好时机,但夏天天气热,学生宿舍简朴,只得让他们回家完成作业。今年暑期我们布置的作业之一是:看国防科技大学教授吴孟达主讲的九集视频公开课《数学建模——从自然走向理性》,看同济大学数模网上的资料,等等。到下次到校集中培训时,让他们交流学习体会和作数模专题的报告。
4.集中训练学生
一位基础数学专业的主讲老师负责讲解初等数学模型,微分方程,层次分析法,模糊数学,决策论等模型;一位统计学专业的主讲老师负责讲解统计学方面的模型如:回归分析模型,方差分析模型,主成分分析,MonteCarlo方法等;一位计算数学专业的主讲老师负责讲解:插值和拟合,差分方程和微分方程的数值解法,模拟退火算法或遗传算法,以及算法的编程实现和利用数学软件,如:MATLAB作图,可视化技术等;一位应用数学专业的主讲老师负责讲解综合类的数学建模案例分析和文章的写作等。
5.积极组织学生参加国内的小、中型比赛
每年积极组织学生参加网络杯,华中杯等小、中型赛事。这些比赛可以让学生熟悉建模的过程,综合运用所学知识,加强三人之间的协助能力,训练写作能力;引导学生运用所学的数学知识和计算机技术,提高分析问题、解决问题的能力。如果能在比赛中得奖,将是对他们很大的鼓励。比赛后总结得与失,为下一步的学习做准备。
6.教师需要增强自身建模意识和能力
数学建模的教学活动为学生提供了一个学习的过程,同时对教师也提出了更高的要求。每年的学生都在更替,但指导教师比较固定。当一个教师刚参加数模组时,他可能对该活动有很多不太了解的地方,但是随着他的教学经验和大赛指导经验积累,他会成为在数模这一方向比较专业的人才,这其实就是学校的财富。
每年的竞赛难度都在加大,以2012年A,B题为例,数据明显增多,每题有四个小问题,对学生来说,要想在规定的时间完成是很吃力的,这就是“水涨船高”的现象。要想取得好成绩,指导教师的水平就要大步提高。
我校除了定期在学校内部进行教师之间的学习交流外,还将教师派出参加短中期的培训,提高他们的建模专业能力、领悟能力和组织能力。鼓励他们参加数模教改活动和发表数模科研方面的文章。
数学建模算法与程序范文3
随着新技术和新应用带动数据爆发式的增长,大数据正逐步走进人们生活,并对传统数学建模课程产生深刻的影响。近年来,在美国大学生数学建模大赛中,具有显著大数据特征的赛题不断涌现,以2017年A赛题为例,其关于赞比西河管理问题的解决涉及大量非结构化数据,特别是地理数据,对数学建模能力的考核已经不再表现为分析问题能力和数据执行能力的获取,而是上述两种能力的合取。2018年大赛甚至系统性地专门增加一个数据处理题以反映时代对这方面的要求。因此,在数学建模教学中,任何割裂分析问题能力与数据执行能力联系的做法已经无法应对大数据对数学建模能力提出的挑战。具体到教学改革上,需要我们分析好大数据型问题对数学建模课程的影响,对传统数学建模的课程目标、课程内容、教学手段做出相应调整。
一、构建体现大数据特点的数学建模课程目标
课程目标是教学活动的指导思想,是课程设计的出发点和依托。因此,数学建模课程目标应顺应大数据发展的要求进行相应调整,为构建与大数据处理相适应的,新的课程观、课程目标、课程内容、课程结构和课程活动方式奠定基础。
数学建模的主要目的是培养学生应用数学理论和知识解决实际问题的能力,而应用好数学解决问题的前提是建模时首先能正确地面对数据类型和关系,进行合理假设。人们在自觉和非自觉状态下创造的大量非结构化数据和半结构化大数据,它们有些表现为传统的数、表等结构化特征,有些则表现为诸如文本数据、音频数据和视频数据等现代非结构化数据和半结构化数据,多且杂乱。因此,在数学建模课程目标的设定上首先应体现数据结构的特点对调整数学建模课程目标提出的要求。
大数据具有5V特征,即Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。如,智能制造中设备产生的数据流实时、高速,这些高速数据通过通讯网络快速与控制系统链接,数据流数量级的计算加速大幅提升数据处理与分析的效率,使得机器硬件性能得以充分挖掘,进而提升经营与管理的效益;其他如医学扫描数据、天文数据、网站流量等,其具有低价值密度的特点。这些不同于以往数据的特征要求我们需要有新的数学建模课程目标与之匹配,这主要表现在数据观、数据刻画及数据表现等几个方面。
传统数学建模中,数据收集只能通过随机样本,利用少数的特征对总体的属性进行统计推断。在大数据时代,人们可以通过互联网、即时通讯工具以及数据库,获取各种海量数据。因此,大数据背景下,全数据或海量数据成为样本数据,即样本就是总体,样本就是大数据。
面对这样的全样本或海量数据,随机抽样有时仅表现为一种逻辑上的意义。而在大数据背景下,一方面,?稻菔占?过分地依赖技术手段,很难进行人为的精度控制;另一方面,数据无论在空间和时间方面,来源更加复杂,格式更加多样,这就使得数据的前期清洗处理变得非常困难。由于存在系统性的偏差,很难将全部的杂质项从数据中萃取掉,在秉持“数据多比少好”的情况下,就得接受数据混乱和不确定性的代价。当然,在大数据中,忽略一部分模型的精确性,并不是说不要模型的精确性,而是指我们对于模型精确性的可控性在减弱。所以,新的数学建模分析应更加侧重于发现海量数据下的各种关联细节,这可以成为数学建模逻辑思维能力培养新的补充目标,从而使我们在知识与技能、过程与方法等维度上把握好该课程的教学。
随着数据通讯技术,尤其是移动智能设备的普及发展,人们可以在任何时间和地点信息和获取数据,数据的实时分析成为提高大数据分析效率的必由之路。与传统数据相比,数据不再局限于一条条记录,伴随着大量由物联网、传感器等产生的图片、视频等非结构化数据的产生,实时分析需要学生掌握新的数据挖掘技术,并以集群、分割、孤立点分析及其他算法深入数据内部挖掘价值,从而实现处理数据量和处理数据速度的统一。
此外,数据仓库、联机分析和数据挖掘技术的不断完善,推动着数据以图形和图像等可视化方式的执行,[1]展示数据、理解数据、演绎数据呼唤数据的可视化;从直方图到网状图,从三维地图到动态模拟,从动画技术到虚拟现实,枯燥乏味的数据生动形象起来,爆炸性数据压缩起来,这对于数学建模的数据输出提出新挑战。
二、构建兼顾大数据和信息技术特点的数学建模课程内容
数学建模本质上是一种数学实验,人们在实验、观察和分析的基础上,对实际问题的主要方面做出合理的假设和简化,明确变量和参数,应用数学语言和方法,形成一个明确的数学问题,然后用数学或计算的方法精确或近似地求解该数学问题,进而检验结果是否能说明实际问题的主要现象,能否进行预测。这样的过程多次反复进行,直到能较好地解决问题,这就是数学建模的全过程。
大数据的处理也有自身的步骤,一般来说可以分为6个不同阶段:(1)存储管理阶段,它实现了多维数据的联机分析;(2)数据仓库阶段,它解决数据整合集成问题;(3)联机分析阶段,它实现数据存储管理和快速组织;(4)数据挖掘阶段,它实现探索性分析,发现数据背后模式和有用信息;(5)辅助决策阶段,它综合运用数据仓库、联机分析和数据挖掘,实现结果;(6)大数据分析,它实现非结构化数据、海量数据、实时数据的分析。
因此,面?Υ笫?据,如何实现上述两者的有机融合,必然需要注意新数学建模各阶段表现出的新的特点,如在实验、观察阶段,样本数据收集的信息化与自动化,海量信息和全样本数据成为分析常态。在问题的数学刻画阶段,相关分析可以作为进行模型分析之前数据探索的一个手段,这是因为由于数据的结构复杂,变量众多,数据体量大,有时候很难用一个“普世”函数描述出变量之间的准确关系,在无法综合评价出变量之间关系的情况下,我们可以部分揭示出变量之间的关系。事实上,由于相关分析无需太多模型假设,运算成本较低等众多原因,使得相关关系的分析成为了大数据分析的基础。[2]在模型验证阶段,以数据为中心的非普世和精确化的数学模型往往可以得到海量信息和全样本数据的支撑等。
因此,在数学建模课程内容架构中,应兼顾大数据和信息技术的特点,逐渐改变数据挖掘技术在数学建模教学上辅的作用,将有关计算机和信息技术的教学很好地落实到课程计划、课程标准和教科书中。如在教学中,可以增加通过“网络爬虫”程序直接抓取互联网数据的内容;从传感器、云端直接获取智能制造中现实数据的方法;将并行处理数据的思想引入建模教学;加强相关分析的内容教学等。所有这些可以让计算机的数据采集能力和数据处理能力成为变量间逻辑关系探索、复杂模型构建的有力工具,推动人们对数学建模的认知。
三、强化数学建模中的软件教学
首先,强化数学软件的教学。常见的数学软件有Matlab、Mathematica,Lingo,SAS、SPSS、Eview、
R、Python等,它为计算机解决现代科学技术各领域中所提出的数学问题提供求解手段。
其次,加强数学算法的介绍。常见的数学算法包括运筹学类的算法、概率分析与随机算法、时间序列算法等,其他的如十大经典算法等。
另外,对于以往建模中的数据处理,人们更习惯运用SPSS、Eview等这类封装好的、以体验式为主的方式进行,然而,相比于机械的拖拽软件分析数据,编程分析更加灵活,因为,编程使数据处理无论在体量上,还是在方式的灵活度上,更有利于激发数据分析者的主动性和创造性,因此,能够驾驭软件编程的教学应是更高的数学建模课程的要求。
当然,大数据处理也还有其他特殊的技术,如大规模并行处理数据库、分布式文件系统、分布式数据库、虚拟化和内存计算等,其中,大规模并行数据处理运用的hadoop技术,内存计算的hana工作原理等在教学过程需要予以关注。
数学建模算法与程序范文4
关键词:高等数学;建模思想;思维训练
创造力作为创造性思维的核心,对提升学生创造性思维,发展创造能力具有重要作用,它不仅是现代教育的归宿和出发点,同时也是全面进行现代教育的具体要求,而课堂教学则是素质教育的实施渠道。因此,在课堂教学中,不仅要充分展现学生的主体地位,还必须优化数学模型,进行思维训练。
一、数学建模的意义
数学必须整合现代教学内容,根据问题设置、创建模型、解释、应用和拓展的模式进行教学。在大学高等数学应用中,数学建模主要表现为简化、提炼、确立、验证、求解、应用和拓展。因此,在数学建模中引导学生思考,通过对相关信息进行转换、加工,不断激活知识经验,并且对问题进行分析。在这儿之所以不能将模型简单的既定的算法或者对思维程序进行复述、记忆和应用,而是过程中,数学模型不仅为其提供了途径,同时也为其提供了应用、解释的机会,合理、灵活地选用解决问题的方法。
二、利用数学建模进行思维训练
高等数学作为大部分高等院校的专业课,同时也是深入其他专业课的基础。随着数学在各个学科中的应用增强,为了更好地适应环科、地理等专业的要求,在数学建模中,必须注重相关概念的实际意义,不是片面的追寻抽象性,在理论实际应用的同时,根据实际操作和计算方法,帮助学生打开思维。例如:在导数与微分这个章节学习中,我们可以根据导数的定义,导数与导函数的物理意义与几何意义,连续性与可导性之间的关系,以及求导法则、微分的概念,了解高阶导数以及简单函数的n阶导数,这样就能让导数与微分学习成为一个系统的学习框架,在保障学习成果的同时,帮助学生开拓思维。又如:在多元函数微分法和应用中,可以结合多元函数、偏导数、全微分、方向导数,对多元函数微分学以及泰勒公式和极值进行分析,这样不仅能让学习过程生成关系网,还能加深学习印象,让知识成为相互联系的支点与焦点。具体如:在进行函数y=x/x2+3x-2,求它对应的曲线有多少条渐近线,通过数学建模,我们能很快地得到有3条渐近线。
数学建模作为高等数学教学重要的教学方法,对提高教学质量,保障教学效率具有重要作用。因此,在实际工作中,必须根据教学目标以及特点,将相关内容有机地结合起来,在形成关系网时,才能更好地帮助学生发散思维。
参考文献:
数学建模算法与程序范文5
关键词:GIS;GIS模型;GIS建模;
引言:GIS是地理信息系统(Geographic Information System)的简称,是一种在计算机软硬件支持下的空间数据输入、存储、检索、运算、显示、更新和综合分析的应用技术系统[1]。经过三代软件的改进,形成了图像处理功能强大、支持大型数据库的信息系统平台。而GIS模型与建模作为其中的重要组成部分已经成为了现在学者主要研究的方向,本文主要针对GIS模型与建模提出了一些基本元素的使用方法和介绍,为后续研究提供基础资料。
一、 GIS建模的分类
GIS用户所用的许多模型是很难进行分类的。例如,于海龙等根据目的、方法论和逻辑学对模型进行分类。但其界限在他们的分类标准之间并不总是那么明确。本文不是提出一个详细的分类,而主要的目的对模型进行大致归类[2]。
模型可以是描述的或者规则的。描述模型描述空间数据的现有情况,而规则模型则对将会出现的情况提供预测。
模型可以是确定的或者随机的。确定模型和随机模型都是用参数和变量的方程式来表示的数学模型。随机模型考虑一个或更多的参量或者变量的随机性,而确定模型则不然。作为随即过程的结果,随机模型的预测有可能出现错误或不确定的测量,通常用概率表示。
模型可以是静态的或者动态的。动态模型强调变量之间空间数据和相互作用的变化,而静态模型则涉及特定时间里空间数据的状态。在动态数据里,时间对于显示变化过程是很重要的[3]。
模型可以是推论的或者归纳的。推论模型展示的结论是来自于特定的前提条件。这些前提条件通常是以科学理论或自然规律为基础的。归纳模型展示的结论是来自于实验数据和观察报告。
二、 建模过程
模型的建立要遵循一系列的步骤。
第一步,明确建模目的。这类似于一个研究问题进行定义。模型想模拟什么现状,为什么必须建立这个模型以及合适的时空尺度。
第二步,把模型分解成各种元素,然后用概念定义各种元素的属性和他们之间的相互作用框图。
第三步,模型的应用与校准。建模者需要用数据去运行并校准模型。模型校准是一个重复的过程,不断地比较模型输出的数据与观察结果之间的差异,调整各参数的数值,然后再运行模拟。
经过校准的模型可以用做预测,但一个模型在被广泛接受之前必须经过验证过程。模型验证过程就是评价模型的稳定性,即对不同于校准条件下的预测结果作出评估。
三、 GIS在建模中的作用
GIS在建模过程中有如下几个方面的内容。
第一,GIS是一个能够加工、显示和集成不同数据源的工具,这些数据源包括地图、数字高程模型、全球定位系统数据、影响和表格等。
第二,用GIS建立的模型可以是基于矢量或基于栅格的。其选择取决于模型的本质、数据源和算法。
第三,基于栅格和基于矢量的模型的差别并不排除建模者在建模过程中对两类数据的综合。
第四,GIS建模可以在GIS环境中进行,或者需要GIS与其他计算机程序的链接。许多GIS软件包,如ArcGIS、GRASS、IDRISI、ILWIS、MFworks和PCRoster,都有用于建模的广泛的分析功能。
四、GIS与其他建模程序的结合
把GIS连接到其他计算机程序,有三种情况[4]。建模者在建模过程中可能三种都会遇到,这取决于所要完成的任务。
松散联结涉及数据文件在GIS与其他程序之间的传送。例如,你可以从GIS导出数据到统计分析软件包中运行,也可以把来自统计分析的结果导入GIS实现可视化或显示。在这种情形下,建模者必须创建和调整要导出或导入的数据文件,除非在GIS和目标计算机程序之间已经建立了接口。紧密联结提供了GIS和其他程序的共同用户接口。例如,GIS有一个菜单选项用来运行一个土壤侵蚀程序。嵌入系统是通过共享存储器和共同接口把GIS与其他程序捆绑在一起的。ArcGIS的地理数据分析扩展功能就是一个把地理数据分析功能与GIS环境捆绑在一起的例子。
参考文献:
[1]梁红莲,刘登忠.GIS应用现状及发展趋势探讨.物探化探计算技术.2001.
[2]于海龙,邬伦,刘瑜,李大军,刘丽萍.基于Web Services的GIS与应用模型集成研究.测绘学报.2006,35(2):153-159
数学建模算法与程序范文6
虚拟现实技术是指利用计算机技术创造虚拟的环境和人物,这些环境和人物“看”起来,“听”起来,甚至“摸”起来和真的一样。相比建模技术而言,计算机仿真技术侧重于刻画事物或系统随时间或环境的变化而变化的过程。
计算机仿真技术可以用来增强虚拟环境的“沉浸感”和“逼真性”。比如,在虚拟的计算机环境中仿真出各种逼真的物理效应。物理效应包括人体运动、水流、烟雾、火以及物体之间的碰撞和爆炸等。根据这些物理规律,人们可以建立它们的抽象数学模型并采用偏微分方程数值求解技术计算它们随时间变化的动态过程,并通过计算机图形的渲染技术将这些物理效应在计算机屏幕上呈现出来。使用仿真方法模拟出的许多物理效应可以达到观看者无法判断是计算出的还是真实拍摄的地步,从而可以使用户沉浸在计算机展示的虚拟环境中。
五个阶段
在中学时我们就遇到过这样的问题: 已知子弹离开枪口的速度,在不考虑空气阻力的情况下求解子弹的运动轨迹。实际上这个问题可以看做是一个简单的计算机仿真问题,我们可以利用经典的牛顿力学模型来描述子弹的运动过程,再根据初始条件和微积分思想设计数值求解算法,求解该问题。
简单说来,计算机仿真技术就是采用数学工具建立描述事物或系统变化规律的数学模型或物理模型,并设计数值计算方法求解模型参数,以及事物或系统在给定初始条件下随时间的变化情况或者是在不同的边界条件下系统状态的变化。
一般而言,计算机仿真需要经过建模、编写计算程序、运行程序进行实验、分析实验结果、修改和完善模型这五个阶段。建模的阶段就是对待仿真的事物或系统分析其主要因素,忽略次要因素,分析主要因素之间的定量关系,并用数学语言描述出来。根据得到的定量关系和已知变量采用数学方法找出计算未知变量的算法。根据求解未知变量的算法编写计算程序,然后在计算机上运行程序,观察在不同输入数据情况下系统的变化。最后根据实验结果分析模型的准确性。
如果实验结果和实际情况不符合,那么回到建模阶段检查,是否误将主要因素忽略、主要因素之间的定量关系是否准确。然后根据修改的模型在再进行仿真实验,直到计算结果和观察所得的实际情况相符为止。
根据被研究系统的特征又可以将仿真系统分为两大类: 连续系统仿真和离散事件系统仿真。连续系统仿真是指对那些系统状态变量随时间连续变化的系统的仿真研究。这类系统的数学模型包括连续模型(微分方程等),离散时间模型(差分方程等),以及连续-离散混合模型。离散事件系统仿真是指对那些系统的状态只在一些时间点上由某种随机事件的驱动而发生变化的系统进行仿真实验。这类系统的状态量是由事件的驱动而变化的,在两个时间之间状态量保持不变,因而是离散变化的,称之为离散事件系统。
应用范围
通常,计算机仿真技术用在如下几种情形。
1. 对系统进行真实实验的代价高昂。比如在汽车工业中需要对新型的汽车做碰撞实验,检测其安全特性。科研人员根据材料力学、碰撞力学等知识对碰撞过程建立物理模型,然后利用计算机仿真计算在不同碰撞条件下汽车的碰撞效果,并根据仿真的碰撞结果来改进汽车的设计。
2. 系统的实现只有一次机会,比如大坝的建造。因此需要在设计过程中对大坝以及相应的地质情况、水文情况建立较为准确的模型,然后计算不同设计方案中大坝的承载能力、抗震能力等数据,最终挑选出一个合理的设计方案。
3. 需要预测系统在未来的变化,比如2008年奥运会期间的天气情况。首先,需要建立大气动力学模型,然后利用往年的天气资料确定模型的一些系统参数,并把在计算机上运算该模型以验证模型的准确程度,最后利用该模型预测2008年奥运会期间的天气情况。
计算机仿真本质上是对物理对象建立数学模型,然后通过数学方法分析物理对象中的性质、预测物理对象随时间的变化情况。因此计算机仿真在航空航天的设计制造、天气预报、交通模拟等领域中得到了广泛应用。
一个人体运动仿真的例子
虚拟人是虚拟环境中一个很特殊的对象。他和其他对象不同之处在于人是一个主动个体,他的行为不仅由物理规律还由人的意识决定。比如从房间的这一端走到那一端,不同的人有不同的行走路线,人在高兴或者悲伤的时候面部表情、姿态都有很大的差异。为了把这些不同的行走姿态仿真出来,人们综合了生物力学、控制论、数值优化等技术,但是即便如此,还不能完全解决这个困难的仿真问题。另外大规模人群行为的仿真也是目前研究的热点问题,它不仅要考虑单个人的仿真问题还需要考虑人与人之间的相互作用和影响对仿真结果的影响。
我们在人体运动仿真方面研究了人体空中运动的仿真,图1中黄色代表一个初始的前空翻运动,该运动是手工编辑出来的。绿色代表一个仿真的运动,该运动比原始运动更逼真。图2从左右视角和脚尖的轨迹对比两个运动。
图1 仿真运动(绿色)和初始运动(黄色)的对比图
图2 从左右两个视角观察运动,圆点表示有脚尖的运动轨迹
虚拟现实技术可以将复杂的数值计算过程变成一个可以“看”得见的推演过程,即一个可信的计算过程,使结果直观可信。因此,在虚拟环境中开展计算机仿真技术研究是一项重要内容。
链接:几款优秀仿真软件
由荷兰国家应用科技研究院TNO开发的MADYM多刚体动力学分析软件将有限元融入多刚体系统分析中,成为了一个多刚体与有限元结合的数学模拟软件。该软件中有全世界最好的机械假人的数学模型,已成为汽车碰撞安全性设计的工业标准。