计算机模拟技术
课程名:计算机模拟技术
计算机模拟是在科学研究中常采用的一种技术,特别是在科学试验环节,利用计算机模拟非常有效。所谓计算机模拟就是用计算机来模仿真实的事物,用一个模型(物理的-实物模拟;数学的-计算机模拟)来模拟真实的系统,对系统的内部结构、外界影响、功能、行为等进行实验,通过实验使系统达到优良的性能,从而获得良好的经济效益和社会效益
计算机模拟方面的研究始于六十年代,早期的研究主要用于国防和军事领域(如航空航天、武器研制、核试验等),以及自动控制等方面。随着计算机应用的普及,应用范围也在扩大,现在已遍及自然科学和社会科学的各个领域。在农业方面,我国从80年代开始进行作物生长发育模拟模型和生产管理系统的研究,目前有一定基础的:在小麦方面有北农大、中科院;棉花方面有中国农业大学、中国棉花所;水稻方面有江西农科院;在土壤水份、水资源及灌溉方面西北农业科技大学。目前影响较大的有比较成形的有江苏省农科院。目前的主要成果有:我国主要农作物栽培模拟优化决策系统RCSODS(水稻)和WCSODS(小麦-江苏省农科院)、MCSODS(玉米-河南省农科院)、CCSODS(棉花-中国农业大学)等。
计算机模拟特别适合于实验条件苛刻、环境恶劣(如真空、高温、高压、有毒有害的场所)、试验周期长,花费大的场合。
农作物的生产系统就很适合于计算机模拟:农作物的生产受各种条件的影响,不同作物、不同品种也有差异。比如,要想提高一种作物的产量,就先要作试验,通过试验了解这种作物的特性:抗旱性、耐寒性、对氮、磷、钾哪种肥更有效等。但农业的田间实验不能保证精度(除人为可控条件外,还有许多随机因素)、周期长(周期一年),耗费大。可通过计算机模拟来实现:先建立这种作物生产系统的数学模型(依靠专业知识或试验数据。一般来说,诸如作物产量和农业环境的关系可用微分方程或其它方程来描述),通过计算机模拟来出这种作物的生长与农业环境相互作用的关系,以及各种条件之间的协迫情况。不仅可大大节省实验经费、加快研究进度(周期一年的实验结果几秒钟内即可得到),这种模拟软件的开发还可与农业生产管理系统,决策系统相联系,实现对农作物生产的预测、分析、调控、设计的数字化和科学化。
作为一门课程,不是研究某个特定系统的模拟问题,而是了解计算机模拟的一般过程、基本原则,掌握基础知识,掌握建模及动态模拟的一般方法
第一章 计算机模拟概述
1.1 计算机模拟技术
研究对象    在一个计算机模拟问题中,我们研究的对象是一个系统
系统一些具有特定功能的、相互之间按一定规律联系着的实体的集合如作物的生产系统可看作由作物、环境、技术、经济等要素构成的。各要素之间相互影响、相互联系,称为系统的相关性;一个系统是一个整体,整体内的各个部分不能分割,各因素之间必须相互协调,不能在任何一个环节出问题,才能使系统达到优良的状态,称为系统的完整性
目标    计算机模拟的目标是了解系统的各个实体之间的相互制约关系,从而使系统在预定的目标下达到最优和完善。如在作物生产系统中,怎样控制、实施各水、肥、栽培技术等,从而使产量最高,以获得最优的经济效益
方法    模拟的方法是先建立系统与环境相互作用的数学模型,用数学模型来类比、模仿现实系统(一个数学模型就是从数学上表达系统各因素之间的数量关系,或各因素之间协调的规则;从整个模拟过程来看就是一个算法,或一系列数据,这些数据综合描述一个系统
过程或现象的重要行为),然后在数学模型和对系统深刻了解的基础上,开发模拟软件,用影响系统目标的因素作为输入,通过计算机技术来表达系统各因素作用的状态。从数学的角度来看,模拟的过程就是对数学模型求解的过程,并把系统过程演示出来
基础知识    可见,对一个系统进行计算机模拟,
(1) 要对模拟对象有深刻的了解。如:一个公交车调试系统,要编制一个好的调度程序,必须先对现行系统作周密的调查,搞清哪些是影响调度程序的成分及实体,如现有车辆数、每车载客数、每趟车花费的时间、沿途乘客的密集程度、乘客的一般去向、乘客高峰期的人数等。只有经过周密的调查研究,才能形成一个完整的模拟系统;作物生长模拟系统中,也要搞清影响作物生长的各因素,具备丰富的专业知识,否则不能建立起精确的模型。在对一个系统的动态特性不完全清楚的情况下,有必要通过实验获取数据,以用于数学模型的建立。
(2) 要有数学知识。一般研究的系统较复杂,不能用简单的函数或方程来描述,要综合使用各种数学方法,才能使模型准确、可靠。
(3) 计算机知识和编程技巧。软件应完整地实现系统的数学描述,输出应直观、形象,如三维可视化输出等。软件的开发是项目的重要工作,也直接影响模拟的效果。软件的编写可使用任何编程语言,如C、VB、Java等。专门的语言如GPSS,GPSS是面向对象问题的离散事件的专用模拟语言,优其适用于排队系统。1961年,IBM公司发表GPSS的第一个版本,后来又有其它公司的各种版本。标准的版本有52个模块,每个模块用特定的名称和图形来表示其功能。现在一般常用的语言都有模拟库(已编好的用于实现模拟功能的函数)专门用于模拟软件的开发。
1.2 系统的分类
可模拟的系统各种各样,不同类型的系统用不同的模型来描述。系统的分类方法很多,重要的分类方法是按系统的状态是否随时间变化来分:一个行为与时间有关的系统称为动态系统
待研系统:静态系统:系统的行为与时间无关;用静态模型来描述,一般为数学方程、逻辑表达式等。
                  如,电路的布尔表达式;电路中电压与电流的关系;系统的稳态解公式等
        动态系统:连续系统:系统的状态随时间连续变化;常用微分方程来描述;方程对所有
                            时间点有效。如,卫星运行轨道,作物生长量等
                            确定性系统:系统的输出完全由其输入来描述,即系统输入与
                                        输出按某种规则一一对应
                                        集中参数模型:用常微分方程来描述,即方程中的
                                                      导数不是偏导数
                                        分布参数模型:用偏微分方程来描述,但一般用
                                                      集中参数模型近拟表示
                            随机系统:系统的输出是随机的,有规律的存在一族随机变量,
                                      且随机变量序列与时间有关(随机过程)。
                                      在确定性系统的模拟中使用随机变量的研究方法
                                      称为蒙特卡罗方法
                  离散系统:系统状态的变化只在离散的时间发生;动态方程只在离散点上有效;
                            一般为随机系统。如,库存问题;企业的管理系统等
                            离散时间系统:时间步长固定;常用差分方程来描述
                            离散事件系统:用事件来表示系统在时间间隔内的变化;常用
                                          概率模型来描述
1.3 建立数学模型
对一个系统,确定其类型后有助于选择合适的方法建模,建模的一般步骤可分两个大的阶段:
(1) 实质内容模型阶段:首先对模拟对象进行调查(了解系统,搜索模拟所需的信息)、实验(参数估计等统计推断方法,确定参数及参数的敏感性)、分析(将信息分类、量化,确定描述系统的规则),尽可能全面地掌握系统的基本特性、运动规律以及中间状态(最好是有对系统有深入了解的专业人员参与),通过分析和逻辑推理,揭示系统内的规律。
(2) 形式数量阶段:在调查、实验、分析的基础上,进一步揭示系统内部的数量关系,并对其进行数学处理,即对系统用数学形式来描述:用变量描述系统状态,用各种数学方程定量表示各变量之间的相互联系,用递归方程描述系统状态的发展趋势。
多数情况下,建立一个好的(能真实的描述系统,有代表性,能准确的模拟系统的数量信息,与实际系统较吻合)数学模型不易,优其是复杂多变的系统或系统本身的特性尚不完全清楚的情况(如对农作物开发新品种)。所以在数学模型建立后,必须进行模拟验证,如与真实系统相差较大,则要重新建模或修改模型。所以一个好的数学模型必须经过多次模拟,不断修改、完善,才能得到。
一个数学模型是描述系统行为的一个算法或一系列方程,工程中对系统建模应先建立系统的需求规格说明,在制定模拟规划之前予以充分讨论,过程中需考虑以下因素:
(1) 模型中需考虑哪些有效的因素:一个系统可能有不同的行为(如一个作物生产系统中有作物的长势、产量、质量、病虫害等),但不一定所有这些因素都要建立在模型中。模型中需要考虑的因素是:真正能简化系统的建模;对系统易于建模、测试和维护;使用较少的计算资源;对研究的系统有直接作用的。
(2) 建模细化到什么程度:根据系统的需求确定细化的程度,是只须建立一个简单的模型,还是要对系统行为精确描述。在模型的准确性和花费之间求得平衡。
(3) 与系统有相互作用的哪些外部环境考虑在建模中:如在作物生长模型中,气候、水、肥等。
(4) 在建模中采取什么技术:首先,是基于物理的方程,还是基于测试数据。如果基于物理的方程,是用微分方程,还是差分方程,考虑不考虑随机因素等。这个问题常由专业人员根据系统的专业知识来决定;如果基于试验数据,则建立经验方程。
(5) 建模时必须获得什么样的数据:如林木生长模型中,需要胸径、树高、材积等数据。另外还需考虑这些数据的方便的输出形式,以及模型需要的计算资源,如模型需要占用的内存、磁盘空间、消耗的CPU时间等。
易语言轰炸机源码最新