首页 > 文章中心 > 数学建模中的常用算法

数学建模中的常用算法

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇数学建模中的常用算法范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

数学建模中的常用算法

数学建模中的常用算法范文第1篇

关键词:运筹学;数学建模;教学;案例

中图分类号:G642.3 文献标志码:A 文章编号:1674-9324(2012)08-0106-03

运筹学应用分析、试验、量化的方法,对经济管理系统中人、财、物等资源进行统筹安排,为决策者提供有依据的最优方案,以实现最有效的管理。该课程主要培养学生在掌握数学优化理论的基础上,具备建立数学模型和优化计算的能力。本文提出一种新的教学改革思路,将运筹学和数学建模两门课程合并为一门课程,即开设大容量交叉课程《运筹学与数学建模》来取代《运筹学》和《数学建模》两门课程,采用案例教学和传统教学相结合的教学方法,数学建模和优化算法理论并重的教学模式。这样既可以避免出现极端教学和随意选取教学内容的现象,又可以将新颖的教学方法与传统方法相结合,按照分析问题、数学建模、优化算法理论分析及其方案制定、实施等解决实际问题步骤展开教学。下面就该课程开设的必要性、意义、可行性、注意事项及其存在问题等方面进行分析。

一、开设《运筹学与数学建模》课程的必要性

1.一般院校的运筹学课程的教学课时大约为64或56(包含试验教学),所以教学中不能囊括运筹学的各个分支。一方面,由于课时量不足,教师选取教学内容时容易出现随意性和盲目性;另一方面,教学中为强化运筹学的应用,消弱理论教学,从而导致学生对知识的理解不透彻,在实际应用中心有余而力不足。

2.运筹学解决实际问题的步骤是:(1)提出和形成问题;(2)建立数学模型;(3)模型求解;(4)解的检验;(5)解的控制;(6)解的实施。大部分教学只涉及步骤(3),即建立简单数学模型,详细介绍运筹学的算法理论,与利用运筹学解决实际问题的相差甚远。因此,学生仍然不会应用运筹学解决实际问题,从而导致学生认为运筹学无用。

3.数学建模课程包含大量的运筹学模型;运筹学在解决实际问题的环节中包含建立数学模型步骤。目前两门课程分开教学,部分内容重复教学,浪费教学课时。

二、开设《运筹学与数学建模》课程的意义

1.激发学生的学习动机,培养学习兴趣。该课程包含数学建模和运筹学两门课程的内容,内容容量大,教学课时丰富,教学过程中能够以生产生活中的实际问题为案例,分析并完整解决这些问题,创造实际价值,使学生认识到该课程不但对未来的工作很重要,而且还有可以利用运筹学知识为企业或个人创造价值,改变运筹学“无用论”的观念。从而激发学生的学习动机,产生浓厚的学习兴趣。

2.合理处理教学内容。运筹学与数学建模的课时量相对充足,能够安排更多的内容,能够系统、完整地介绍相关知识,在一定程度上避免了运筹学内容安排的随意性和盲目性。

3.促进教学方法改革。运筹学与数学建模的教学不再是简单的数学建模和理论证明,教学内容丰富、信息量大,传统的一支笔一本教案一块黑板的模式不再适用,需寻找新的教学方法,促进了多种教学方法的融合。

4.培养学生综合能力。实际案例源于社会、经济或生产领域,需要用到多方面的知识,但学生不可能掌握很多专业知识。因而,在解决实际案例的过程中,需要查阅大量的相关文献资料,并针对性阅读和消化。而且,实际案例数据量大,需要运用计算机编程实现。因此,通过该课程的学习,可以提高学生多学科知识的综合运用能力和运用计算机解决实际问题的能力。

5.改变教学考核方式。教学改革后,教学内容已延伸到运用优化知识解决实际案例的整个过程。教学过程中既有对实际案例分析、建模,又有算法介绍、求结果的检验及其最终方案的实施。因而,传统的单一闭卷考试改为笔试和课后论文相结合的方式。

三、开设该课程的可行性

1.运筹学和数学建模互补性、递进性使得开设该课程在理论上可行。数学建模是利用数学思想去分析实际问题,建立数学模型;运筹学是利用定量方法解决实际问题,为决策者提供决策依据。由此可见,建立数学模型为运用运筹学解决实际问题的重要步骤。所以,运筹学可以认为是数学建模的进一步学习。同时,运筹学模型为数学建模课程介绍的模型中的一部分,并且运筹学处理实际问题的方法为数学建模提供了专业工具。因此,运筹学与数学建模在内容上是互补的。由此可知,开设该课程在理论上是可行的。

2.计算机的发展使得开设该课程在操作上可行。随着计算机的发展,能很快完成大数据量的计算,实际案例的数据分析、数学建模及其求解能快速实现,从而使得该课程的教学工作能顺利开展。

3.大学生的知识储备使得开设该课程在基础上可行。学习该课程的学生是高年级学生,通过公共基础课和专业基础课的系统学习,分析问题、解决问题的能力得到进一步提高。同时,运筹学和数学建模所需基础知识类似,学习该课程所需的线性代数、概率论与数理统计、高等数学及微分方程等课程也已经学习,运用运筹学与数学建模知识解决实际案例所需的基础知识已经具备。因此,开设该课程是可行的。

数学建模中的常用算法范文第2篇

【关键词】 人工神经网络;中医证候;非线性建模

建模就是建立一个数学模型,使之能最好地拟合通过系统的输入输出数据体现出的实际系统的动态或静态特性。证候学研究的目的就是通过对四诊信息的综合分析,找出证候的特征,做出证型的分类诊断。因此,可以通过数理分析方法总结证型与指标之间的规律,建立证候诊断数学模型。常用的证候建模方法分为线性建模法和非线性建模法两种。

1 线性证候建模方法及其存在的问题

目前,常用的线性证候建模方法有多元线性回归分析、因子分析、判别分析等多元统计方法。多元线性回归分析可以根据各指标的常数项和偏回归系数建立证候的多元线性回归方程;因子分析可以通过将公因子表示为指标的线性组合,从指标的观测值估计各个公因子的值,从而建立证候的因子得分模型;判别分析可以对证候诊断明确的一组资料建立证候的判别函数。上述3种方法均可以建立证候的线性模型,并可实现对证候的诊断和预测。

多元统计方法很多都是对复杂问题的线性简化。如判别分析和回归分析都是不加区别地、均衡地看待每个症状变量对线性关系的影响,同时还基于各变量的作用与其他变量的值无关,且各变量的作用可以叠加这一不甚合理的假定而建立的症状和证候关系的一种简单的线性描述[1];因子分析也是建立每一个公因子(证候)和变量之间的线性函数。然而,中医证候系统具有非线性复杂性特征,且症状之间存在大量的多重共线性关系和协同关系,线性建模方法虽然有利于对复杂问题的数学描述,但却很难准确地模拟症状和证候之间的复杂关系,更难以逼近中医证候的真实面貌。

2 非线性证候建模方法

非线性建模法又称黑箱建模法,即在不了解黑箱内部机理和结构的情况下,通过提取隐含在系统的输入输出数据中的特性,建立一个能充分逼近系统实际结构的等价模型。目前,人工神经网络技术具有强大的非线性映射能力,能够任意精度逼近非线性函数,成为非线性系统辨识的主要建模方法。

中医证候的诊断过程,实质上是由收集到的各种症状,通过分析获得证型诊断的过程,可以把这个过程看作是一个非线性映射过程,因此,我们将改进的BP神经网络用于中医证候的非线性建模研究,探讨了基于人工神经网络模型的非线性证候建模方法。

3 基于人工神经网络的证候非线性建模方法

3.1 人工神经网络简介

人工神经网络(artificial neural network,ANN)是在对人脑神经网络结构认识理解的基础上,人工构造的新型信息处理系统。ANN具有大规模的并行处理方式、良好的鲁棒容错性、独特的信息存储方式以及强大的自学习、自组织和自适应能力,这使得它在模式识别、控制优化、信息处理、故障诊断以及预测等方面应用广泛,其理论与技术方法在工程、医疗卫生、农业、交通、财经、军事、环境、气象等领域显示出巨大的吸引力,并具有广阔的应用前景[2]。

ANN的一个显著特征是它通过自动学习来解决问题,对样本的学习过程,即为对网络中的神经元间的联系强度(即权重系数)逐步确定的过程,通过对样本的学习,可以学会识别自变量与应变量间的复杂的非线性关系。经过充分学习后的ANN获取了样本的特征规则,并将这些规则以数字的形式分布存贮在网络的连接权中,从而构成了系统的非线性映射模型。这样的ANN模型不仅能够对其学习过的样本准确识别,而且对未经学习的样本也可以准确识别,它甚至可以充分逼近任意复杂的非线性映射关系。可见,ANN不需要精确的数学模型,而是通过模拟人的联想推理和抽象思维能力,来解决传统自动化技术无法解决的许多复杂的、不确定性的、非线性的自动化问题。

BP神经网络[3]是指基于误差反向传播算法(back propagation,简称BP算法)的多层前向神经网络。BP网络的神经元通常采用Sigmoid型可微函数,可以实现输入到输出间的任意非线性映射,这使得它在函数逼近、模式识别、数据压缩等领域有着广泛的应用,也使得它能够应用于中医证候的非线性建模。

3.2 非线性建模方法

证候具有典型的非线性特征,证候的诊断过程可以看作是一个从诊断指标到证候的非线性映射过程,这个过程用非线性数学模型可以充分模拟,而ANN是典型的非线性数学模型,其中的BP网络更具有强大的非线性拟合能力。因此,我们选择ANN中最常用的BP神经网络技术,并进行适当的改进后,建立中医证候的非线性模型,然后对建立的证候模型的诊断性能进行测试。具体步骤如下。

3.2.1 数据预处理

在建模之前,首先对试验数据进行预处理。包括对输入数据的归一化处理和对数据的主成分分析以及资料的分组处理等。

先对所有数据进行归一化处理,使变换后的输入输出信息在(0,1)区间,以防止小数值信息被大数值信息所淹没;然后对归一化处理后的数据进行主成分分析,主成分的选择标准定为95%。数据经过主成分分析,可对大量的输入信息进行降维处理;最后根据验证方法进行病例分组,我们采用3倍交叉验证法,因此,将样本随机分为3组。

3.2.2 确定BP网络的结构

在MATLAB7.0环境下,采用改进的共轭梯度学习算法(trainscg学习算法),建立证候的三层前向BP网络模型。该网络包括输入层、隐层和输出层,其中输入层包含的输入神经元数即是证候的诊断指标数;隐层的层数及每层包含的神经元数根据具体情况而定;输出层包含的输出神经元数即研究资料包含的基本证型数。两个隐层之间通过双曲线正切S型传递函数(tansig)连接,隐层与输出层之间用对数S型传递函数(logsig)连接。设定网络的系统误差为小于0.01,最大迭代次数为500次,最小下降梯度为10-10。

其中,网络的输出节点用来表示共几种证型,表示方法是一个输出节点对应一种证型。我们将包含n个证型的输出采用(0,1,…,0)的方式,括号内共有n个数值,每一个数值代表一种证型,其中0表示诊断不成立,1表示诊断成立,这样可以诊断兼夹证的情况。另外,预测输出值分原始输出值和整合输出值两组,原始输出值为0到1之间的连续值;整合输出值既可整理成(0,1)的形式(规定≥0.5为1),又可整理成0-1之间的分段数值,比如(0,0.2,0.4,0.6,0.8,1)等6个数值,这样根据数值大小既可诊断兼夹证,又可判断证型的主、次情况。

3.2.3 证候网络模型的训练

先取样本的两组作为训练集,另一组作为测试集,再交换其中的一组,如此循环,分别共做3次训练与测试,从中得出平均预测效果值。

网络参数的初始值取为[-0.5,+0.5]上均匀分布的随机数。经重置几次网络权值的学习率和动态训练集后,不断改善权值。到权值趋稳,即认为网络训练完成。

3.2.4 证候网络模型的测试

神经网络训练的期望目标是以尽可能简单的网络结构达到尽可能高的学习精度和尽可能好的泛化能力,因此考察神经网络的性能就要看网络的泛化能力。所谓泛化,就是网络对尚未学习过的数据的正确识别能力,是否具有良好的泛化能力是网络能否投入实际使用及使用效果如何的重要因素。它可以通过测试样本集网络诊断结果的特异性和准确率来衡量。

证候网络模型的权值趋稳,训练结束后,即可以采用三倍交叉验证的方法,分3次分别对1/3测试样本做检验。此时只有输入矢量(即只有症状得分),无输出期望值(即没有相应证型的判断)。经网络运算后,得出预测输出值,与期望输出进行比较,分别统计各种证型预测值的特异性和准确率,以判断该证候神经网络模型的诊断性能。

4 实现基于人工神经网络的非线性证候建模研究

我们采用上述非线性证候建模方法,在MATLAB7.0环境下,对一组765例类风湿性关节炎(rheumatoid arthritis,RA)临床证候资料和一组449例糖尿病肾病(diabetic nephropathy,DN)临床证候资料,分别建立了RA证候BP网络模型和DN证候BP网络模型,并均采用三倍交叉验证的方法,检验了证候神经网络模型的诊断性能(具体内容另文详述)。测试结果显示:两种模型的平均单证特异性分别为81.31%、81.32%;平均单证准确率分别为95.70%、96.25%;平均诊断准确率分别为90.72%、92.21%。说明基于改进的BP神经网络的证候模型具有较高的诊断、预测能力。

5 讨论

“线性”和“非线性”是区别事物复杂性程度的标尺,在数学中,当两个变量(自变量和应变量)的关系成正比时就称为线性关系,否则就是非线性关系[4]。在生命科学中,由上述概念推广而来的线性和非线性逻辑则更具实用意义,非线性逻辑表征事物各组分之间是相互作用的,而不是相互独立的、正则的、无限可微的和平滑的,即总体不等于部分之和,它是复杂系统的典型特征之一。证候是机体各层级结构的整体涌现现象,中医四诊信息所表达的就是人体各层级结构的功能失调逐级涌现的结果[5]。显然,证候具有非线性特征。

对非线性证候系统建模应当用非线性建模法更能反映证候的实质。基于黑箱结构的ANN具有强大的非线性建模能力。因此,我们将其用于证候的非线性建模。

我们在基于共轭梯度下降算法的BP神经网络的基础上,对RA临床证候资料和DN临床证候资料均建立了非线性神经网络证候模型,经过三倍交叉验证,两种证候神经网络模型均有良好的诊断、预测能力。可以得出结论,ANN在不必知道内部结构的情况下能够充分模拟症状与证候的非线性映射关系。神经网络利用网络的自动学习能力,在充分辨识证候表征信息的基础上,可以自动抽提出这些信息蕴含的内在规律,并将其分布在网络的联接权中,从而建立了症状与证候的非线性映射函数。

在这里,样本(证候)被概括为一对输入与输出的抽象的数学映射关系,各种物理表征信息为输入单元,证型诊断为最终的输出结果。证候诊断的过程被看作了一个映射问题,通过症状找出对应的证型诊断,神经网络把症状与证型的对应关系通过输入与输出的映射转化成了一个非线性优化问题。虽然不清楚网络模型的内部结构,但我们的研究证实这种模型却能够充分逼近症状与证型诊断的非线性映射关系,近似真实地反映证候的全貌,这是在不打开黑箱的前提下,建立非线性证候模型、反映证候的内在规律和特征的有效方法。

BP神经网络虽然是一个标准的非线性数学模型,但它的收敛速度非常慢,为此,我们采用trainscg函数改进train函数,trainscg函数是共轭梯度算法的一种变形,具有采用尺度化共轭梯度反向传播算法对网络进行训练的功能。该算法结合了Levenberg-Marquardt算法中的模型置信区间方法和共轭梯度算法,避免了耗时巨大的线搜索过程,从而大大提高了网络的训练速度。我们建立的两种证候网络最后一次训练的迭代次数分别为58、33,说明建立的证候网络模型有很好的收敛性能。

总之,中医证候的诊断规律蕴含在足够多的样本集合中,利用神经网络的自主学习能力从大量的样本中进行证候特征的规则提取,能够抽提出比较全面的内在规律;同时,网络的自组织、自适应能力又能加强对边缘相似病例的辨识能力,这样的证候诊断模型更能充分逼近证候真实面貌。基于改进的BP神经网络的证候非线性数学模型具有良好的诊断、预测能力,能够充分逼近证候的真实面貌,是证候非线性建模的可行性方法。

当然,用ANN建立的证候模型是否有强大的推广能力,取决于样本的含量以及样本所含信息的全面程度。因此,必须保证样本的含量足够大、样本所蕴含的证候诊断信息足够全面,这样才能尽量真实地展示证候全貌。同时,ANN的知识处理能力还需进一步提高,还需围绕如何提高神经网络的学习能力、收敛速度、可塑性以及普化能力等方面展开深入研究。但目前采用神经网络技术建立证候数学模型,从而实现对证候的非线性建模,对中医证候的规范化研究不啻是一种可行的方法。

【参考文献】

[1] 袁世宏,王天芳.多元统计方法在建立证候诊断模型研究中存在问题的思考[J].北京中医药大学学报,2004,27(4):9-11.

[2] 白云静,申洪波,孟庆刚,等.中医证候研究的人工神经网络方法探析[J].中医药学刊,2004,22(12):2221-2223.

[3] 许 东,吴 铮.基于MATLAB6.X的系统分析与设计——神经网络[M].第2版.西安:西安电子科技大学出版社,2002.19-24.

[4] 包含飞.初议中医学是复杂性科学[J].上海中医药大学学报,2003,17 (2):3-6.

数学建模中的常用算法范文第3篇

关键词:数值分析;教学实践;数学建模;案例教学

中图分类号:G643文献标识码:A文章编号:1009-3044(2012)01-0228-03

The Practice of Mathematical Modeling in Numerical Analysis Teaching

LI Jun-cheng1, CHEN Guo-hua1, SONG Lai-zhong2

(1. Department of Mathematics, Hunan Institute of Humanities, Science and Technology,Loudi 417000, China; 2. College of Science, Chi? na Three Gorges University, Yichang 443002, China)

Abstract: For the effective implementation of the practice teaching of numerical analysis course, this paper analyzes the necessity of the or? ganic integration of mathematical modeling and numerical analysis course teaching. And then, several selected mathematical modeling cases are introduced according to the different teaching contents in numerical analysis. Through the integration of mathematical modeling in nu? merical analysis teaching, it can not only make students better grasp of the theory and method of numerical analysis, but also can cultivate students’ ability of mathematical modeling.

Key words: numerical analysis; practice teaching; mathematical modeling; case teaching

数值分析作为高等院校应用数学专业、信息与计算科学专业的主要基础课程和很多理工科专业的公共课,主要研究求解数学模型的算法及有关理论,是求解数学模型的不可缺少的途径和手段。在信息科学和计算机技术飞速发展的今天,数值分析课程中所介绍的数值方法更显得极其重要。与其它数学课程的最明显的区别在于,数值分析是一门更注重应用的科学,特别注意在方法的精确性和计算的效率之间的平衡。传统的教学模式只注重讲授数值方法的原理,算法的理论推导占据了整个教学过程的大部分时间,再加上缺乏实践环节的教学,就使得学生不能很好的运用所学的理论去解决实际问题[1]。

既然数值分析主要研究数学模型的求解算法及有关理论,因此将数学建模思想融入到数值分析的教学中是可行的[2]。为有效地实施数值分析课程的实践教学,本文主要介绍了几个针对数值分析不同教学内容的数学建模实践教学案例,这些精选的案例都涉及到相关的数值分析理论和方法。通过对实际问题进行数学模型的建立和求解,将数学建模思想和数值分析教学进行有机的融合,不但可以激发学生的学习积极性和学习兴趣,提高了学习效率,而且可以培养学生运用数值方法求解实际问题的能力。

1数学建模思想与数值分析课程教学有机融合的必要性

数值分析是一门理论抽象但实践性较强的课程,传统的教学模式一般只注重理论证明和公式推导,再加上学时的限制,很少会利用数学软件进行相应的实践性教学,导致学生只掌握了数值分析中的基本方法和原理,而运用数值方法解决实际问题的能力没有得到较好的锻炼。也正因为如此,学生的学习积极性不高,大部分学生不知道或者根本没有想过可以利用所学的数值方法去解决很多实际的问题。因此,针对数值分析课程的特点,采取可行的教学改革是有必要的。许多从事数值分析课程教学的工作者在这一方面作了很多的尝试和探索。例如,文献[3]讲述了任务驱动教学法在数值分析实验课教学中的实施步骤及过程,并给出具体实例。文献[4]以MATLAB作为工作语言和开发环境,开发了一个能有效地辅助数值分析课程教学的软件。

从数值分析课程的特点和教学目标来看,培养学生运用数值方法解决问题的能力是该课程的重点所在[5]。而数学建模主要考察的是学生将实际问题抽象成数学模型,然后利用综合知识求解数学模型的能力。通过对历年来全国大学生数学建模竞赛进行分析发现,许多数学模型的求解都会用到数值分析课程中的各种数值方法。因此,将数学建模思想与数值分析课程教学进行有机的融合是非常必要的。在数值分析课程的各个教学模块中,通过实际的数学建模案例进行数值方法与理论的讲解,让学生觉得所学的知识在实际工程问题中具有很大的应用价值,这样既可以吸引学生的眼球,提高学习效率,同时也可以培养学生运用数值方法解决实际问题的能力。

由表2可知两点三次Hermite插值多项式计算断面面积的误差最小,其次是三次样条插值多项式,误差最大的是三次Lagrange插值多项式,即所得结论与理论是相符的。

通过此案例,不但可以让学生掌握不同插值法的基本原理,而且还可以让学生体会到不同插值法的特征:三次Lagrange插值多项式(三次Newton插值多项式)分段光滑,两点三次Hermite插值多项式整体一阶光滑,而三次样条插值多项式整体二阶光滑。

2.2数据拟合的案例教学实践

所谓数据拟合是指已知某函数的若干离散函数值,通过调整该函数中若干待定系数,使得该函数与已知点的差距最小,最常用的数据拟合方法为最小二乘法。在数据拟合的教学中,可采用下列数学建模问题的求解进行案例教学。

例2:数据拟合教学案例――上海市就业人口预测

已知2000年~2009年上海市每年的就业人口数,如表3所示,现要预测2010年上海市的就业人口数,并与2010年真实的就业人口数(1574.6万人)进行对比分析。

表3上海市就业人口统计(单位:万人)

图2上海市就业人口数拟合图形

通过此案例的教学,不但可以让学生理解最小二乘曲线拟合的基本原理与步骤,而且还可以为学生参加数学建模竞赛时进行数据处理打下基础。

2.3数值微分的案例教学实践

所谓数值微分是指根据函数在一些离散点的函数值,构造一个较为简单的可微函数近似代替该函数,并将简单函数的导数作为该函数在相应点处导数的近似值。常用的数值微分公式有差商公式、两点公式、三点公式等。在数值微分的教学中,可采用下列数学建模问题的求解进行案例教学。

例3数值微分教学案例――人口增长率[7]

已知1950年~2000年每10年中国人口的统计数据如表1所示,试计算这些年份的人口增长率。

表4中国人口统计数(单位:亿人)

3结束语

为有效地实施数值分析课程的实践教学,本文主要介绍了几个针对数值分析不同教学内容的数学建模实践教学案例。通过对实际问题进行数学模型的建立和求解,将数学建模思想融入到数值分析的教学中,不但可以让学生较好的掌握数值分析的有关理论与方法,而且还可以培养学生的数学建模能力,为参加数学建模竞赛时打下一定的基础。

参考文献:

[1]赵景军,吴勃英.关于《数值分析》教学的几点探讨[J].大学数学, 2005, 21(3): 28-30.

[2]郭金,韦程东.在数值分析教学中融入数学建模思想的研究与实践[J].广西师范学院学报(自然科学版), 2008, 25(3): 124-127.

[3]杜廷松.摭谈数值分析实验课程中的任务驱动教学[J].中国电力教育, 2008, 1: 118-120.

[4]王强,金珩. MATLAB环境下的数值分析教学软件开发[J].内蒙古民族大学学报(自然科学版), 2004, 19(2): 176-179.

[5]刘艳伟,司军辉.数值分析课程教学改革若干问题探讨[J].黑龙江教育学院学报, 2010, 29(6): 75-76.

数学建模中的常用算法范文第4篇

关键词:系统模拟与仿真;课程教学;实例演示

中图分类号:TP391文献标识码:A文章编号:1009-3044(2010)22-6369-03

Simulation Exemplars for System Simulation Course

HUANG Han-ming

(College of Computer Science and Information Engineering, Guangxi Normal University, Guilin 541004, China)

Abstract: This paper briefly narrates the general concepts of system and various system theories, and introduces the necessity of system simulation for the researches of systems. Then the teaching purpose and main contents of system simulation course are given. After that, some understandings in this course teaching experiences are presents. Finally, several having applied measures which might be helpful to enhance the effect of teaching are discussed:reinforce simulation principles teaching, guide students broadening scope of knowledge, use simulation case studies as education emphases

Key words: system simulation; course pedagogy; exemplar demonstration

系统是一个与环境相对的概念,任何相互联系、相互影响、相互作用的部分所组成的一个整体皆可称为一个系统。系统的各个组成部分之间,通过物质、能量和信息的交换而相互关联、相互影响、相互作用;系统与环境之间,亦存在着物质、能量和信息的输入、输出关系。早在古代中国和古希腊的哲学中,就包含朴素的系统思想。随着社会的发展和近、现代科学技术的兴起与进步,在军事、工程、经济、社会等诸多领域,都存在着大量的有关系统的问题。为解决这些问题,20世纪40年代相继产生了运筹学、控制论、信息论和一般系统论等系统理论;20世纪40年代以来,系统理论被大量应用于工程实践,系统工程应用学科迅速发展,同时其他科学技术学科也在不断获得新的突破与发展,从而对各种系统的性质和规律的认识在不断深入,产生的一些新的系统理论:耗散结构理论、协同学、动力系统理论、混沌理论、突变论等。

当前,对复杂及复杂适应系统的研究是系统科学这门学科的热点。国际上,有关复杂系统的系统科学研究可分为三个主要学派:“欧洲学派” ―― 以非线性自组织理论为核心内容的系统理论(系统元素为无机物,源于物理、化学系统);“美国学派” ―― 以圣菲研究所(SFI)为代表的理论框架(系统元素为有机物,具主动性,源于生物系统);“中国学派” ―― 以开放的复杂巨系统理论为核心的体系(系统元素为“人”,源于大工程协作系统)。其实,这三个主要学派的主要区别只是从系统的不同层次为出发点去把握系统的性质和规律;它们的共同点可认为是要从整体上去认识问题和解决问题,对系统的许多性质,部分和的累加并不一定等于整体,整体很可能大于部分和,由于涌现性,整体会出现一些任一部分所不曾拥有的新性质。

由于现实系统的广泛性、多样性和复杂性,如果直接对系统进行观测、实验和研究,可能会对真实系统造成破坏性影响而且可重复性很可能也差,或者用真实系统试验时间过长,或费用太昂贵。对于工程系统,在系统建立之前需要对其结构、行为特性开展研究,但真实系统尚不存在。这些情况下,系统的模拟仿真是唯一可行的研究手段。

1 系统模拟仿真课程的教学目的

系统模拟仿真课程的教学目的为:培养学生科学分析和解决各类学科中出现的一般复杂系统问题的能力,掌握多种解决各种复杂系统问题的研究、设计与分析方法。通过本课程的教学,希望学生能了解系统模型的形式化描述;掌握连续系统的时域与频域建模仿真方法:龙格-库塔法、线性多步法、离散相似法、替换法、根匹配法等;了解离散事件系统的一般概念和离散事件系统的建模工具――Petri网,掌握经典的离散事件系统:单服务台与多服务台排队系统,库存系统等的仿真方法;掌握离散事件系统的仿真输出数据的分析方法;了解现代仿真技术――虚拟现实技术的一般概念、分析建模方法和和基于Agent的的建模方法及Swarm仿真和分布建模仿真。

系统科学专业硕士点的设立是为了满足国家和广西的经济和社会发展的需要,旨在培养高层次的复合型研究与管理人才。系统科学专业硕士点有两个专业:系统理论和系统分析与集成,其中系统理论专业从2004年起开始面向全国招生,系统分析与集成专业从2006年起招生。系统模拟仿真课程是系统科学专业硕士生的必修课程,本人从2006年起到目前为止连续5年担任了本门课程的任课教师,在此对这几年的教学实践作些总结,以图对本课程后续的教学水平的提高和教学效果的完善能有所帮助。

2 课程基础建设

专业课程与选修课程的组成,不同课程的先后安排和教材的选择对教学目的之达成与教学效果之提高至关重要。系统模拟仿真课程的先修课程为:控制理论,概率统计,至少一种通用程序设计语言(如:C/C++程序设计语言和Matlab编程语言)。这几年教学过程中的有些学期,在本课程刚开始时,有些学生反映从未接触过其中一门或两门先修课程,应学生的要求,用一、两次课程的时间介绍相应课程,解释其中的重要内容,并鼓励学生自学相应课程,难懂之处同学之间互相探讨,并及时向老师请教。教材选择的是美国多家高校系统仿真类课程普遍采用的, 由清华大学出版社出版的原版影印英文教材[1]。该教材着眼于离散事件系统仿真的原理和方法学的阐述,基本概念通过实例加以阐述展开,对仿真方法、技术谈论深入,对新技术发展方向描述明确。该教材以C/C++和Fortran为仿真算法的主要编程语言。

开始的连续2年只使用该教材进行教学,有些学生反应跟不上教学进度,仔细了解,跟不上的原因是难以完全读懂教材中的英文内容和从未学过C/C++和Fortran语言。为让每位学生都能掌握好基本仿真方法、技术而又不失去对仿真前沿研究的了解,后增加系统科学与系统的一般理论及其工程应用[2]的介绍,连续系统仿真原理[3]的介绍和较容易编程实现的仿真实例教学[4]。作业与考试方式、频次的安排设置对加强学生的学习动力和提高学习效果起着极大的作用,除了常规作业和期末考试外,增加了每学期每位学生上讲台讲解至少30分钟提前布置的、要求学生课后完成的仿真建模实例小作业并接着深入讨论。还安排了学期结束时应完成的较复杂的系统仿真编程大作业,并撰写一份系统仿真应用的研究报告。

3 提高教学效果的措施

3.1 加强仿真原理教学

现代仿真是基于计算机、利用合适的算法通过模型(物理的或数学的)以代替实际系统进行实验和研究的一门学科和实验技术。 仿真过程中系统、模型与计算机(包括软、硬件)的关系如图1所示。这里模型通常是指数学模型。常用的数学模型[5]有:初等模型、确定性连续模型、确定性离散模型和随机模型。如该图所示,系统建模、仿真建模和仿真实验为系统仿真的三个基本活动。

系统的模型是实际系统的简化或抽象,分物理模型与数学模型。系统模型的形式化描述一般可表述为:

S=(T,U,Ω,X,Y,δ,f)

其中:T―时间基, 其若为整数,则系统S为离散系统,若为实数,则系统S为连续系统;U―输入集,U?奂Rn,n∈I+;Ω―输入段集,某时间内的输入模式,是(U,T)的子集;X―系统状态集,是系统内部结构状态建模的核心;Y―系统输出集;δ―系统状态转移函数;f―系统输出函数,可表达为:f:X×U×TY。

实际建模时,模型描述的详细程度可用如下3个水平来表示:(1)行为水平,只知系统的输入输出,系统被视为“黑箱”;(2)分解结构水平,系统输入输出及结构组成已知,系统被视为多个简单“黑箱”的组合;(3)状态结构水平,系统的输入输出,内部状态及转移函数皆为已知。要全面了解仿真过程的核心内容,需要较全面的数学知识、计算方法知识和编程语言知识。

由图1可知,系统仿真的第1步是建立系统的数学模型。虽然另有一门课程―《数学模型》(或称《数学建模》)(应用数学专业课程)专门介绍个各种数学建模方法,如不特别介绍,本专业学生或许不知有该课程的存在。在建立好系统数学模型的基础上,可能需要利用《计算方法》中的专门知识,基于学生熟悉的编程语言(Fortran,C/C++, C#或Matlab等),如学生对任一编程语言都不了解,推荐学生优先选择较容易入门且有大量编程工具箱可资利用的Matlab编程语言,把数学模型转化为计算机算法程序,得到仿真模型。在设置好各可调参数条件下运行仿真模型(即仿真算法程序),即可得到一系列的输出,这些输出要进行各种分析[1],如条件允许,并应该与实际系统的相应数据作对比分析。

3.2 引导学生扩展知识面

仿真技术广泛应用于工程领域--机械、航空、电力、冶金、化工、电子等方面,和非工程领域DD交通管理、生产调度、库存控制、生态环境以及社会经济等方面。几乎渗透于每一个需要计算的领域和学科,相关文献十分丰富。许多学术期刊都刊登有系统模拟仿真方面的研究论文,其中系统科学领域的期刊,尤其值得同学们去了解和学习,以扩展知识面和了解建模仿真方面的前沿研究。

应该特别留意的期刊有:中科院数学与系统科学研究院期刊学会(/)主办的《系统科学与数学》(中) ,《系统科学与复杂性》(英)和《系统工程理论与实践》,中国系统仿真学会与航天科工集团706所主办的《系统仿真学报》,美国伊利诺伊大学复杂系统研究中心主办的《复杂系统 》,美国UL控制与系统工程学会和弗罗茨瓦夫理工大学主办的《系统科学 》,IEEE的《智能系统》,圣菲研究所的《复杂系统学报》等。

每年都有多次由不同机构发起、在不同国家举办的有关系统仿真的国际学术会议。通过各个级别的系统科学学会或系统仿真学会网站,或直接通过搜索引擎(如, )可检索到最近举办过的系统仿真会议介绍或论文,以及即将举办的系统仿真会议的地点、时间和投稿须知, 如:国际系统科学学会(International Society for the Systems Sciences, ISSS)网站上 /world/index.php 有当年的年度会议信息和最近几年的会议资料。

3.3 以仿真实例教学为教学重点以提高学生的实际分析问题和解决问题的能力

课堂上详细讲解一些较简单的系统问题的仿真实例,可以使学生逐步明确并不断加深对建模仿真整个流程的理解:从分析系统结构或行为导出系统的数学模型,再根据所导出的数学模型使用某种编程工具实现仿真建模,形成相应的仿真算法程序,最后运行仿真算法程序,分析结果并与实际系统相应数据对比。

编程工具的介绍也要兼顾学习效率和算法理解彻底性, 教学过程中发现如只介绍通用编程语言(如C/C++)实现仿真算法程序,学生表示是可以彻底理解所讨论问题的算法及代码;但过后一段时间,再面对类似但稍微复杂些的问题,学生就显得有些不知如何下手改写原来的程序以解决当前的问题。而如使用Matlab .m源码文件实现仿真代码,学生基本能正确改写程序。如使用更高抽象层上的Simulink模型实现仿真,学生可以轻松解决类似新问题。现在采用初次碰到典型案例问题时,采用C语言实现仿真算法,再次碰到类似问题时使用Matlab.m源码,更多的或更复杂的仿真案例,则采用Simulink构建仿真模型。

所选择的仿真实例兼顾确定与随机系统,连续与离散系统。所列举过的离散随机系统有:单服务员排队系统(M/M/1)和多服务员排队系统(M/M/N)的仿真;多工作站排队系统的仿真;采用不同排队策略的银行排队系统仿真。 列举过的连续确定系统有: 机构运动仿真;传染病感染传播仿真;森林救火策略仿真;战斗减员仿真;游击战策略仿真;香烟有害物质进入人体体内的累积量仿真以及生物种群规模涨落(Volterra模型)仿真等。

下面以机构运动仿真和战斗减员仿真为例,对建模仿真的整个过程进行简要描述:

仿真实例一.曲柄滑块机构的运动学仿真:

对图示单缸四冲程发动机中常见的曲柄滑块机构进行运动学仿真。已知连杆长度:r2=0.1m,r3=0.4m,连杆的转速:ω2=2,ω3=3,设曲柄r2以匀速旋转,ω2=50r/s。初始条件:θ2=θ3=0。仿真以ω2为输入,计算ω3和1,仿真时间0.5s。

利用Simulink建模如下:

模块程序运行过程中自动显示如图4所示动画。

所求仿真时间0.5s内1和ω3的变化图像如图5。

图5 0.5s内的滑块运动速度1 (上图)和连杆转速ω3(下图)

仿真实例二.战斗减员问题仿真:

该战争模型只考虑双方兵力的多少和战斗力的强弱。 假设:(1) 用x(t)和y(t)表示甲乙交战双方时刻t的兵力,不妨视为双方的士兵人数;(2)每一方的战斗减员率取决于双方的兵力和战斗力,用f和g表示; (3)现只对甲方进行分析。甲方士兵公开活动,处于乙方的每一个士兵的监视和杀伤范围之内,一旦甲方某个士兵被杀伤,乙方的火力立即集中在其余士兵身上,所以甲方的战斗减员率只与乙方兵力有关,可以简单地设f与y成正比,即f=ay。a表示乙方平均每个士兵对甲方士兵的杀伤率(单位时间的杀伤数),称乙方的战斗有效系数。a可以进一步分解为a=rypy,其中ry是乙方的射击率(每个士兵单位时间的射击次数),py是每次射击的命中率。由这些假设可得本问题的连续时间模型(方程):

又设系统输入为甲乙方的射击率rx,ry,每次射击的命中率px,py,双方初始兵力x0,y0。系统输出为哪一方获胜以及获胜时的剩余兵力。要求有输入、输出界面及仿真过程。如何对微分方程进行求解,并判断哪一方获胜是本问题仿真的关键。

使用GUIDE(图形用户接口开发环境)接口实现以上简单的一阶微分方程。

调入该模型程序,按F5运行,出现如图6所示界面。

在界面中输入参数,点击“执行仿真计算”按钮,就会在结果栏中显示哪一方获胜,及其剩余人数。

设甲乙双方射击率都为0.03,初始兵力都为1000,每次射击的命中率分别为0.023和0.026。执行仿真计算后可知是“乙方获胜”,剩余兵力为339。如图7所示。

4 总结

努力加强系统仿真原理教学,以较简单的经典系统建模实例的仿真模型的建立为依托,让学生在仿真实例的课堂教学中逐步明确并不断加深对建模仿真整个流程的理解。仿真技术广泛应用于工程领域和非工程领域,相关文献十分丰富,涵盖面十分广阔的,而课堂教学的课时十分有限。如果我们把系统模拟与仿真这门学科比作是一片森林,文献可看作是其中的树木,仿真的实际应用则可看作生活于森林中的动物,当然动物也依赖于这片森林的邻域森林(其他学科)。课堂教学只是带学生来到这片森林边沿,仿真原理、理论教学是引导学生仔细观察了眼前的树木,而课堂仿真实例教学则是与学生一起欣赏了树枝上美丽的小鸟。 对这片森林更深入的了解需要学生自己出发去跋涉的、去游历、去探索、去欣赏。当然,带学生到这片森林应该先哪个边沿,才能让学生对这片森林有准确的了解并迅速喜欢上这片森林,需要带领者对这片森林整体的和更准确的了解,也需要到过这片森林的同学们的意见反馈。

参考文献:

[1] Law A M.Simulation Modeling and Analysis[M].北京:清华出版社,2000.

[2] 许国志.系统科学与工程研究[M].上海:上海科学技术出版社,2001.

[3] 肖田元.系统仿真导论[M].北京:清华大学出版社,2001.

数学建模中的常用算法范文第5篇

    一、数学建模的重要意义

    把一个实际问题抽象为用数学符号表示的数学问题,即称为数学模型。数学模型能解释特定现象的显示状态,能预测对象的未来状况,能提供处理对象的最有效决策或控制。在小学数学教育中开展数学建模的启蒙教育,能培养学生对实际问题的浓厚兴趣和进行科学探究的强烈意识,培养学生不断进取和不怕困难的良好学风,培养学生分析问题和解决问题的较强能力,培养学生敏锐的洞察力、丰富的想象力和持久的创造力,培养学生的团结协作精神和数学素养。

    二、数学建模的基本原则

    1.简约性原则。生活中的原型都是具有多因素、多变量、多层次的比较复杂的系统,对原型进行一定的简约性即抓住主要矛盾。数学模型应比原型简约,数学模型自身也应是“最简单”的。

    2.可推导原则。由数学模型的研究可以推导出一些确定的结果,如果建立的数学模型在数学上是不可推导的,得不到确定的可以应用于原型的结果,这个数学模型就是无意义的。

    3.反映性原则。数学模型实际上是人对现实生活的一种反映形式,因此数学模型和现实生活的原型就应有一定的“相似性”,抓住与原型相似的数学表达式或数学理论就是建立数学模型的关键。

    三、数学建模的一般步骤

    数学课程标准向学生提供了现实、有趣、富有挑战性的学习内容,这些内容的呈现以“问题情景——建立模型——解释应用——拓展反思”的基本形式展开,这也正是建立数学模型的一般步骤。

    1.问题情境。将现实生活中的问题引进课堂,根据问题的特征和目的,对问题进行化简,并用精确的数学语言加以描述。

    2.建立模型。在假设的基础上利用适当的数学工具、数学知识,来刻划事物之间的数量关系或内部关系,建立其相应的数学结构。

    3.解释应用。对模型求解,并将求解结果与实际情况相比较,以此来验证模型的科学性。

    4.拓展反思。将求得的数学模型运用到实际生活中,使原本复杂的问题得以简化。

    四、数学建模的常见类型

    1.数学概念型,如时、分、秒等数学概念。

    2.数学公式型,如推导和应用有关周长、面积、体积、速度、单价的计算公式等。

    3.数学定律型,如归纳和应用加法、乘法的运算定律等。

    4.数学法则型,如总结和应用加法、减法、乘法、除法的计算法则等。

    5.数学性质型,如探讨和应用减法、除法的运算性质等。

    6.数学方法型,如小结和应用解决问题的方法“审题分析——列式计算——检验写答”等。

    7.数学规律型,如探寻和应用一列数或者一组图形的排列规律等。

    五、数学建模的常用方法

    1.经验建模法。学生的生活经验是学习数学最宝贵的资源之一,也是学生建立数学模型的重要方法之一。例如,教学人教版课程标准实验教科书数学一年级上、下册中的“时、分”的认识时,由于学生在生活中已经多次、反复接触过钟表等记时工具,看到或听说过记时工具上的时刻,因此,他们对“时、分”的概念并不陌生,教学是即可充分利用学生这种已有的生活经验,让学生广泛交流,在交流的基础上将生活经验提升为数学概念,从而建立关于“时、分”的数学模型。

    2.操作建模法。小学生年龄小,生活阅历少,活动经验也极其有限,教学中即可利用操作活动来丰富学生的经验,从而帮助学生感悟出数学模型。例如,教学人教版课程标准实验教科书数学四年级下册中的“三角形特性”时,教师让学生将各种大小、形状不同的三角形多次推拉,学生发现——不管用力推拉哪个三角形,其形状都不会改变,并由此建立数学模型:“三角形具有稳定性。”

    3.画图建模法。几何直观是指利用图形描述和分析数学问题。借助几何直观可以把复杂的数学问题变得简明、形象,有助于探索解决问题的思路、预测结果。几何直观不仅在“图形与几何”的学习中发挥着不可替代的作用,而且贯穿在整个数学学习和数学建模过程中。例如,教学人教版课程标准实验教科书数学三年级下册《数学广角》中的“集合问题”时,让学生画出韦恩图,从图中找出重复计算部分,即找到了解决此类问题的关键所在,也建立了解决“集合问题”的数学模型——画韦恩图。

    4.观察建模法。观察是学生获得信息的基础,也是学生展开思维的活动方式。如何建立“加法交换律”这一数学模型?教学人教版课程标准实验教科书数学四年级下册的这一内容时,教师引导学生先写出这样一组算式:6+7=7+6、20+35=35+20、300+600=600+300、……,然后让学生认真、有序、多次地观察这组算式,并组合学生广泛交流,学生从中即可感悟到“两个加数交换位置,和不变。”的数学模型。

    5.列表建模法。把通过观察、画图、操作、实验等获得的数据列成表格,再对表格中的数据展开分析,也是建立数学模型的重要方式。例如,教学人教版课程标准实验教科书数学四年级下册的“植树问题”时,教师组织学生把不同情况下植树的棵数与段数填入表格中,学生借助表格展开观察和分析,即可建立相应的数学模型——“在一段距离中,两端都植树时,棵数=段数+1;两端都不植树时,棵数=段数-1;一端不植树时,棵数=段数;在封闭曲线上植树时,棵数=段数。”。

    6.计算建模法。计算是小学数学教学的重要内容,是小学生学习数学的重要基础,是小学生解决问题的重要工具,也是小学生建立数学模型的重要方法。例如,教学人教版课程标准实验教科书数学六年级下册第132~133页的“数学思考”中的例4时,教师就让学生将实验数据记录下来,然后运用数据展开计算,在计算的基础上即可建立数学模型——过n个点连线段条数:1+2+3+4+……+(n-1)=1/2 (n2-n)。其主要过程如下:

    过2个点连线段条数:1

    过3个点连线段条数:1+2

    过4个点连线段条数:1+2+3

    过5个点连线段条数:1+2+3+4

    ……