公务员期刊网 精选范文 数值计算方法范文

数值计算方法精选(九篇)

数值计算方法

第1篇:数值计算方法范文

关键词:数值计算方法;教学改革;MATLAB;数学建模;作业改革

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)29-7023-03

随着教育部宽口径培养目标的实施,计算机技术的迅速发展以及社会需求的变化,《数值计算方法》课程在教学过程中出现很多不适应的地方。例如,课程内容偏重理论,轻应用,特别对于一般本科院校的学生来说,学习难度大,学习热情普遍不高;教学内容与实际需求脱节,课程缺少背景知识的介绍,缺少从算法到程序实现的训练,缺少借助计算软件解决实际问题的实践,从而造成学生学了不会用这一现象;作业题目内容和形式陈旧,学生抄袭敷衍现象严重等一系列问题。这些矛盾和问题使得《数值计算方法》课程改革迫在眉睫。

针对《数值计算方法》课程教学作了一些尝试和改革,主要包括优选教学内容,并做适当合理的补充,重点建设实验课程,熟练掌握使用MATLAB软件,强化数值方法与计算机技术的应用能力训练,彻底改革作业形式,养成学生动手又动脑的良好学习习惯,将数学建模思想贯穿整个教学过程中,激发学生学习兴趣等措施。

3 重点建设实验课程,熟练使用MATLAB软件

数值计算方法课程是一门实践性很强的课程,各种算法最终是为解决实际问题服务的,所以我们更看重的是算法在计算机上运行的效果,为此我们增设了16个课时的实验课程。另外,《数值计算方法》的许多内容在理论和实践中都非常成熟,很多算法都已经被开发并集成到专门的数学软件,这些软件具有强大的数值计算功能,易学且具有开放性,其中最具代表性的就是MATLAB软件。

在实验课程里,我们使用MATLAB软件实现理论课中所有的算法。包括插值,数值微分,数值积分,曲线拟合的最小二乘法,非线性方程求根,解线性方程组的直接法,解线性方程组的迭代法,计算矩阵的特征值和特征向量,常微分方程数值解法等。另外我们还补充介绍MATLAB强大的图形展示功能,曲线拟合工具箱丰富的GUI界面以及非线性方程组求零点。实验课不仅提高学生解决实际问题的能力还能帮助学生加深对理论知识的理解。例如,考虑估算山崖高度的问题,如图3所示。在考虑了空气阻力,反应时间,回声传播时间等因素之后,引导学生建立了如下数学模型,其中,,是未知数。

这是一个看似简单的三元非线性方程组,Newton迭代法数值求解它需要初值,有些同学虽然会使用MATLAB求解方程组零点,但因为初值选取不好,一直找不到解。从这个实验,加深了学生对Newton迭代法严重依赖初值的理解。

最重要的是我们将MATLAB软件介绍给学生,引导他们入门,激发他们自己学习的兴趣,鼓励他们自学MATLAB其他功能,熟练使用MATLAB解决各种计算问题。

4 改革作业模式,动手又动脑

作业是教学改革的重要部分,作业布置得不好会让学生更加讨厌这门课程,相反,作业布置得好可以激发学生更大的学习热情。《数值计算方法》教材和参考书都有很多题目可供学生练习,但是这些题目无论从形式上,还是从内容上都很陈旧,题目的答案也很容易找到,学生大多彼此抄袭,敷衍了事,根本达不到预期的作业效果。针对这一情况,我们设计了形式和内容都很新颖的作业题。

例如,数值积分部分的作业题是发给每个人一个形状不规则的卡片如图4所示,让他们分别用梯形公式,Simpson公式,复化梯形公式,复化Simpson公式计算其面积。作业最后以小论文的形式上交,作业内容包括设计算法,编写代码,图像展示数值结果,估计误差。由于每个人的卡片不同,坚决杜绝了作业抄袭的现象。另外由于形式新颖,且需要动手测量,极大的调动了学生的学习热情。

最小二乘拟合部分的作业是六个小组共享数据,每个学生用所有数据拟合三次多项式估计10:05的气温。

通过这样形式新颖的作业,极大调动了学生的学习热情,学生反响良好,得到了很好的教学和学习效果。

5 将数模思想贯穿整个教学,鼓励学生参加数模竞赛

《数值计算方法》课程理论性较强,背景知识较少,在授课过程中我们着重加强背景知识的介绍,精选教学实例,将数学建模思想贯穿到整个教学过程中,从提出问题,分析问题,建立模型,数值求解,结果展示,误差分析,力求完整的解决实际问题。另外,我们鼓励学生积极参加校内数学建模竞赛,网络挑战赛,全国大学生数学建模竞赛,美国大学生数学建模竞赛,建议每个学生毕业前都要至少参加一次数学建模竞赛。通过参加数学建模竞赛活动,学生更加认可了《数值计算方法》课程的重要地位,激发了学生的学习热情,有效地提高了学生解决问题的能力。

6 改革教学方法,更新教学模式

《数值计算方法》课程理论性较强,在教学过程中,我们采用启发式、讨论式等多种教学方法,营造良好的课堂气氛,加强师生之间的交流。由于《数值计算方法》课程涉及较多的概念、公式和定理,传统的教学方法,在算法推导、理论分析等方面能更好地引导学生去感受和思考数学逻辑的过程以及创造性的思维过程,加深对数学理论的理解和认识,培养学生的逻辑和思维能力。而在讲述背景知识,算法的应用,算法的程序实现的时候最好用多媒体课件进行演示。所以,我们认为需要将传统的教学方法和现代的教学手段结合起来,充分发挥各自的优势,在传统教学中穿插使用多媒体课件,根据教学内容选择合适的教学手段。

7 结束语

我们在《数值计算方法》课程教学改革方面作了以上的探索和尝试,但课程教学改革是一项艰巨的,长期的工程,我们仍然任重而道远。

参考文献:

[1] 张韵华,奚梅成,陈效群.数值计算方法与算法[M].北京:科学出版社,2006.

[2] 杨韧,张志让 《微分方程数值解》课程教学改革与实践[J].大学数学,2011,27(4):19-22.

[3] 张韵华,陈效群.数值计算方法课程改革初步[J].大学数学,2003,19(3) 23-26

第2篇:数值计算方法范文

[关键词]数值计算方法;融会式;教学理念;教学实践

[中图分类号]G642.0 [文献标识码]A [文章编号]1005-4634(2012)02-0053-04

0 引言

随着计算机技术的飞速发展,数学学科的地位发生了巨大的变化,特别是在自然科学的许多分支中,有相当多的研究问题走向定量化和数值化,从而出现了一系列与计算有关系的研究方向,如计算物理、计算力学、计算化学、计算地质学、计算生物学、计算气象学等。目前,科学计算、理论研究、科学实验已经成为当今科学研究的三大方法,而科学计算由于具有研究成本低、周期短、风险少等特点,因而受到广泛的重视。数值计算方法,也称“数值分析”或“计算方法”,是科学计算的重要基础,也是理工科大学生和研究生的核心课程,国内外综合性大学无一例外均开设了本门课程。数值计算方法以采用计算机技术求解工程实践中提炼出的数学问题为主线,既有数学课程理论上的抽象性和严谨性,又有解决实际问题的实用性和实践性。自从教育部分别颁布高等教育“面向21世纪教学内容和课程体系改革计划”后,很多教学工作者积极探索数值计算方法教学的新模式,并投入到教学实践之中。在教学观念、教学内容、教学方法、教学手段等方面出现了百家争鸣的好局面,开展了多层面多方位的教学改革探索,展现了数值计算方法课程教学在理工科人才培养中的奠基性作用。

鉴于数值计算方法在理工科人才培养课程体系中的重要地位,通过问卷调查及统计分析,分别从教师和学生两个角度剖析课程教学所面临的主要问题,有针对性地提出数值计算的融会式教学理念,从课程体系、教学模式、教学内容、教师队伍等多个方面阐述该理念的内涵,并结合国防科技大学自动化专业本科生《数值计算方法》课程教学任务开展教学实践,检验融会式教学理念的实际效果,为21世纪数值计算方法教学改革提供新的思路和有益借鉴。

1 课程教学的问题分析

数值计算方法在理工科大学生及研究生培养的课程体系中具有显著的桥梁性作用,一方面是对高等数学、线性代数、编程语言(或算法设计)等公共前缘课程的巩固与扩展,另一方面也是力学、计算机科学、自动化、航空航天、土木工程、机械工程、经济管理等专业后续课程的基础和工具。通过问卷调查统计分析,目前数值计算方法课程教学所面临的主要困难可从教师和学生两个方面加以总结。根据数值计算方法授课教师的反映,教学面临的困难主要有以下几个方面。

1)课程信息量大与教学时数少之间的矛盾。课程主要研究数值逼近与曲线拟合、线性方程组求解、非线性方程求根、数值积分与数值微分、常微分方程求解等问题的数值解法,教学内容多,而培养方案又在压缩教学课时,所以出现学时少、内容多的矛盾。

2)课程覆盖面广与教师专业知识受限之间的矛盾。课程涉及的数值方法都有着典型的工程应用背景,涉及的学科领域宽泛,从事教学的教师往往精通于有限的领域,如何充实提高自身素养适应课程教学的要求是任课教师必须面对的问题。

3)实践环节与相应保障之间的矛盾。数值计算方法课程是理论与实践结合的产物,实践性是此课程有别于其它数学课程的一个基本特征。课程教学的实践环节花费时间较多,可能与教学大纲要求的在一定时间需完成的教学任务有冲突。教师在研究情境设置的问题“难易度”的把握尺度上与学生的接受能力也有可能冲突。有些太困难的研究问题难免超出教学大纲的要求,给学生造成额外负担。

根据学生反映的情况,课程学习面临困难主要有:(1)学习兴趣淹没在冗长的公式推导和理论分析之中。课程涉及相当多的理论推导,对于己经复杂冗长的公式,还要进行理论分析,包括算法的收敛性、数值稳定性、误差分析以及好的时间复杂性和好的空间复杂性。这些方法几乎都很复杂,公式冗长,推导繁琐。过多地强调数学理论证明,大多数的学生觉得这门课很难,学得很枯燥,也感觉不到乐趣。(2)课程内容及进度与学生个体差异的矛盾。伴随着高校招生规模的扩大,学生的人数越来越多,生源的个体差异也越来越显著,同样的内容设置和进度安排往往使得人数众多、差异显著的学生群体难以适应,学习效果自然受到严重影响。(3)课程内容难以体现贯通培养课程体系的桥梁性作用。无论是教材还是实际授课,绪论往往将数值计算方法定位为理工科大学生和研究生培养的核心基础课程,但是主体内容讲授时由于课时有限,只能突出理论推导和算法设计,学生只能见到树木,却始终未能见到好奇的森林,严重的话会削弱学生的学习兴趣和热情。(4)实践环节与基础能力的矛盾。数值计算中的问题仅靠课堂教学、理论推导是很难讲明白的,特别是各种算法的收敛性、稳定性等问题。实践环节是学生加深算法理解、学以致用的重要途径。但是,课程实践环节不可避免地涉及到程序编写与调试,很多学生在编程语言或算法设计课程中基本功不够扎实,从而对数值计算方法的实践环节产生畏惧心理,导致课程实践效果不佳。

2 融会式教学理念

针对数值计算方法课程教学的上述问题,教学工作者们主动思考、积极探索,不断实践新的教学理念或教学模式。在现有研究基础之上,本文提出数值计算方法的融会式教学理念,重点探讨如何培养学生的数值思维能力和计算求解能力,使他们通过课程的学习,构建起所学专业课程体系的全貌,领悟课程的基础性、开放性的重要特征,融会贯通数值计算的思想理解、算法设计和工程实践,在碰到新问题时,不是生搬硬套书本公式,而是灵活运用掌握的数值思维方法去分析和求解。

融会式教学理念关键落实在“融会”二字上,它突破传统的课程讲授、课后作业、上机实践、考核结课的授课过程,将其扩充为前缘深入先摸底、备课充实贴前沿、授课生动重启发、习题思考多互动、实践灵活循算法,授课讲座齐并举、考核全面现能力、试后逐一面点评的融会贯通的全过程。

1)前缘深入先摸底。开课之前深入选课学生群体之中进行交流沟通,了解大家对高等数学、线性代数、编程语言(或算法设计)等公共前缘课程的掌握隋况,获取并分析选课学生在前缘课程的成绩分布情况,特别留意个体的差异程度。比如,对于具有畏惧心理的学生,要及时发现,因材施教,可通过课堂简单提问或者通过批改作业留下鼓励性质的评语,帮助其树立自信心。

2)备课充实贴前沿。综合考虑学生对前缘课程的掌握情况和培养计划对课时的规定,合理选择备课内容,不求面面俱到、照本宣科,但求重点突

出、贴近前沿。每个章节精心设计问题导入环节,举例须紧扣技术发展的前沿,避免书本上例子通行天下的现象,充分激发学生的学习热情。比如,插值方法可结合风洞试验数据估算神舟飞船阻力系数的例子。

3)授课生动重启发。授课过程中,可充分利用课程的实用性和实践性,从工程实践中凝炼科学问题,有针对性地启发学生主动思考相应的对策,再跟大师们的计算方法进行比较,分析优劣,进而转入算法的思想、流程和设计,剖析所学计算方法解决工程问题的实际效果及适用范围。另外,还要注重多媒体和板书的有效结合。

4)习题思考多互动。合理安排习题课,精心准备由易而难的例题,既注意问题的工程实践性,也引导学生积极思考,结合前缘课程的了解情况,有针对性地让学生参与分析和计算,采用分组讨论的形式,充分尊重个体差异,尽量让每位学生都有所获益,有所提高。融会式教学在考试之前的复习课中,一方面梳理本门课程内容之间的相互联系,比如插值是数值微积分的基础,样条插值是线形方程组求解之追赶法的典型应用等等。另一方面更要回顾课程与前缘课程的具体关系,比如多项式插值充分利用了线形代数中多项式空间基函数的概念,数值逼近多次引用范数的定义,而且要根据选课学生的专业分布,选取有典型意义的后续课程,比如自动化专业的控制系统原理、信息科学专业的信号与系统等等,讲解课程所学方法将在专业后续课程中发挥重要的作用,同时也是大家学习这些后续课程的重要基础。

5)实践灵活循算法。课程教学的实践环节非常重要,由于学时有限,必须充分利用。建议可分3次上机实践。第一次可以考查编程能力,及时发现情况,及时总结原因,可组织一次集体答疑,为大家编制统一的接口函数,将数据结构定义、数据读入、结果显示等公共环节提取出来统一处理,而引导学生把精力投入到算法思想的理解和算法流程的实现。第二次,直接提供基本程序框架,由学生填充算法流程的主体部分。第三次,则可当作现场模拟上机考试,要求学生在规定时间内提交算法程序和结果。实践环节的合理运用对改善课程教学效果具有极其重要的作用,教师可适当补充编程的基本技能和基本方法,编制易于理解易于运用的程序框架,以便于学生将有限精力投入到算法设计本身,而不是过多地消耗在输入输出等公共环节。特别是,需要关注对编程具有畏惧心理的学生,采取合适而又有效的措施,比如分组合作或者亲手示范等手段,消除畏惧,激发兴趣,以全面提高课程教学质量。

6)授课讲座齐并举。考虑课程覆盖面广与教师专业知识受限之间的矛盾,并不能要求教师同时掌握多门专业知识,而是可以采用授课和讲座相辅相成的方式,邀请其他专业的老师,根据他们从事科学研究过程中运用数值计算方法解决领域问题的具体体会,向学生讲解数值计算方法的实际应用流程和作用。比如,生物信息学中大量应用最小二成、稀疏矩阵求逆等数值方法。讲座往往较为轻松,占用课时少,学生易于接受,既可提高学习兴趣,也可拓宽知识面,对课程的基础性作用不言而喻,从而有效避免了授课教师“王婆卖瓜,自卖自夸”的尴尬。

7)考核全面现能力。课程考核要全面覆盖授课内容,合理制定试题难度,注重综合能力的考查。课程考核重在数值计算方法基本思想的领悟和掌握程度,不苛求公式的背诵记忆,建议设置一定比例的推导题,比如给出数值积分的梯形公式,要求学生推导Simpson公式。

8)试后逐一面点评。不同于以往考试结课的惯例,融会式教学强调全过程的交流沟通,学生一般在考试之前集中复习,考试之后遗忘性衰减现象很普遍。为了巩固教学效果,融会式教学注重考试之后,教师及时批改试卷,总结课程教学效果,与每一位学生进行当面点评,分析丢分的具体原因,加深学生对所学方法的理解和应用。

综合起来,数值计算方法的融会式教学理念重在将授课过程、教学内容、教学方法、教学手段、教师构成、课程考核、试后讲评等多个环节融会贯通。在教学内容上,突出本门课程与前缘、后续课程的内在联系、相互关系及本质特色,让学生既见树木,也见森林;在教学方法上,强调理论与实践并重,紧扣专业特色,无论是课堂举例,还是上机实践,都结合授课对象的专业分布,从实际工程应用提炼科学问题,将算法思想付诸问题求解,激发学生的学习积极性,加深数值方法的理解;在教学手段上,注重现代多媒体技术与板书的合理搭配,多媒体形象生动,结合插值、拟合、方程组迭代求解等数值方法的几何意义、物理意义进行讲解,节省时间提高课堂效率。板书节奏感强,容易引导学生积极思考,也便于开展师生互动,加深学生对算法思想的理解,提高学以致用的实践能力;在授课过程上,更是体现“融会”的特征,从前缘课程摸底、个体差异关注,到跨专业邀请讲座,再到试后当面点评,直至后续课程的展望,都充分注重融会贯通的教学环节,最大程度上提高教学效果。

3 融会式教学实践

与数值计算方法课程的实践性相统一,融会式教学理念同样需要教学实践的不断检验。笔者结合国防科技大学自动化专业本科生《数值计算方法》课程教学任务,遵循融会式教学理念,积极开展包括前缘深入先摸底、备课充实贴前沿、授课生动重启发、习题思考多互动、实践灵活循算法,授课讲座齐并举、考核全面现能力、试后逐一面点评等所有环节的教学实践,检验融会式教学理念的效果。

笔者独立主讲了国防科技大学自动化专业本科生在大三秋季学期设置的32学时《数值计算方法》课程。结合课程的特点,全程采用融会式教学理念,采用“掌握思想、设计算法、上机实践”等多种手段进行全方位教学。根据授课对象前缘课程的掌握情况,选取插值、拟合、数值微积分、线性方程组求解直接法、线性方程组求解迭代法、非线性方程求根、常微分方程数值解等作为主讲内容,课堂26个学时重点开展算法思想的讲授和研讨,实践6个学时则重点考查学员设计算法、解决问题的综合能力。

在学期开课之前深入授课对象所在的学员队,与学员交流本科阶段学习的体会与经验,了解大家对本课程前缘课程(高等数学、线性代数、C语言等)的掌握程度,对微积分、方程组求解、矩阵特征值等相关内容进行复习巩固,同时留意个体差异,及时发现自称“逢数学课必挂”的具有畏惧心理的学生。

备课时,紧密结合科技发展前沿,比如从神舟飞天中根据风洞数据估算阻力系数的实例引入插值方法,同样由加速度计离散测量数据估算飞行速度的问题引出数值积分的问题;在课堂教学中,强调学员主动发现问题、积极参与课堂讨论,在适当的引导中鼓励学员自己得出结论,既提高学习兴趣,也增强自信心。鉴于课程学时受限,全程作业逐本批改,在指定课时之外,采用集体答疑和第二课堂的自由形式,补充8个课时进行课外习题辅导,学生可以根据自身的学习情况自行决定是否参加,加深大家对数值算法的理解和求解过程的联

系。考虑到教师自身专业知识有限,邀请生物信息学、基础物理学的两位跨专业教员分别开展公开讲座,结合具体问题示范如何运用数值计算方法进行解决,加深印象,也激发热情。

三次上机实践按照知识点进行组织,一类算法的授课结束后立即进行编程实践。第一次实践内容为插值和拟合,程序编制相对较为简单,同时也考查学生编程能力的个体差异,及时分析情况,集中组织一次课外答疑,不是简单地准备好例程演示给大家而已,而是与学员一起现场编制程序,依据融会式教学理念,让大家看到如何结合具体求解问题从无到有地编制程序的全过程,加深大家对算法从流程到代码的演化过程,减轻大家对编程实践的畏惧心理,提高动手实践能力。第二次为数值积分的Romberg算法,为大家编制统一的接口函数,将数据结构定义、数据读入、结果显示等公共环节提取出来统一处理,引导学生把精力投入到算法思想的理解和算法流程的实现。第三次为微分方程数值解Runge-Kutta算法,采用限时提交的方式,要求大家按照考核的标准完成二阶、三阶、四阶算法的编程和精度比较。课程实践环节逐次提高要求,让学生在掌握数值计算方法相关算法的同时,也进一步提高编程能力,增强自信心,为后续课程学习奠定基础。

课程考核既测验学员对基本概念、基本原理的掌握程度,也测验学员对课程整体的把握能力以及学以致用的实践能力。考试之后,及时阅卷,并再次深入学员群体之中,进行逐一当面点评,分为未能掌握、粗心大意、时间不够等类型剖析丢分的原因,既是及时巩固课程学习成果,也是锻炼学生素质、提高学习成绩的重要途径。

与传统模式相比,融会式教学理念注重从实际工程应用提炼科学问题,充分激发学生的学习兴趣;强调课程的承上启下的地位,让学生既见树木,也见森林,知晓专业培养的目标与定位;注重数值计算方法的启发和实践并重,通过具体问题的编程实验,既加深理解,也敢于实践。在授课、答疑、批改作业、实验、考试等诸多环节,学生们都充分认可融会式教学理念。综合这次融会式教学实践的实际成效来看,学员们较好地掌握了插值、拟合、数值微积分、线性方程组求解、常微分方程数值解等数值计算方法的思想精髓,并能够活学活用,解决实际问题。特别是,三次上机实践,学员热情逐次提高,主动寻找课外时间开展编程实践,多次改进程序,修订实验报告,达到了非常好的算法实践效果。

在本次融会式教学实践中,学生都能够带着兴趣与热情投入到课程的学习中去,课堂积极思考、踊跃发言,敢于发表自己的见解;课后主动复习、认真完成作业,特别是布置的几次讨论性质的题目(如谈谈对课程的印象、谈谈对迭代法的理解等)锻炼了学员的独立思考能力和语言表达能力;上机实践中能够针对底子薄、能力差、锻炼少的现状,积极主动地进行反复练习,并相互请教,力争得到最大程度的提升。其中,极个别学员存在基础薄弱、前缘课程差、出现多门挂科等问题,自信心不强,甚至出现自暴自弃的现象,经过多次引导与鼓励,也能够积极融入集体,认真对待每次作业和实验,得到了较好的平时成绩,考试也能够积极面对,最终也取得了令自己满意的成绩。

总体而言,《数值计算方法》课程采用融会式教学理念,取得了良好的教学效果,既提高了学生对数值计算方法思想精髓的理解水平和应用能力,也培养了学生的主动学习、独立思考等综合素质,为后续的学习深造打下基础。

4 结束语

第3篇:数值计算方法范文

关键词:软土;地铁车站结构;振动台试验;数值计算方法

1 引言

神户地震和历史上发生的大震一再表明,对软土地基中的地铁车站等地下结构的抗震设计开展研究有重要的意义。对地下结构地震响应的计算,迄今已提出多种算法[1],然而由于对其涉及的各类复杂因素的影响尚认识不足,不同的计算方法或模型得出的结果存在很大的差异,且很难鉴别各自的合理性。本文建立软土地铁车站地震响应的分析理论与计算方法,并通过对模型试验进行拟合分析验证了所建立的车站结构动力响应的计算方法的正确性和合理性,以便工程设计实践参考。

2 软土地铁车站结构的振动台试验

软土地铁车站结构的振动台模型试验分自由场振动台模型试验、典型地铁车站结构振动台模型试验和地铁车站接头结构振动台模型试验等三种。试验开展过程中遇到的技术难题包括对地铁车站纵向长度的模拟,场地土的动力特性与地震响应的模拟,模型箱的构造与边界效应的模拟,以及量测元件设置位置的优选等。笔者对这些技术难题逐一进行了研究,并都提出了行之有效的解决方法, 使试验取得了可靠的数据[2][3]。

试验过程中,首先进行了自由场振动台模型试验,用以模拟自由场地土层的地震反应,据以获得模型箱内不同位置处的土的加速度响应,确定“边界效应”的影响程度和鉴别模型箱构造的合理性;然后通过典型地铁车站结构振动台模型试验了解地铁车站结构与土共同作用时地震动反应的规律与特征,为建立地铁车站地震响应的分析理论和计算方法提供试验数据。振动台模型试验记录了在不同荷载级别的EI-Centro波、上海人工波和正弦波激振下,加速度测点传感器的反应;由动土压力传感器,得到了各测点在不同加载工况下的动土压力反应时程;根据结构模型构件上布置的应变片,测得了构件应变的变化。

3 软土地铁车站计算方法

将自由场土体简化为多自由度体系,其动力平衡方程可表示为:

[M]{ü}+[C]{u}+[K]{u}={f}

(1)

第4篇:数值计算方法范文

关键词:SPWM; 自然采样法; 软件计算; 比较法

中图分类号:TN80234文献标识码:A文章编号:1004373X(2012)04005104

Quick calculation of natural sampling SPWM data by software

HUO Hu, YANG Qianqian, CUI Xintong

(College of Science, Beijing Forestry University, Beijing 100083, China)

Abstract: Sinusoidal pulse width modulation (SPWM) is widely used in the fields of power electronics and industrial control. Its application, especially in the industrial and civil fields, has higher requirements of calculation accuracy and speed for SPWM data. A variety of optimization algorithms proposed in the past have high requirements for the processor or processing chip, and may result in waste of resources. A comparison algorithm which can save the computing resources and compute SPWM data dynamically is proposed. It can significantly improve the calculation speed of the data SPWM with software.

Keywords: SPWM; natural sampling; calculation with software; comparison method

收稿日期:201109110引言

SPWM的波形产生可分为硬件和软件两种方法,通过软件计算波形开关点实施调控具有电路简单,调控准确,应用灵活等优点。该软件算法中以自然采样法输出的SPWM波形最接近正弦波,但三角波与正弦波交点有任意性,所以脉宽表达式是一个复杂的超越方程计算式。在调控范围比较小或控制方式比较简单时可以采用查表法快速实现[1],然而当载波幅值和载波比都为变量时,其数据量成级数增长,存储开销难以接受。下面具体讨论应用比较法来计算SPWM数据。

1控制比与计算精度的关系

很多文章介绍了自然采样法的数学计算方法,并给出了各种优化算法,这些算法力图精确求解斜线方程与正弦方程的交点,但由于运算中带有大量的浮点运算,若没有DSP[2]或高速浮点处理芯片的支持必然会造成运算时间过长,对实时调控产生影响。实际上需要的计算精度与每载波周期可能的开关点数量有关系,用符号C来表示(下同),称其为控制比,数值上等于载波周期除以PWM周期(同步调制方式中此值为整数),可以理解为用多少个PWM周期控制一个载波周期。PWM频率实际上是开关电路的极限频率或最理想的工作频率,假设每载波周期可能的开关点数量为512个,则需要二进制的9位计算精度,如果再加1位存一位最多计算10位就够了。如果采用数据类型IEEE 32浮点数迭代运算将得到24位(二进制)精度的计算结果[3],与实际需要相差甚远,这里特别指出计算精度与具体的数值大小无关。从另一个角度看, 由于PWM频率的限制,即使有高精度的计算结果也无法实施高精度的开关控制,这种无意义的计算资源浪费发生在每一次运算过程中,因此数量是巨大的。可以采用两种方法减少计算开销:一种方法是在迭代算法的各个步骤中加入精度条件限制,由于浮点库函数精度不可控,如果不能避免浮点库函数的调用,则此方法的优化效果不明显;另一种方法是采用基于数值比较的方法确定计算结果。下面就第二种方法展开讨论。

2比较法基本思想

首先考虑调制波为锯齿波的计算。图1中纵向虚线为可能的开关点位置,相邻两点间的差值为Δx,其对应y轴增量为Δy。定义每项计算值x的数学含义为函数Msin(x0+x)=Kx(x0为当前锯齿波起始位置点)解的真值落入区间(x-Δx,x]之中。

假设调制比(正弦波幅值对调制波幅值之比)M=m1,载波比N(半周期调制波的个数)[4]的SPWM数据已经计算完成,其第a项的计算值为xa,当N值不变时,如果待计算的M=m2(m2>m1),可以确定每一项的计算值一定增大,那么只需从当前值+Δx开始依次校验后面的开关点,找到满足不等式m2sin(x0+x)

变动情况由增长方向校验和减小方向校验2个算法实现。

K值为锯齿波斜率,其数值只与载波比N和x轴、y轴的标量有关,与控制比C的选取无关。为简化计算,可以将Δy视为一常量,若Δy等于y轴标量除以C,则斜线方程简化为y等于Δy乘开关点相对值。校验的次数与C值有关,可视其为计算深度的控制,C值的变化只改变计算结果的数据范围,取值越大可能的开关点数量越多,计算量越大、计算结果数值越大、精度越高,反之亦然。

由于计算深度可以控制,并且每次计算都以上次计算结果为起始值,因此计算效率得以提高,特别当M值变化不大和N取值较大时(计算结果变动不大)每个载波周期只需要进行一次三角正弦运算即可完成,实际应用中M或N值剧烈变动的情况也并不多见[5]。

图1M值变大时计算值变大3锯齿波向三角波的转换

由于正弦函数半周期对称,可以利用上述算法计算得到半周期载波为锯齿波的SPWM数据。三角波做调制波的实际应用更为广泛,而锯齿波与三角波存在一定的转换关系,其数学式较复杂,为简化说明如图2所示。

图2(a)中为N=8,M=0.4正弦波与锯齿波相位相差半个载波周期时的图形,图2(b)为左图以正弦中点水平翻转后与左图叠加的结果,不难看出调制比为M正弦相位后移0.5锯齿波周期,计算结果第i和第N-i项数据组合(第N-i项为开点,第i项为关点)即可得到调制比为2M,正弦相位差为0的第i项载波为三角波的开关点PWM数据(i=0~[N/2])。特别的当N为奇数时第[N/2]个锯齿波起点与正弦中点重合有交点对称的性质,所以奇数时中间点与自己组合可得到1/4周期的三角波数据。

图2锯齿波与三角波的关系4实际应用中的考虑

4.1初始值的处理

在算法实现中取各参量均为整形变量,计算后移位处理。因为需要有计算初值,需要不小于N最大值的数据区存放运算结果,数据区初始值以0填充,然后以初始的M和N值开始计算。由于0值可能与实际的计算结果相差较远,故初始化阶段耗时较长,可以把这段时间放入上电初始化程序中,或者以固定参数的计算结果填充数据区以减少初始化时间。每周期计算前先比较新的M或N值以确定计算方向,重新计算几个参数后逐点比较。

4.2N取值变化的计算

上述算法实现别要注意的是动态的N值调整可能会破坏数据的一致性,这里的数据一致性是指不会有一组M,N值存在两种可能的计算结果。这种破坏情况发生在N值增加时,错误的计算初值可能会引起校验循环。建议将新增加的数据插入到正弦半周期的结束位置,N增大时数据以减小方向计算,故初值以缓冲区的上一个数据,也就是上次计算的最后一个填充可保持一致性,并且减少校验数据的计算次数。

4.3查表法求三角正弦

为减小正弦三角函数的运算开销,可以用查表法优化三角正弦运算[6]。正弦表的分度值和存储位数都会影响计算精度,应用中在ROM区域以16位整数存储16 384个65 536×sin(i+1)-1(i=π/2/0~16 383)的结果,共占用32 KB的存储空间。为使结果再精确1位,也可以配合插值法进行查表,查得的正弦值与M乘法运算完成后移位处理数据,这样既保证了15位的精度,又节省了存储空间。由于0~π/2对应的正弦值为递增函数,也可以考虑只存储低8位,将高8位放入一张地址映射表,查表时分别获取高低8位。这样可以将存储需求再减少1/2(近似),但是如果不能消除查表的随机性将增加额外的开销。采用查表法获取正弦三角函数值,并且合理地安排各参数的标量值,完全可以避免浮点数的运算,因此再次大幅度提高计算效率。

4.4SPWM的输出

应用中PWM由时钟分频电路、计数器和比较器电路产生,通过修改内部比较值控制占空比,很多MCU都内置此部分功能。带有加减计数功能的PWM控制器比较适合于三角调制波的输出。上述算法的计算结果可直接应用于加减计数的中央对齐模式。对于每周期更新一次的PWM控制器,要做到平滑输出非对称的自然采样法波形数据是比较困难的。有些PWM控制器带有设置回0值的模/数功能,实际就是调节比较器的比较位数,可以将这个模/数看作PWM的输出深度[78]。当输出深度与计算深度(控制比决定)不同时,只需对数据做移位处理,并且应当保证计算深度始终大于等于输出深度。

数据的输出使用指针指向当前输出数据缓冲区,每个PWM通道一个指针,各通道指针的差即为载波的相位差。通过合理地安排各通道的指针可以实现通道分组、多个数据缓冲区的快速切换和相位微调等操作。PWM比较寄存器的更新都有缓冲器滚动的操作方式,通常情况是在PWM溢出中断时各通道指针值加1指向下一个地址单元,并更新各通道比较强的寄存器。指针加1后判断指针偏移是否大于N值,对于N个缓冲区数据对应1/2调制周期的情况指针值回0,对于N个缓冲区数据对应1/4调制周期的情况指针值应当作减计数回0进入下一个周期。

4.5调频的控制

在比较器比较位数固定的情况下载波频率的调整有两种方法:一种是调整PWM频率,即修改PWM分频值或调整PWM输入时钟,因为各计算参量不变,所以程序不需要任何计算处理;另一种是修改载波比的N值。保持同步方式N始终为整数。两种方法都有在被调整数值比较小时频率控制分度值大的问题,可以采取两种调整交互进行的方法,始终保持N有足够大的数值,这样可提高频率(特别是高频情况下)的控制精度。建议在软件中额外增加两个函数用于N~2N和N~(1/2)N的快速计算(算法不再详述),在设置分频器倍频和半频的同时,调用N加倍和N减半的函数,可达到平滑频率调整的目的。假设通过上述方法使N始终介于32~63之间,则可以保证频率控制达到1/1 000的控制精度。

4.6其他应用

对于双极式、二次或三次谐波输出和死区控制等特殊情况,通过对以上算法的各参数或计算结果加以适当的修改同样可以适用,这也正是软件计算SPWM数据具有很大灵活性的体现。

5数据与分析

表1数据为Freescal MC9S08内核,频率为32 MHz单片机上,计算半个调制周期(0~π)锯齿波SPWM数据所用时间(不包括中断时间)。

表1半个调制周期锯齿波SPWM数据所用时间

M变动N变动C值耗时 /ms0.40~0.50161 02430.10.50~0.60321 02460.50.65~0.70481 02447.70.65~0.704851227.60.65~0.704825616.60.848~361 02451.90.836~241 02450.90.824~161 02432.70.816~151 0245.7

表2为M=0.9,N=42,C=1 024时计算结果与Matlab软件计算的真值比较。通过对比可以看出,计算存在一个数值的偏差,原因是二进制移位与四舍五入的差异造成的。

6结语

实际应用中分别在STC12C5A(51系列)单片机和飞思卡尔MC9S08DZ60八位单片机[910]上实现了上述算法,并且将它应用于两相步进电机N>32细分步在不同转速下的恒力矩控制,效果良好。文中第4.6节所提某些功能为理论设计,还未能全部实现。

参考文献

[1]窦伟,黄念慈.单片机控制的正弦波逆变电源[J].电力电子技术,2004,38(6):9496.

[2]任小洪,贺映光,方刚.DSP生成SPWM波的一种设计方法[J].工业控制计算机,2011,24(1):9596.

[3]ANSI/IEEE. STD 7542008 floatingpoint arithmetic \[S\]. USA: IEEE, 2008.

[4]刘凤君.正弦波逆变器[M].北京:科学出版社,2002.

[5]LI Hong. New algorithm for generating SPWM waveform \[J\]. Journal of Northwestern Polytechnical University, 2000, 18 (2): 264267.

[6]王榕生.线性组合采样法SPWM新技术[J].电工电能新技术,2010,29(2):2932.

[7]孙同景.Freescale9S12 十六位单片机原理及嵌入式开发技术[M].北京:机械工业出版社,2008.

[8]朱良合,邹云屏,唐健.基于线性采样的SPWM研究与实现[J].电力电子技术,2010,44(8):5890.

第5篇:数值计算方法范文

关键词:数学教学;数值计算;计算机专业

随着计算机行业飞速发展,数值计算法应用愈发普遍,在图形图像处理,金融衍生品定价,航空航天,企业风险管理等多个领域都有所涉及,通过编程手段实现数值计算也成为计算机学科在实践应用中很重要的一部分,数值计算正越来越多的融入到计算机相关领域的开发与研究当中。因此在计算机专业数学的教学中融入数值计算方法,对于学习计算机专业的学生来说,不论是从对于计算思维的开发,还是从未来就业角度看,都是很有意义的。

一、数值计算方法

数值计算是使用数字计算机求数学问题一种方法与过程,其主要内容偏重于计算,也就是对于数值上的处理,借助于计算机强大的运算能力,很多以往很难处理的数学问题,可以通过有限次运算进行精确的模拟与求解。因此对于很多现实中存在的以往无法处理的问题,今天的人们更多的倾向于通过数值计算方法借助计算机去处理。

数值计算方法在实际中应用广泛,其原因一方面是由于计算机的数据处理能力随着技术手段的进步越来越强大,对于通过人工手段无法找到技巧去求解的问题,计算机可以借助大量的运算从数值上进行还原。另一方面,很多现实中的问题其本质是建立在数值基础之上的,如关于图像的处理,其实际应用极其广泛,不仅见于气象、森立防火等自然环境图像处理,还常用于当今3D游戏设计,图片加工修饰等领域。而反观其本质,图像的每一个像素点实际都是用数字表示的,对于图像的处理,实际就是对于大量的数字进行运算。

在交叉学科日益发展的现实背景要求下,计算机行业对于从业者的数学背景要求越来越高,而高校对于计算机专业学生的数学教学要求却并不统一,其中大部分独立学院出于课时量及生源水平的考虑,对于计算机专业只是开设了最基本的高等数学课程,因此如果能在不影响教学进度的情况下,在高等数学教学中融入数值计算思想,可以弥足学生在这方面的空白,为以后学生的发展和就业都起到了非常关键的作用。

二、在高等数学教学中融入数值计算思想的意义

首先,从教学角度上看。高等数学对独立学院的学生来说比较难学,而目前单一的注入式教学模式,又使数学凸显枯燥,使学生在学习过程中产生一种恐惧心理。在最初学习高等数学课程时,由于不是本专业的专业课,学生往往很难予以重视,在学习过程中经常出现学习缺乏积极性的问题,学生常常抱有计算机专业为何开设数学类课程。与此同时,对于计算机专业的数学教学要求也比其他非数学专业普遍要高,不论从教学中还是考研要求上都是如此。因此,通过在数学教学中,融入数值计算方法,发掘数学与其本专业的联系,引起学生兴趣,对于提高教学质量,更好的达到教学目标有重要意义。作为教师,面对高等数学课时少、教学方式单一的现状,应充分认识对计算机专业的学生培养数值计算思想的意义,探索可以将数值计算思想融入高等数学教学中的具体方法,促进计算机专业的数学教学,培养更能适应计算机行业发展的专门人才。

其次,从就业角度上看。独立学院与传统研究型大学不同,我们期望培养的是适应社会就业的实践型人才。对于在计算机专业数学教学中融入计算数学思想的现实意义,需要通过真正的就业形势来说明。近年来,越来越多的软件企业倾向于从数学专业毕业生中招募人才,看重的就是其数学背景,很多企业也都新增了算法工程师一职,专门进行数值计算方面的研究。而所谓的程序员也成为了计算数学专业、信息与计算科学专业学生毕业的主要出路,这无疑是对计算机专业人才就业的一个冲击。对此,作为计算机专业的学生,在拥有更扎实的编程功底的同时,了解数值计算思想,不只能在就业之时提升自己的竞争力,在日后工作中,也能有更长远的发展。

最后,在近些年的计算机教学研讨中,计算思维这个词逐渐引起大家的注意,其概念是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。高等数学中的一些问题虽然简单,却能涉及到数值计算的求解,是引导学生利用计算机设计方法,求解问题的有利途径,对于培养学生的计算思维有一定的促进作用,而这样的思维对于学好计算机学科也起着关键的作用。

三、在高等数学教学中融入数值计算思想的方法

在实际教学中由于为了保证正常的教学进度,对于数值计算方法的引入不仅要合理,还要适度,根据独立学院的教学理念,应着重于介绍相关数值方法的应用,而对于具体的理论推导,可以简单的加以说明,避免过于枯燥,违背了引入数值计算思想的初衷。在高等数学课程中,主要介绍了极限、微分、积分的相关知识,下面对于可以融入数值计算思想的知识点给出简要介绍。

首先,在极限部分会介绍无穷大量与无穷小量的定义,而此时,学生对于计算机专业课的学习刚刚入门,对于无穷大量与无穷小量一方面可以通过极限的方式理解,还可以从算法角度考虑,对于一个算法,其运算量可表示成无穷大量,而其误差大小可以表示成无穷小量。

其次,在介绍导数部分时会涉及到导数的近似计算,对于给定一个函数导数形式,及某个初值,根据近似计算方法可以计算函数任意一点处的取值,这实际上也是数值计算中的差分法。而此时,学生的计算机专业课程刚好开始正式涉及编程,对于这样的微分方程给定初值求解问题,可以简单的给出相应的伪代码,使学生对于数值计算有初步的认识和理解。

最后,在积分部分,定积分的定义中求和的部分通过取剖分足够小,就可以模拟定积分的近似值,借助计算机,对于任意函数任意区域无论函数形式多复杂,都可以借助计算机求解,同时,此时的学生已经掌握了基本的编程语言,如果课时量允许,可以进行程序演示,让学生真正看到数值结果,对于数值计算思想有更深入的体会。

四、结论

本文主要介绍了在计算机专业的高等数学教学中融入数值计算思想的意义与具体教学改进方法。相信通过此类的改进,能有效丰富高等数学教学的现实背景,提高数学的趣味性。

数值计算方法是一门新兴的学科,它不只是简单地将一些计算方法进行罗列,而是一种是在计算机上使用的解决数学问题的方法,更是一种通过近似计算解决实际问题的思想。它可以让同学们真正的看到数学与计算机两门学科的融合,了解数学中的数值计算方法在借助计算机的运算能力下,可以解决什么样的问题,而不再是仅仅局限于抽象的数学符号和公式。在数学教学中融入数值计算思想,对于培养学生计算思维,帮助学生其他计算机科目的学习以及日后的就业也有积极的作用。作者日后也将继续深入研究在高等数学中融入数值计算思想的具体实践方法。(作者单位:天津师范大学津沽学院)

参考文献:

[1]邹洪侠,李胜,刘俞.基于算法思维的高职计算机专业数学教学改革探讨[J].菏泽学院学报,2014,05:107-109.

[2]张桂芸,裴伟东.试论计算机专业数学教学的现代性[J].天津师大学报(自然科学版),1999,02:58-62.

[3]梁文忠,谭伟明,覃学文.计算机专业应用型人才培养与数学教学改革[J].梧州学院学报,2012,02:93-96.

第6篇:数值计算方法范文

第一,分段线性插值;所谓分段线性插值是通过相邻的两个基点作为线性插值,其主要的优点是可以克服拉格朗日(Lagrange)插值在计算过程中可能出现的数值不收敛性。使用该方法处理数据主要是增加了插值的基点,从而进一步的提高了数据的准确度。但是,通过几何方法分析,分段插值法存在着基点处不光滑等缺点。尽管分段线性插值的精度可能会差一些,但是在实际中还是有着广泛的应用,比如在水文地质学的计算中,就因其不会出现不收敛的现象而常常被使用。

第二,三次样条插值;这种方法最大的特点就是客服了上述两种方法存在的不足,即基点处的不光滑,以及插值的不收敛性。但是,使用三次样条插值法必须要满足下列条件:首先,y(x)在每个子区间上的次数都不能多于3;其次,y(x)、y'(x)以及y"(x)在插值区间上必须是连续的等。使用三次样条插值可以降低多项式的次数,从而使得计算的结果具有较高的光滑性。

第三,近点法;该方法是按近点距离加权平均法的简称,其主要的优点是计算程序设计步骤简单,而且计算的速度也相对较快,而且使用该方法得出的等线值图的光滑性是比较令人满意的。该方法的缺点就是其唯一性较差,计算结果和选择点的数量有直接的关系,如果选择的点数不同,那么得到的数值就会不同。而且该方法的使用范围也受到一定的限制。

第四,方位法;这种方法的全称是四方位按距离加权平均法。该方法的优点是计算速度快,但是在计算不均匀的数据时,获得的插值效果较差。如果用该方法在水文地质中的含水层厚度空白区插值计算,则会出现去全局趋势不吻合的现象。分析其原因,主要是因为方位法获得插值是由一个插值点上的四个数据点来决定的,当出现的数据分布较为稀疏的时候,这种方法则不能包含所有的信息。所以,在实际的应用中要根据具体的情况来决定是否使用该方法。

第五,双三次多项式曲面片拟合法(曲面法);该方法适用于按规律分布的数据,在这种条件下,该方法可以发挥其拟合度高的优点。而且我们可以利用相邻结点的导数值,将整个区域组合成一个连续的大曲面。但是,不足的是该方法只能用于规则的数据,这使其使用价值显著降低。而且其程序设计也相对复杂。第七,加权二乘法;虽然该方法需要考虑的因素较多,但是使用该方法所得到的图形可以较好的反应一定的变化趋势,而且图形的平滑性相对较好,也有较好的唯一性。但是,由于计算每一个插值都需要解一个一次方程组,所以影响了计算速度。

2在水文地质学中使用数学插值法应该注意的问题以及改进方法

首先,有效的处理好方位因素的影响;对插值方法影响较大的是出现数据分布不均匀的时候。当数据分布不均匀时,对加权二乘法的影响最为显著,主要是因为当数据点的选择不当,会使去面片发生异位。对于该问题,笔者认为可以采取以下两种措施来尽可能的避免误差的出现:第一,用方向性对数据分析结果进行补偿;第二,以插值点为中心,进行角限选值,主要是将平面分成n等分,然后在每一个角限域内选择合适的数据进行计算。其次,科学的选择权函数;主要是针对近点法以及加权二乘法。所以,笔者认为根据不同条件下水文地质学计算的要求,我们选择不同的权函数。第三,断层问题的处理;在水文地质学中经常会遇到断层问题的计算。但是,从实际的经验看来,如果使用断层两侧的数据来计算插值是不符合逻辑的。笔者认为,在遇到断层需要计算时,可以在程序的设计中将断层假定为简单的直线或是曲线f(x)。这样在计算时,可以将断层分成几段不连续的曲面,在计算的过程中就可以对其进行有效的控制。但是,如果用将断层用直线表示,则可以用:(fx,y)=y-(b+bx)。第四,数据点的选择;当需要处理的数据很多的时候,选择有效的数据点数成为计算效率和准确率的关键。如果选择的点过多,则会导致计算量加大,相反,如果选的点不够则会影响数据的准确度。通过实践,我们发现,在距离Z点近的数据点对数据的影响是最大的,而较远的点影响相对较小,所以,选择近点的4到8个数据进行计算就可以达到一定的精准度。

3结束语

第7篇:数值计算方法范文

【关键词】蒙特卡罗;风险价值;估计;实现

一、蒙特卡罗Monte Carlo的概念、形式与一般步骤

蒙特卡罗(Monte Carlo)方法,又称随机抽样或统计试验方法,以概率和统计理论方法为基础的一种计算方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。又称统计模拟法、随机抽样技术。由S.M.乌拉姆和J.冯・诺伊曼在20世纪40年代为研制核武器而首先提出。它的基本思想是,首先建立一个概率模型或随机过程,使它们的参数,如概率分布或数学期望等问题的解;然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,并用算术平均值作为所求解的近似值。

(一)积分形式

做Monte Carlo时,求解积分的一般形式是:

X为自变量,它应该是随机的,定义域为(x0, x1),f(x)为被积函数,ψ(x)是x的概率密度。在计算欧式期权例子中,x为期权到期日股票价格,由于我们计算期权价格的时候该期权还没有到期,所以此时x是不确定的(是一随机变量),我们按照相应的理论,假设x的概率密度为ψ(x)、最高可能股价为x1(可以是正无穷)、最低可能股价为x0(可以是0),另外,期权收益是到期日股票价格x和期权行权价格的函数,我们用f(x)来表示期权收益。

(二)一般步骤

我将Monte Carlo分为三加一个步骤:

1、依据概率分布ψ(x)不断生成随机数x, 并计算f(x)

由于随机数性质,每次生成的x的值都是不确定的,为区分起见,我们可以给生成的x赋予下标。如xi表示生成的第i个x。生成了多少个x,就可以计算出多少个f(x)的值

2、将这些f(x)的值累加,并求平均值

例如我们共生成了N个x,这个步骤用数学式子表达就是

3、到达停止条件后退出

常用的停止条件有两种,一种是设定最多生成N个x,数量达到后即退出,另一种是检测计算结果与真实结果之间的误差,当这一误差小到某个范围之内时退出。

4、误差分析

Monte Carlo方法得到的结果是随机变量,因此,在给出点估计后,还需要给出此估计值的波动程度及区间估计。严格的误差分析首先要从证明收敛性出发,再计算理论方差,最后用样本方差来替论方差。在本文中我们假定此方法收敛,同时得到的结果服从正态分布,因此可以直接用样本方差作区间估计。详细过程在例子中解释。

二、投资组合风险价值的蒙特卡罗模拟的原理

投资组合风险价值的蒙特卡罗模拟法不同于历史模拟计算模型,由于证券市场上股票价格是千百万化的,过去的股票价格并不能代表未来的股票价格,而对投资组合的未来一段时间内的风险价值,对任何投资者来说都是非常重要的。因此,这就需要对股票价格的未来变化进行估计,以便为投资组合未来的风险价值进行估计。

利用蒙特卡罗模拟法对投资组合风险价值进行估计的方法和步骤是:

(1)首先利用下面的股票价格的模拟模型来估计未来某一时期内股票的价格:

式中,―为t时刻的股票价格;―为t+1时刻的股票价格;―为股票价格对数变动的均值;―为股票价格对数变动的标准差;―为要计算的时间间隔(以年为单位);z―为服从标准正态分布的随机数。

(2)根据得到的未来股票价格利用上一节介绍的投资组合风险价值的历史数据模拟计算模型方法估计投资组合的风险价值。

需要注意的是,股票价格对数均值和标准差必须与计算的时间间隔对应起来,如果计算的时间间隔为1天,那么股票价格对数均值和标准差必须是以日股票价格为基准;如果计算的时间间隔为7天(1周),那么股票价格对数均值和标准差必须是以周股票价格为基准。

三、模型结构设计

模型.xls”的工作簿,在当前的sheet1上设计模型的结构,如图1所示。

图1 投资组合风险价值的蒙特卡罗计算模型

模型由下述三部分组成:

(1)已知数据区域,要求用户输入投资组合的投资额、证券数量、未来计算总期数、计算时间间隔、置信水平和总模拟计算个数。此外,在单击[准备数据]按钮后,模型将对工作表进行格式化,生成一个要求输入各证券的投资比例、股票价格对数均值、股票价格对数标准差、以及目前股票价格的已知数据区域。

(2)命令按钮区域,包括一个[准备数据]按钮、一个[开始计算]按钮和一个[清除表格]按钮。[准备数据]按钮的功能是在用户输入证券数量后,模型自动对工作表进行格式化,以方便用户输入各证券的投资比例、股票价格对数均值、股票价格对数标准差、以及目前股票价格。[开始计算]按钮则完成计算功能,并输出投资组合中各证券的价格均值、期收益均值、投资组合单位、投资组合收益、以及投资组合的风险价值的计算结果。[清除表格]按钮则完成数据清除的功能,使工作表返回到图1所示的界面。

(3)计算结果区域,是在单击[开始计算]按钮后,模型计算结果的输出区域,包括最终计算结果区域和中间计算过程区域(在单击[开始计算]按钮才会出现。)

四、模型应用举例

例 某投资者用10万元进行一个由3个股票构成的投资组合,股票的有关数据如表1所示,若以周为单位,试确定在95%的置信水平下该投资组合的风险价值。

利用“投资组合风险价值的蒙特卡罗模拟计算模型”的计算过程如下:

(1)在单元格B3中输入投资额“100000”,在单元格B4输入投资组合中的证券数量“3”,在单元格B5输入未来的总期数(周)“52”,在单元格B6中输入需要计算的时间间隔(以天计算)“7”,在单元格B7中输入置信水平“95%”,在单元格B8中输入需要模拟计算的次数(比如1000次)。

(2)单击[准备数据]按钮,对工作表进行格式化,格式化后的工作表如图2所示。

图2 格式化后的工作表

(3)按照格式化后的工作表输入各个证券的有关数据。

(4)单击[开始计算]按钮,计算结束后,模型弹出“模拟计算结束”信息框,如图3所示,并将计算结果输出到工作表的有关单元格中,如图4所示。其中股票价格及收益等为最后一次的模拟计算结果。

若利用“投资组合风险价值的蒙特卡罗黑箱计算模型”进行计算,同样进行1000次模拟计算,则计算时间只要20秒左右,其计算结果如图5所示。

图5 蒙特卡罗的黑箱计算模型的计算结果

可见,该投资组合的周价格为13.36元,周收益均值为0.09元,1年的投资组合收益为623.19元。在95%的置信水平下,该投资组合第2个最坏的周收益为-0.07,该投资组合1年内的风险价值为4771.56元。

由于随机数的原因,每次运行模型所计算的结果是不一样的。当进行足够多次模拟运算时,则每次运行模型所计算的结果差别应该是不是很大的。

参考文献:

第8篇:数值计算方法范文

目前核电设计方面应用的主要力学有限元软件均不具备疲劳裂纹扩展计算功能,虽然国内外已经开发了一些专用疲劳裂纹扩展计算软件,但均未列入目前核电项目适用软件清单中。同时,专用疲劳裂纹扩展计算软件一般不具备应力计算功能,因此存在着与应力计算所用有限元程序的接口问题。

本文采用ANSYS程序中的APDL语言编制疲劳裂纹扩展计算程序,皆在避免断裂力学分析中第二种方法的不足,使其能广泛地应用于工程计算分析,并应用于反应堆压力容器疲劳裂纹扩展分析中。

1疲劳裂纹扩展计算方法

1.1初始裂纹的假设RCC-MZG3321.1中假设初始裂纹深度值为15mm,疲劳裂纹扩展计算以该初始裂纹尺寸为基础进行扩展计算。

1.2应力强度因子KI计算根据RCC-MZG6100的方法,应力强度因子KI按下式计算。

1.3应力强度因子变化幅值ΔKI的计算计算各设计瞬态重要时刻的应力强度因子KI,并选取其中的极大和极小值。所有设计瞬态计算所得的应力强度因子KI的极大和极小值形成一个集合,并且每个KI值均对应其相应瞬态发生的次数。选取集合中应力强度因子的极大和极小值KI(k)和KI(l),相应的发生次数分别为nk和nl;二者之差为应力强度因子的变化幅值ΔKI(k,l);该幅值发生的次数nkl取KI(k)和KI(l)的二者对应发生次数较小的值。整个疲劳裂纹扩展计算过程就是上述从应力强度因子计算到变化幅值计算再到裂纹扩展尺寸计算的循环重复过程,直至所有应力强度因子的次数用尽为止。

2疲劳裂纹扩展APDL语言程序的计算流程

(1)压力、温度瞬态下的应力计算:首先对所分析结构进行参数化有限元建模,根据不同的应力计算方式选取不同的单元进行网格划分;在有限元模型上施加第2类工况压力和温度瞬态、水压试验压力,计算各设计瞬态和水压试验压力下的应力。(2)应力强度因子计算:基于步骤(1)所计算的应力结果,根据RCC-MZG6100的方法计算各设计瞬态重要时刻的应力强度因子,选取并存储最大和最小应力强度因子值;所有瞬态的最大和最小应力强度因子值存储在一数组中,其中每个应力强度因子值都对应其相应瞬态发生的次数。(3)应力强度幅值计算:选取步骤(2)中数组中应力强度因子的极大和极小值KI(k)和KI(l),相应的发生次数分别为nk和nl,二者之差为应力强度因子的变化范围ΔKI(k,l),该值发生的次数nkl=min(nk,nl)。(4)根据规范ZG3322,对ΔKI(k,l)进行塑性修正。(5)计算裂纹扩展后的尺寸:基于步骤(4)的计算结果,根据RCC-M规范表ZG3322选取不同的疲劳裂纹扩展速率;确定了疲劳裂纹扩展速率,可根据前文所述计算公式得到扩展后的裂纹尺寸。(6)修正瞬态次数:更新应力强度因子值的次数:nk=nk-nk1,nl=nl-nk1,去掉次数用尽的应力强度因子值,更新存储应力强度因子值的数组;基于新的裂纹尺寸,应用APDL循环语句,重复步骤(3)至步骤(6)的过程,直到数组中所有应力强度因子所对应的次数全部用尽。(7)输出寿期末裂纹尺寸。计算流程见图1。

3反应堆压力容器疲劳裂纹扩展计算

应用上述程序对反应堆压力容器堆芯筒体段进行疲劳裂纹扩展计算。基于结构的轴对称性建立二维轴对称有限元模型。计算模型包括堆焊层及筒体母材。材料性能输入数据包括瞬态温度范围内各温度下的弹性模量、热导率、比热及线胀系数。载荷为第二类工况压力和温度瞬态以及水压试验压力,应用ANSYS程序计算压力-温度耦合场应力值。初始裂纹深度取15mm,应用编制的APDL语言疲劳裂纹扩展程序对其进行计算,最终得到寿期末裂纹尺寸为21.4mm。采用人工提取应力结果数据,并按规范中相应公式验算各个计算模块,如应力强度因子计算、某一组应力强度因子组合产生的裂纹扩展量的计算等,公式计算结果与程序计算结果相同,验证了分析流程的正确性。

4结论

第9篇:数值计算方法范文

(西安财经学院行知学院信息系,陕西 西安 710038)

【摘 要】在无监督学习中,k均值聚类以其快速简单的特点得到了广泛的应用。EM算法是针对缺失数据的一种统计学习方法。然而,k均值和EM这两种不同领域的算法在思想上却有着一致的地方。本文分析了k均值中蕴含的EM思想,指出了k均值中样本隶属度更新和类中心更新与EM算法中的E步和M步的等价性。最后,利用R语言矩阵化运算的特点,介绍在如何在R语言中高效地实现k均值聚类算法。

关键词 k均值;EM算法;聚类分析

The idea of EM implied in k-means clustering

MA Li-na

(Department of Information, Xingzhi College of Xi’an University of Finance and Economics, Xi’an Shaanxi 710038, China)

【Abstract】In unsupervised learning, k-means clustering is widely applied in many fields due to the fact that it is very simple and fast. EM algorithm is a statistical learning approach for missing data. Although these two methods are applied in different areas, they are similar in terms of some ideas. The principle of EM implied in k-means clustering is analyzed in this paper. The equality between the two steps in k-means (the update of membership and the update of prototypes) and the E and M steps in EM algorithms is pointed out.

【Key words】k-means; EM algorithm; Clustering analysis

作者简介:马丽娜(1986—),女,汉族,研究生,西安财经学院行知学院教师,研究方向为应用概率统计。

0 引言

在数据分析中,根据数据集中有无某些已知类别的样本,可以分为监督学习和无监督学习两种。无监督学习是最常见的一种统计学习模式,又称为聚类分析,已经在文本挖掘[1]、遥感图像[2]、生物医学[3]、社交网络[4]、安全检测[5]等领域得到了广泛的应用。目前已经有许多成熟的聚类方法,像k均值聚类,支持向量机,层次聚类,基于密度的聚类等[6]。k均值算法以其简洁高效的特性,是最受关注的聚类方法之一。最大期望值算法(EM算法),是针对缺失数据的一种统计学习理论,常常被用来求在含有不完整观测的数据集下的极大似然估计[7]。本文分析了k均值聚类和EM算法思想上的相通之处,指出了两种方法迭代过程的等价性。

1 相关理论知识

1.1 k均值聚类

k均值算法中的输入变量为类个数k和样本矩阵X。其中X中存有参与聚类的n个样本。算法的目标是将n个数据对象划分为k个类,以便使得所获得的k个子类满足:同一子类中的对象相似度较高;而不同子类中的对象相似度较小。k均值算法基本步骤如下:

a)从 n个样本中任意选择 k个对象作为初始类中心;

b)根据每个子类中样本的均值,计算每个对象与这些中心样本点的距离;并将每个样本分到这样一个子类,这个子类的中心是所有k个中心点离该样本最近的;

c)重新计算每个子类的均值;

d)当满足一定收敛条件(如类中心不再变化)时,则算法终止;如果条件不满足则回到步骤b)。

1.2 模糊k均值聚类

模糊k均值聚类(FCM)是对传统k均值聚类的拓展。在FCM中,样本不再明确地属于或者不属于某一类,而是对各个子类有个0和1之间的隶属度。详细算法如下:

a)从n个样本中任意选择k个对象作为初始类中心;

b)计算每个对象与这些中心点的距离;并根据这些距离值计算样本对各单类的隶属度;

c)根据样本的隶属度重新计算每个子类的均值(找出中心样本);

d)当满足一定收敛条件时,则算法终止;如果条件不满足则回到步骤b)。

可以看出传统k均值其实是一种特殊的FCM,即限制了隶属度为0或1。

1.3 改进模糊k均值聚类

传统的模糊k均值聚类对噪声点敏感。这是由于其对隶属度进行了概率归一化的限制,使得隶属度是相对的,而不是绝对的。比如,如果有两个点A和B,A和B均和两个类的距离相等。不同的是,A到两个类中心的距离较小,而B到两个类中心的距离很大。传统的模糊k均值不能区分这两种情况的不同,都会给A和B赋予0.5的各类隶属度。为此,目前有许多针对传统模糊k均值聚类的改进算法([8,9]),如噪声模糊k均值算法([10])。这种算法在原来的各个类的基础上,增加了噪声类。设定了一个距离阈值t,当样本到各个类中心的距离都大于t时,则将该样本归为噪声类,算法如下。

a)初始化k个类中心,设定噪声类阈值t;

b)计算每个对象与这些类中心点的距离;并根据这些距离值和阈值t计算样本对各单类和噪声类的隶属度;

c)根据样本的隶属度重新计算每个子类的均值(找出中心样本);

d)当满足一定收敛条件时,则算法终止;如果条件不满足则回到步骤b)。

1.4 EM算法

在统计计算中,EM模型中常用来计算在带有不完全观测的数据集下参数的最大似然估计。为了方便起见,我们将数据集W分为两部分,可直接观测部分Y和不可观测(隐藏)部分Z。EM算法同样经过两个步骤交替进行计算:

a)E步:利用对隐藏变量Z的当前估计值(在观测Y下的条件期望),计算完全(对数)似然函数Q;

b)M步:最大化在 E步上求得的似然函数Q来计算参数的值。

在M步上找到的参数估计值将被用于下一个 E步计算中,这个过程不断交替进行,直到算法收敛。

2 k均值和EM迭代过程的等价性

EM算法的迭代过程类似于爬山的过程。在E步,为基于完全数据的对数观测似然函数确定一个下界函数。然后在M步,极大化这个下界函数。接下来就是一个循环往复的过程。在EM算法刚开始的时候,给定初始点,进行E步,观测似然函数值并没有提升,它只是找到了一个下界函数Q,并且这个函数和对数观测似然函数在初始点的值相等。在极大化之后,我们再计算期望,这时的E步才会提升观测似然函数值。

E步是对不可观测的隐藏变量进行猜测。这种猜测是在观测样本的基础上进行的,即在观测样本和现有参数下求条件期望。如果以观测样本和现有的参数为猜测依据,那么期望就是最靠谱的猜测。所谓的靠谱,就是说在现行的参数下,目标函数和猜测函数Q的值相等,而且猜测函数在参数为其他值时也不会超过对应的目标函数。E步保证了这种猜测是目标函数的下界,所以M步求得的极大值依然没有超过目标函数的最大值。在M步求得极大值后,参数进行了更新,所以也要将猜测根据新的参数进行更新。可以说,下一次迭代的E步提升了上一次迭代M步的值。而这种提升的原因,有两点:(1)基于上一次E步,猜测函数的值小于目标函数。(2)在进行新的E步之后,目标函数和新的猜测函数值相同,而新的猜测函数同样是目标函数的下界。

再来看一下k均值的更新过程。k均值通过更新两种变量来极小化目标函数,类中心和隶属度。隶属度,即类别标签,相当于不可观测的隐藏变量。而类中心是可观测的。在已知观测变量的条件下,首先猜样本属于哪一类。易知通过将样本分到最近的中心所在的类,就可以实现目标函数在现有观测条件下的极小化。所谓的条件期望,在这里其实就是根据各类几何中心确定类标签或隶属度。接下来就要通过极小化的方法来确定类中心。因此,类中心的更新过程相当于EM中的M步,而隶属度更新的过程相当于EM中的E步。

对于均值聚类来讲,刚开始并不知道每个样本对应的隐藏变量,即其类别标签。刚开始的时候可以对类标签进行一个随机初始化,然后在类别已知的情况下,极大化目标函数。接下来发现会有更好的类标签的指定办法。如此往复,直到目标函数收敛。所以,聚类的目标函数相当于EM中观测对数似然函数的角色。对于传统k均值聚类来讲,隐藏类别的指定方法比较特殊,属于非此及彼的硬指派。而对于模糊均值聚类,类别的指派办法是依赖隶属度的。

以上的讨论不限于传统k均值聚类,对其各种改进算法,如噪声k均值聚类同样适用。

3 k均值聚类的实现

R语言是当前最为流利的一种统计分析语言,它包含一套完整的数据处理、计算和制图软件系统。现在已经有成熟的R包集成了聚类算法,包含k均值聚类,比如vegclust包。其中,vegclust函数提供了k均值和模糊k均值聚类的功能。但是,这个函数并没有利用R矩阵化运算的特点,这就降低了程序的执行效率。R语言作为一种解释型编译语言,显式循环比较慢是其一个很大的缺点。虽然已经有apply系列的函数来避免显式循环,但是在很多情况下还是不能满足需求。其实,R语言的一个显著的、优点是支持矩阵化运算。如果能用矩阵运算来代替显式循环,将会大大提高程序的效率。比如,在隶属度确定时,利用矩阵化运算的思想,可以通过矩阵乘积来实现。假设样本距离矩阵为D, 则隶属度的计算过程为:

a)计算D的倒数的1/(m-1)次方,其中m为模糊化因子,计算结果记为S。

b)用S除以S和k维全1矩阵的矩阵乘积。

经过上述两个步骤,就得到了各个样本的隶属度。同样的,可以设计更新样本中心时的矩阵化方法。记隶属度矩阵为U,中心更新算法如下。

a)计算U的m次方和样本矩阵的矩阵乘积。

b)计算U的m次方和n*d维全1矩阵的矩阵乘积。其中n为样本的个数,d为样本的维数。

c)将上面两个步骤得到的矩阵向量相除得到中心矩阵V。

噪声k均值聚类算法的隶属度更新可类似进行:

a)计算D的倒数的1/(m-1)次方,同样将计算结果记为S。

b)用S除以S与k维全1矩阵的矩阵乘积和t的倒数的1/(m-1)次方的和。

增加的噪声类对各个类中心的计算无影响,所以中心的更新过程和上面模糊k均值聚类是完全一样的。有了隶属度和中心更新的主程序,不同k均值聚类均可依下流程进行。

a)初始化k个类中心,指定需要的附加参数。

b)依如上介绍的隶属度更新算法计算矩阵U。

c)依如上介绍的中心确定算法计算矩阵V。

d)判断算法收敛条件,如不满足收敛条件,返回b)。如满足,则算法结束。

算法的收敛条件可以根据需要设计,可以为相邻两次迭代目标函数的值变化不大,或相邻两次迭代确定的类中心完全相同。

为了显示矩阵化后的程序的优势,我们以Iris数据集为例,用vegclust和本文设计的算法FCM分别执行模糊k均值聚类,将实验以不同的随机初始点重复进行1000次,比较系统运行的时间,结果如表1所示。

从上表可以看出,矩阵化运算可以使程序的运行时间大大缩短,这就极大地提高了算法的效率。尤其在海量数据的时代,更具有实际应用价值。

4 结论

本文讨论了k均值聚类中包含的EM思想,并指出了两个算法在迭代过程中的等价性。k均值中样本隶属度更新和类中心更新分别与EM算法中的E步和M步的等价,两个不同领域的方法在思想上是相通的。同时,介绍了如何基于矩阵化运算进行k均值聚类的程序设计。并用数值实例证明了矩阵化算法可以使R程序的执行效率大大提高。

参考文献

[1]任江涛,孙婧昊,施潇潇,等.一种用于文本聚类的改进的k均值算法[J].计算机应用,2006,26(B06):73-75.

[2]王易循,赵勋杰.基于k均值聚类分割彩色图像算法的改进[J].计算机应用与软件,2010,27(8):127-130.

[3]王兴伟,沈兰荪.基于改进的k均值聚类和数学形态学的彩色眼科图像病灶分割[J].中国生物医学工程学报,2002,21(5):443-448.

[4]杨建新,周献中,葛银茂.基于拉普拉斯图谱和k均值的多社团发现方法[J].计算机工程,2008,34(12):178-180.

[5]胡艳维,秦拯,张忠志.基于模拟退火与k均值聚类的入侵检测算法[J].计算机科学,2010,37(6):122-124.

[6]汤效琴,戴汝源.数据挖掘中聚类分析的技术方法[J].微计算机信息,2003,19(1):3-4.

[7]王爱平,张功营,刘方.EM算法研究与应用[J].计算机技术与发展,2009,19(9):108-110.

[8]傅德胜,周辰.基于密度的改进k均值算法及实现[J].计算机应用,2011,31(2):432-434.

[9]孔锐,张国宣,施泽生,等.基于核的k-均值聚类[J].计算机工程,2004,30(11):12-13.