毕业设计(论文)-基于Matlab的数据分析与建模工具原型的设计与实现.doc_第1页
毕业设计(论文)-基于Matlab的数据分析与建模工具原型的设计与实现.doc_第2页
毕业设计(论文)-基于Matlab的数据分析与建模工具原型的设计与实现.doc_第3页
毕业设计(论文)-基于Matlab的数据分析与建模工具原型的设计与实现.doc_第4页
毕业设计(论文)-基于Matlab的数据分析与建模工具原型的设计与实现.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号: 06416125 常 州 大 学毕业设计(论文)(2010届) 题 目 基于matlab的数据分析与 建模工具的设计与实现 学 生 学 院 信息科学与工程学院 专 业 班 级 计算机科学与技术 校内指导教师 专业技术职务 副教授 校外指导老师 专业技术职务 二一年六月基于matlab的数据分析与建模工具的设计与实现摘 要进入20世纪以来,随着数学以空前的广度和深度向一切领域渗透,以及计算机的飞速发展,数学建模越来越受到人们的高度重视,这由数学建模被列入新的高中数学课程标准,全国大学生数学建模竞赛活动如火如荼地开展,足可窥见一般。数学软件matlab 在数学建模中的应用,以期提高数学建模的效率和质量,进而增强解决实际问题的能力。 在本文的系统实现中,我们主要用要的软件是matlab2009b,jdk,和matlab中的java builedr。本文主要做了以下几个工作(1)选择了人口的马得尔萨斯人口模型和logistic模型,以及战争模型(2)对这些模型分析处理得出函数式(3)查资料学习连接数据库(4)利用matlab分析数据画出图形(5)java调用matlab现有的模块来构建数据分析建模工具显示图形。通过这样可以很方便的实现数据的分析与建模,调用现有的模块,省去大量编写程序的时间,简单,有效,而不像以前的做法中如果所设计的系统中需要对数据进行分析和建模,则只能针对所采用建模方法和理论,编写java程序来实现。本课题致力于采用现有的成熟的建模工具中提供的数据分析模块接口来构建一个数据分析建模工具的原型,旨在提供一种简单有效且准确性高,可以在各种自主开发的系统中应用的建模方式,而不是采用的是java编程来实现,这不就是一种创新么。关键词:matlab;数学模型;数学建模iiibased on matlab data analysis and modeling tools for the design and implementationabstract into the 20th century, with the mathematics at an unprecedented breadth and depth of penetration to all areas, as well as the rapid development of computer, mathematical modeling more and more peoples attention, this consists of mathematical modeling was listed in the new high school mathematics curriculum standards, national university mathematical modeling contest stride, enough to see the general. mathematical software matlab in mathematical modeling, with a view to improving the efficiency and quality, which will in turn strengthen the ability to solve practical problems. in this article of the system implementation, we mainly used to software is matlab2009b, jdk, and java builedr in matlab. this article is mainly done on several work (1) select a population of elsas population model and logistic model, as well as war model (2) on the model of treatment that functional (3) checking the information on learning to connect to the database (4) use matlab analysis data to draw graphics (5) java call matlab existing modules to build a data analysis modeling tools display the graphic. this can easily data analysis and modeling, call an existing module, saving a lot of time writing programs, simple, effective, and not like the old practices if the design of the system of data analysis and modeling, you can only use modeling method and theory, writing java programs. this topic focuses on using existing mature modeling tools provide data analysis module interface to build a data analysis modeling tools prototype, is designed to provide a simple and effective and accurate in all kinds of homegrown system modeling approach, rather than resorting to java programming, this is an innovative mody. key words: matlab, mathematical models, mathematical modeling 常州大学本科生毕业设计目 录摘 要iabstractii目 录iii1绪论11.1 研究背景11.2 课题研究现状21.3 本文的工作及意义21.4 文章大体结构32 需求分析42.1 总体要求42.2 性能需求42.3开发环境需求72.4 功能需求82.5 方案的原理、特点和选择依据83 系统的总体设计113.1 总体结构图113.2 数学模型的选择113.2.1 指数增长模型(马尔萨斯人口模型)113.2.2阻滞增长模型(logistic模型)133.2.3 lanchester战争模型144 系统的详细设计与实现184.1 建模功能提取184.1.1指数增长模型(马尔萨斯人口模型)184.1.2阻滞增长模型(logistic模型)194.1.3 lanchester战争模型214.2 数据读入模块设计与实现244.3 模型选择与调用模块设计与实现254.4 建模结果和显示模块设计265 结论31参 考 文 献32致谢331绪论1.1 研究背景随着科学技术对研究对象的日益精确化,定量化和数字化,随着电子计算机的技术的广泛应用,数学模型以成为处理科技领域中各种实际问题的重要工具。人们在用复杂的数学知识解决实际问题的过程中,利用了具有代表性的数学软件matlab。现在应用数学知识解决实际问题,往往要用到复杂的数学知识并且要进行大量的数学计算1。而matlab的使用,就可以使得人们从繁重的计算中解脱出来,把更多的精力投人到对知识的理解和应用之中,从而也大大提高了进行数学建模的效率。数学是研究现实世界数量关系和空间形式的科学,在它产生和发展的历史长河中,一直是和各种各样的应用问题紧密相关的。数学的特点不仅在于概念的抽象性、逻辑的严密性,结论的明确性和体系的完整性,而且在于它应用的广泛性,进入20世纪以来,随着科学技术的迅速发展和计算机的日益普及,人们对各种问题的要求越来越精确,使得数学的应用越来越广泛和深入,特别是在即将进入21世纪的知识经济时代,数学科学的地位会发生巨大的变化,它正在从国或经济和科技的后备走到了前沿。经济发展的全球化、计算机的迅猛发展,数学理伦与方法的不断扩充使得数学已经成为当代高科技的一个重要组成部分和思想库,数学已经成为一种能够普遍实施的技术。培养学生应用数学的意识和能力已经成为数学教学的一个重要方面。数学是在实际应用的需求中产生的,我们把遇到的实际问题进行分析,发现其中的可以用数学语言来描述的关系或规律,把这个实际问题转化成一个数学问题,建立了数学模型。但数学模型迫切需要一个方便、快捷且功能强大的工具去实现并解决,特别随着科技的进步,人们在解决问题的时候常常要用到许多比较复杂的数学知识和大量的数据计算,这无疑加大了人们解决间题的难度,也要耗费更长的时间。而matlab正是在数学计算和大量数据处理方面具备其它软件所不具备的优势,且操作简单,运算速度快,所以应用matlab进行数学建模也就大大提高了人们的效率。而且matlab还有很强的绘图功能,这就可以使得模型图象化,使得研究人员对建模成果的优劣一目了然,容易进行修正与改进。matlab是当前国际上最流行的科学计算软件,在数学建模与数学实验中得到广泛的应用。目前,matlab在全国高校与研究单位正扮演着重要角色,应用领域也越来越广。matlab是英文ma trix laboratory(矩阵实验室)的缩写,由美国mathworks公司开发。matlab语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的科学计算软件。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。matlab语言在各国的高校与研究单位正扮演着重要的角色。在美国的一些大学,matlab正在成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,matlab也被用来解决一些实际课题和数学模型问题。而将matlab以用于数序教学,不仅可以提高学生的理解和解题能力,而且可以激发学生的学习兴趣。1.2 课题研究现状2 0世纪 80年代末 90年代初 ,世界发达国家纷纷开始对各自数学教育发展历程作全面的考察 ,出台了一系列数学教育发展纲要和数学课程改革蓝图 ,强调数学教育必须重视应用 ,培养和提高学生的数学应用能力已经成为国际数学教育改革的主旋律。而数学建模 (mathematicalmodeling)则是一种具有创新性的科学方法 ,它将现实问题简化、抽象为一个数学问题或数学模型 ,利用恰当的数学方法求解社会实际问题。近半个多世纪以来,随着计算机技术的迅速发展,数学的应用不仅在工程技术、自然科学等领域发挥着越来越重要的作用,而且以空前的广度和深度向经济、金融、生物、医学、环境、地质、人口、交通等新的领域渗透,所谓数学技术已经成为当代高新技术的重要组成部分。不论是用数学方法在科技和生产领域解决哪类实际问题,还是与其它学科相结合形成交叉学科,首要的和关键的一步是建立研究对象的数学模型,并加以计算求解。数学建模和计算机技术在知识经济时代的作用可谓是如虎添翼。matlab是当前国际上最流行的科学计算软件,在数学建模与数学实验中得到广泛的应用。目前,matlab在全国高校与研究单位正扮演着重要角色,应用领域也越来越广2。1.3 本文的工作及意义对于基于matlab的数据分析与建模工具的设计与实现而言,我觉的最重要的对数学模型的数据分析与处理,利用大量的数据反复计算分析求出数学模型的函数式,连接数据库,由于连接数据库比较麻烦,所以在这我用的是excel代替数据库,原理是一样的。利用matlab编写函数,编程,分析出建模结果。到这,也只是做了其中的一部分,而接下来的任务就是用java builder在java程序中调用matlab,在jdk中的界面元素构建用户界面,显示分析建模的结果。所以本文的主要工作接纳如下:(1)查找书籍,资料,理解分析人口的马得尔萨斯人口模型和logistic模型,以及战争模型,为分析建模做好基础。(2)深入理解这几个数学模型,分析数据与处理。利用大量的数据反复计算分析求出数学模型的函数式。(3)连接excel数据库,导入、连接数据,分析,编写函数,运行,分析显示出建模结果。(4)在matlab的高级版本中,利用java builder在java程序中调用matlab丰富的数值计算资源,编译生成java的class类文件,在jdk中的界面元素构建用户界面,显示分析建模的结果。这样一来,本文采用现有的成熟的建模工具中提供的数据分析模块接口来构建一个数据分析建模工具的原型,提供了一种简单有效且准确性高,可以在各种自主开发的系统中应用的建模方式。省去了大量的编程过程,加深对数学建模的印象,使之更加的生动易懂。1.4 文章大体结构本文的大体结构如下:第一章 绪论。介绍本文的研究背景和目的,以及方案的选择原理、结构、特点和依据,并给出文章的大体结构。第二章 需求分析,并给出大概的总体设计,给出数学模型的分析过程,对运行环境给出解释和说明,做好充分的前提准备,为分步设计做好准备。第三章 分步设计系统,首先给出matlab下数据分析、建模的结果。编译工程给出class类文件,然后在mcr环境下利用jdk构建用户界面,脱离matlab执行,给出最后的实现结果。最后对本文所作的工作做了总结,指出存在的问题,提出了进一步研究方向。2 需求分析为了实现系统,首先我们要做的是需求分析,在对系统大概的做分析,给出详细的数学模型的解释,为第三步做好准备。2.1 总体要求本文所阐述的系统分成两部分,一部分是数学模型和matlab的部分,另一部分是java调用matlab显示建模分析结果的部分,所以在下面的描述中,我们也要相应的分为两部分来说明。2.2 性能需求matlab介绍和发展matlab 名字由 matrix 和 laboratory 两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的 cleve moler 教授出于减轻学生编程负担的动机,为学生设计了一组调用 linpack 和 eispack 库程序的“通俗易用”的接口,此即用 fortran 编写的萌芽状态的 matlab 。 经几年的校际流传,在 little 的推动下,由 little 、 moler 、 steve bangert 合作,于 1984 年成立了 mathworks 公司,并把 matlab 正式推向市场。从这时起, matlab 的内核采用 c 语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 matlab 以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的 umist ,瑞典的 lund 和 simnon ,德国的 keddc )纷纷淘汰,而改以 matlab 为平台加以重建。在时间进入 20 世纪九十年代的时候, matlab 已经成为国际控制界公认的标准计算软件。 到九十年代初期,在国际上 30 几个数学类科技应用软件中, matlab 在数值计算方面独占鳌头,而 mathematica 和 maple 则分居符号计算软件的前两名。 mathcad 因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。mathworks 公司于 1993 年推出 matlab4.0 版本,从此告别 dos 版。 4.x 版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化: ( 1 )推出了 simulink 。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。 ( 2 )开发了与外部进行直接数据交换的组件,打通了 matlab 进行实时数据分析、处理和硬件开发的道路。 ( 3 )推出了符号计算工具包。 1993 年 mathworks 公司从加拿大滑铁卢大学购得 maple 的使用权,以 maple 为“引擎”开发了 symbolic math toolbox 1.0 。 mathworks 公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。 ( 4 )构作了 notebook 。 mathworks 公司瞄准应用范围最广的 word ,运用 dde 和 ole ,实现了 matlab 与 word 的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。 1997 年春, matlab5.0 版问世,紧接着是 5.1 、 5.2 ,以及和 1999 年春的 6.x 版。与 4.x 相比,现今的 matlab 拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。(关于 matlab6.x 的特点下节将作更详细的介绍。) 诚然,到 1999 年底, mathematica 也已经升到 4.0 版,它特别加强了以前欠缺的大规模数据处理能力。 mathcad 也赶在 2000 年到来之前推出了 mathcad 2000 ,它购买了 maple 内核和库的部分使用权,打通了与 matlab 的接口,从而把其数学计算能力提高到专业层次。但是,就影响而言,至今仍然没有一个别的计算软件可与 matlab 匹敌。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把 matlab 作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里, matlab 是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界, matlab 已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到 matlab 的应用。在设计研究单位和工业部门, matlab 被认作进行高效研究、开发的首选软件工具。如美国 national instruments 公司信号测量、分析软件 labview , cadence 公司信号和通信分析设计软件 spw 等,或者直接建筑在 matlab 之上,或者以 matlab 为主要支撑。又如 hp 公司的 vxi 硬件, tm 公司的 dsp , gage 公司的各种硬卡、仪器等都接受 matlab 的支持。 matlab-巨人肩上的工具 matlab被誉为“巨人肩上的工具”。 由于使用matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言-如basic、fortran和c等那样难于掌握,用matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言 一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。matlab的含义是矩阵实验室(matrix laboratory),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。matlab自问世以来,就是以数值计算称雄。 matlab进行数值计算的基本单位是复数数组(或称阵列),这使的matlab高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有matlab供学习和研究之用。在那里,matlab是攻读学位的大学生硕士生 博士生必须掌握的基本工具。 matlab中包括了被称作工具箱(toolbox)的各类应用问题的求解工具。工具箱实际上是对matlab进行扩展应用的一系列matlab函数(称为m文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着matlab版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。 matlab5.3中包括了图形界面编辑gui,改变了以前单一的“在指令窗通过文本形的指令进行各种操作”的状况。这可让使用者也可以象vb、vc、vj、delphi等那样进行一般的可视化的程序编辑。在命令窗口(matlab command window)键入simulink,就出现(simulink) 窗口。以往十分困难的系统仿真问题,用simulink只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视原因所在。jdk的内容和介绍jdk(java development kit)是sun microsystems针对java开发员的产品。自从java推出以来,jdk已经成为使用最广泛的java sdk(software development kit)。jdk 是整个java的核心,包括了java运行环境(java runtime envirnment),一堆java工具和java基础的类库(rt.jar)。不论什么java应用服务器实质都是内置了某个版本的jdk。因此掌握 jdk是学好java的第一步。最主流的jdk是sun公司发布的jdk,除了sun之外,还有很多公司和组织都开发了自己的jdk,例如ibm公司开发的jdk,bea公司的jrocket,还有gnu组织开发的jdk等等。其中ibm的jdk包含的jvm(java virtual machine)运行效率要比sun jdk包含的jvm高出许多。而专门运行在x86平台的jrocket在服务端运行效率也要比sun jdk好很多。但不管怎么说,我们还是需要先把sun jdk掌握好。从sun的jdk5.0开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的1.2,1.3,1.4,而是变成了5.0,6.0了。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。jdk本身使用了java语言编写,在我们下载的安装包里,有一个src.zip,里面就是jdk的源代码。jdk包含的基本组件包括: javac 编译器,将源程序转成字节码 jar 打包工具,将相关的类文件打包成一个文件 javadoc 文档生成器,从源码注释中提取文档 jdb debugger,查错工具 java 运行编译后的java程序(.class后缀的) appletviewer:小程序浏览器,一种执行html文件上的java小程序的java浏览器。 javah:产生可以调用java过程的c过程,或建立能被java程序调用的c过程的头文件。 javap:java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 jconsole: java进行系统调试和监控的工具。java.lang: 这个是系统的基础类,比如string等都是这里面的,这个package是唯一一个可以不用import就可以使用的package java.io: 这里面是所有输入输出有关的类,比如文件操作等 : 这里面是与网络有关的类,比如url,urlconnection等。 java.util : 这个是系统辅助类,特别是集合类collection,list,map等。 java.sql: 这个是数据库操作的类,connection, statement,resultset等 javax.servlet: 这个是jsp,servlet等使用到的类2.3开发环境需求本文用的是matlab2009b软件和jdk,通过matlab中的java builder实现matlab和java的混编。把matlab函数包装到1个或多个java类。而何为java builder,matlab builder for java(又叫java builder)是对matlab compiler的扩展。用java builder可以将matlab函数包装到一个或多个java类中形成一个java组件或包。每个matlab函数被封装为java类的一个方法,可以在java应用程序中被调用。还有就是与matlab对其他程序的外部接口相比,我觉得java接口在一下几个方面比较有特色:(1)在.m文件中可以直接调用java资源。例如可以调用jdk中的界面元素构建用户界面。(2)可以利用java在网络功能方面的优势,开发基于web的应用程序。本文所生成的系统,最后的情况是生成的可执行程序能够脱离matlab环境使用,而具体执行的时候应该说也是在进行解释执行,它是由matlab component runtime,即mcr来解释执行,不过,如果你使用旧版本的matlab,例如matlab 6.5 ,则生成的exe文件不是解释执行,但是也需要具有相应的环境才能够成功执行。因此,生成的exe文件在第三者的计算机上(没有安装matlab)运行时,需要安装一个运行环境,在matlab的安装路径下你可以找到mcrinstaller.exe(matlab 7)/mglinstaller.exe(matlab 6.5)文件,在目标计算机运行一下安装matlab运行环境就可以了。 jdk(java development kit)是sun microsystems针对java开发员的产品。自从java推出以来,jdk已经成为使用最广泛的java sdk。jdk 是整个java的核心,包括了java运行环境,java工具和java基础的类库。故我们还要设置环境变量,如图2.1 图2.1 设置java_home 环境变量将环境变量 path的值增设一个 %java_home%bin,如图2.2 图2.2 设置path环境变量值这样之后变可以生成.jar文件,而生成的生成的.jar文件是不可单独运行的,必须在安有mcr的环境才可运行。2.4 功能需求本课题要求设计基于matlab的数据分析与建模工具原型。通过matlab分析数据,以及设计建模工具,对matlab有更进一步的了解与学习;除此之外,对数学模型的构建有一个更深入地学习。同时使得这个建模工具能够实现从数据库中直接读取数据并进行自动分析建模,在同java调用matlab显示数学模型建模分析的结果。2.5 方案的原理、特点和选择依据matlab语言以数组为基本数据单位,包括控制流语句、函数、数据结构、输人输出及面向对象等特点的高级语言,它具有以下主要特点:(1)功能强大、内涵丰富:matlab 拥有600 多个工程中要用到的数学运算函数,可以方便地实现用户所需的各种计算功能;目前最新的6.5 版本包括一般数值分析、矩阵运算、数字信号处理、建模、系统控制与优化、动态仿真、有限元分析等应用程序,可以方便地处理各种应用问题。(2)语言简单,易学易用:针对windows环境下所要解决的问题,;matlab语言表述形式和其数学表达形式相同,不需要按传统方法编程,易学易用;而且新版本的matlab 提供了完整的联机查询和帮助系统,利于自学。(3)界面友好,编程高效、方便:matlab语言简洁紧凑,使用灵活方便;用户界面接近windows 标准界面,人机交互强,操作极简单;库函数异常丰富,避免了复杂的子程序编程任务。(4)先进的数据可视化功能:最新的6.5版本不仅比一般数据可视化软件都具有的功能方面更加完善,而且对于一些其他软件所没有的功能。(5)丰富的模块集和工具箱:matlab对许多专门的领域都开发了功能强大的模块集和工具箱,它们由特定领域的专家开发,用户可以直接使用而不需要自己编写代码。(6)开放性及可延拓的特性:matlab 是一个开放系统,用户可以方便地看到函数的源程序,也可以通过; 文件方便地开发自己的程序,甚至创建自己的“库”。(7)程序接口功能:matlab 可以方便地与fortran、c、c+ 等语言进行连接,以充分利用各种资源。正因为matlab具有上述其他语言无法比拟的优势和特点,能够非常方便、快捷、高效地解决数学建模所涉及众多领域的实际问题,使它在众多数学软件中脱颖而出,成为数学软件中的精品,倍受数学建模者的青睐。数学建模是指对现实世界的一特定对象,为了某特定目的,做出一些重要的简化和假设,运用适当的数学工具得到一个数学结构,用它来解释特定现象的现实性态,预测对象的未来状况,提供处理对象的优化决策和控制,设计满足某种需要的产品等7。数学建模的一般过程如下:模型准备:了解问题的实际背景,明确其实际意义,掌握对象的各种信息。用数学语言来描述问题。模型假设:根据实际对象的特征和建模的目的,对问题进行必要的简化,并用精确的语言提出一些恰当的假设。模型建立:在假设的基础上,利用适当的数学工具来刻划各变量之间的数学关系,建立相应的数学结构。(尽量用简单的数学工具)模型求解:利用获取的数据资料,对模型的所有参数做出计算(估计)。模型分析:对所得的结果进行数学上的分析。模型检验:将模型分析结果与实际情形进行比较,以此来验证模型的准确性、合理性和适用性。如果模型与实际较吻合,则要对计算结果给出其实际含义,并进行解释。如果模型与实际吻合较差,则应该修改假设,再次重复建模过程。模型应用:应用方式因问题的性质和建模的目的而异。我们可以对数学模型做如下定义:数学模型是关于部分现实世界和为一种特殊目的而作的一个抽象的、简化的结构。”具体来说,数学模型就是为了某种的,用字母、数学及其它数学符号建立起来的等式或不等式以及图表、图象、框图等描述客观事物的特征及其内在联系的数学结构表达式。数学模型的类别主要有:(1) 按照人们对原形的认识过程分,可分为描述性的和解释性的数学模型。描述性的模型是从特殊到一般,它是从分析具体客观事物及其状态开始,最终得到一个数学模型。客观事物之间量的关系,通过数学模型被概括在一个具体的抽象的数学结构之中。解释性的模型是由一般到特殊,它是从一般的公理系统出发,借助于数学客体,对公理系统给出正确解释的一种数学模型。(2) 按照模型的应用领域分,可分为人口模型、交通模型、电气系统模型、通信系统模型、机电系统模型、环境模型、生态模型、水资源模型、再生资源利用模型、传染病模型和污染模型等。(3) 按照建立模型的数学方法分,可分为几何模型、代数模型、图论模型、规划论模型、微分方程模型、最优化控制模型、信息模型、随机模型、决策与对策模型、模拟模型等。(4) 按照模型的特征分,可分为静态和动态模型、确定和随机模型、离散和连续模型、线性和非线性模型等。(5) 按照对模型结构了解的程度分,有所谓白箱模型、灰箱模型和黑箱模型,它们分别意味着人们对原型的内在机理了解清楚、不太清楚和不清楚。而将matlab应用与数学建模:(1)避免了繁琐复杂的编程和调试,大大提高数学建模的效率;(2)数学建模者可以将主要精力放在模型的建立及机理分析方面,有利于提高数学建模和科技成果的质量;(3)丰富了数学建模的手段和方法;(4)将matlab 用于数学建模,还有重要的教学意义。在数学建模课程中引入matlab,其友好的界面、简单的语言、方便的操作、丰富的工具箱和先进的数据可视化功能等都将大大增强学生学数学、用数学的兴趣和热情,增强其用数学和计算机解决实际问题的能力,提高他们的综合应用能力和创新能力。3 系统的总体设计3.1 总体结构图 本系统共有5个模块,前4个模块分别用来显示所对应的数学模型的建模分析结果,最后1个模块用来更新数据,显示不同的数据分析出的不同的建模结果。具体结构图如图2.3: 系统总界面logistic 模 型战 争 胜 利 模 型战 斗 比 例 模 型数 据 更 新马得尔萨斯人口模型图2.3 总体结构图上图给出了结构图,各个模块如何实现下章详细介绍。3.2 数学模型的选择3.2.1 指数增长模型(马尔萨斯人口模型)托马斯罗伯特马尔萨斯牧师(thomas robert malthus,1766年2月13日1834年12月23日),一般被称呼为托马斯马尔萨斯,虽然他喜欢自称为罗伯特马尔萨斯。他是英国人口学家和政治经济学家。他的学术思想悲观但影响深远。人口学原理的基本思想是:如没有限制,人口是呈指数速率(即:2,4,8,16,32,64,128等)增长,而食物供应呈线性速率(即:1,2,3,4,5,6,7等)增长。注意:马尔萨斯使用的相对应术语是几何和算术。 只有自然原因(事故和衰老),灾难(战争,瘟疫,及各类饥荒),道德限制和罪恶(马尔萨斯所指包括杀婴,谋杀,节育和同性恋)能够限制人口的过度增长。参见马尔萨斯灾难。 马尔萨斯倾向于用道德限制(包括晚婚和禁欲)手段来控制人口增长。然而值得注意的是,马尔萨斯建议只对劳动群众和贫困阶级采取这样的措施。那么根据他的理论,较低的社会阶层对于社会弊病要承担较大的责任。这就从根本上导致了推动立法手段使英国的穷人生存状况更为恶化,但也减缓了贫困人口的增长。 马尔萨斯自己注意到许多人误用他的理论,痛苦地阐明他没有仅仅预测未来的大灾难。他辩解道,“周期性灾难持续存在的原因自人类有史以来就已经存在,目前仍然存在,并且将来会继续存在,除非我们的大自然的物理结构发生决定性的变化。”因此,马尔萨斯认为他的人口学原理是对人类过去和目前状况的解释,以及对我们未来的预测。所以此模型由他根据百余年的人口资料,于1798年发表的人口论中首先提出的人口增长模型。假设:人口增长率r是常数(即单位时间内人口的增长量与当时的人口成正比)建立模型:记时刻t = 0时人口数为x0, 时刻t的人口为x(t),由于量大, x(t)可视为连续、可微函数。t到t+t时间段内人口的增量为:满足微分方程: (1)模型求解:解上述微分方程,得:(2)模型的参数估计:利用线性回归解得r = 0.0237我们给出如下的数据:年(公元)人口(百万)17903.918005.318107.218209.6183012.9184017.1185023.2年(公元)人口(百万)186031.4187038.6188050.2189062.9190076.0191092.01920106.5年(公元)人口(百万)1930123.21940131.71950150.71960179.31970204.01980226.51990251.4 仿真验证:将x0 = 3.9,r = 0.0237代入公式(2),解出误差并做出图像(程序源代码下章,图像中红线是普查数据,蓝线预测曲线)图2.4马尔萨斯人口模型模型图 模型分析从上述图像和运行结果可以看出1790-1950年的预测人口数与实际人口数吻合较好,但1950年以后的误差越来越大。根据公式(2)可以算出: 解之,即得t=50ln234.6(年)即每35年,世界人口就要增长一倍。以1965年的世界人口33.4亿作为基数进行计算,可以得到: 2515年 200万亿 2625年 1800万亿 2660年 3600万亿若按人均地球表面积(包括水面、船上)计算,2625年仅为0.09平方米/人,也就是人挨着人才能挤得下,而35年后的2660年,人口又翻了一番,那就将会是人的肩上再站着人了。原因该模型的结果说明人口将以指数规律无限增长,而事实上,随着人口的增长,自然资源、环境条件等因素对人口增长的限制作用越来越显著。如果人口基数较少时人口的自然增长率可以看作常数的话,那么当人口增加到一定数量以后,这个增长率就要随着人口增加而减少,导致越往后误差越大。所以我们需要另一种模型3.2.2阻滞增长模型(logistic模型)假设:人口增长率r为人口x(t)的函数r(x)(减函数),最简单假定(线性函数),r叫做固有增长率考虑到自然资源和环境条件的限制,年容纳的最大人口容量为,建立模型:当时,增长率应为0.即,于是.代入得r(x)=r(1-x/)将上式代入/=r(x)x式得:/ = r(1-x/)x (3))=模型求解:解方程(3),得 (4)模型的参数估计:利用曲线拟合解得r=0.0280, xm = 311.9527我们给出如下的数据:年(公元)人口(百万)17903.918005.318107.218209.6183012.9184017.1185023.2年(公元)人口(百万)186031.4187038.6188050.2189062.9190076.0191092.01920106.5年(公元)人口(百万)1930123.21940131.71950150.71960179.31970204.01980226.51990251.4仿真验证将x0 = 3.9, r=0.0280, xm = 311.9527代入公式(4),并解出误差、做出图像(程序源代码见下章,图像中红线是普查数据,蓝线预测曲线)图2.5 logistic模型图 模型分析 由上述误差计算和图像可以看出,logistic模型已经能够较好的预测未来人口的数量,是一个较精准的人口模型3.2.3 lanchester战争模型早在第一次世界大战期间,f.w.lamchester就提出了几个预测战争结局的数学模型,其中有描述传统的正规战争的,也有考虑稍微复杂的游击战争的,以及双方分别使用正规部队和游击部队的所谓混合战争的.后来人们对这些模型作了改进和进一步的解释,用以分析历史上一些著名的战争,如二次世界大战中的美日硫黄岛之战和1975年结束的越南战争. lamchester提出的模型是非常简单的,他只考虑双方兵力的多少和战斗力的强弱。兵力因战斗减员和非战斗减员而减少,又由后备力量的增援而增加;战斗力即杀伤对方的能力,则与射击率(单位时间的射击次数)、射击命中率以及战争的类型(正规战、游击战)等有关.这些模型当然没有考虑交战双方的政治、经济、社会等因素.而仅靠战场上兵力的优劣是很难估计战争胜负的,所以我们认为用这些模型判断整个战争的结局是不可能的,但是对于局部战役来说或许还有参考价值.更重要的是,建模的思路和方法为我们借助数学模型讨论社会科学领域中的实际问题提供了可以借鉴的示例。正规战争模型令x(t)表示t时刻甲军人数,y(t)表示t时刻乙军人数,假设(1) 每一方人数减员率与另一方人数成正比;(2) 两军士兵都处于双方火力范围内;(3) 不考虑双方支援部队;(4) 双方的初始兵力分别是和;由以上假设可得正规部队的作战模型为:式1,初始值为;a和b均大于零,表示y和x方的战斗系数;对上述方程积分得 式2;这就是著名的“lanchester平方定律”。在 x-y 平面上是一簇双曲线,如图所示。双曲线上箭头表示战斗力随着时间而变化的方向。图2.6对比图可以看出,如果 c 0,轨线将与y轴相交,这就是说存在,使,即当x方兵力为零时y方兵力为正值,表明y军获胜。同理可知c0时x军获胜。当c=0时双方战平。进一步分析可知,y军要想获胜,既要使成立。可采用两种方式:(1)增加 a,即配备更先进的武器。(2)增加最初投入战斗的人数。但是值得注意的是:在式2中,a 增大两倍,结果也增大两倍,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论