一个通用数值积分的matlab实现(带附录)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学校代码:11059学号:1107011027HefeiUniversity毕业论文(设计)BACHELORDISSERTATION论文题目:一个通用数值积分的MATLAB实现学位类别:理学学士学科专业:信息与计算科学作者姓名:黄凯导师姓名:段敏完成时间:2015年5月20日一个通用数值积分的MATLAB实现摘要当我们在现实生活和学习研究中需要运用积分来解决某些问题的时候,我们常常会因为这个积分是否能求出精确解以及积分求解的难易程度而感到苦恼。虽然数值积分中巧妙的利用积分中值定理利用各种算法可以近似的求出积分的近似解,但是往往利用单一公式求出的解精确度不是很高,如果要提高精度就涉及到公式的复化问题。在复化公式中我们采用多区间逐步逼近的方法可以让计算结果更加接近精确值,但这样我们的计算量也会跟着加大。Matlab的出现虽然将人们从繁复的计算中解放出来,但若要利用matlab来解决问题就会涉及到matlab编程问题,这会给一般的用户带来很大困难。虽然在各个文献中数值积分的各个公式的matlab程序已屡见不鲜,但终究都是零散单一的对单个公式的编程,没有统一的通用数值积分程序。本文通过对数值积分的各种算法如:矩形公式、梯形公式、牛顿-柯茨公式等以及这些公式在matlab中的算法实现的比较,将尝试编写出统一的调用程序。根据问题的实际要求选择性的调用某种算法,这样不仅能将错综复杂的数值积分问题集中化、简单化,更能提高解决问题的效率。所以这篇文章的着重点也就在通用数值积分程序的编写及使用上。关键词:数值积分;方法比较;通用算法AgeneralnumericalintegrationMATLABABSTRACTWhenweareinthereallifeandlearningneedstouseintegraltosolvesomeproblemsintheresearch,weoftenbecausetheintegralisabletofindouttheexactsolutionandtothedifficultyoftheintegralsolution.Althoughthecleveruseofintegralmeanvaluetheoreminnumericalintegrationusingvariousalgorithmcanapproximatetheapproximatesolutionofintegral,buttendtouseasingleformulaandthesolutionaccuracyisnothigh,itinvolvestheformulaofcomplexproblems.Weusedincompoundformularangemoregradualapproximationmethodcanmakeamoreaccuratecalculationresultsmorecloseto,butthiswaywewillincreasetheamountofcalculation.Matlabwhilepeoplewillbeliberatedfromthecalculationofheavyandcomplicated,butifyouwanttouseMatlabtosolvetheproblemwillinvolvetheMatlabprogrammingproblems,itwillbringconsiderabledifficultiestothegeneraluser.Althoughintheliteratureofnumericalintegrationformulamatlabhasbecomecommon,buttheywerescatteredonasingleformulaofsingleprogramming,thereisnouniformgeneralnumericalintegrationprogram.Basedonthenumericalintegrationofallkindsofalgorithmssuchas:rectangleformula,thetrapezoidformula,Newton-ke,formula,andthecomparisonoftheseformulasinthematlabalgorithm,willtrytowriteaunifiedthecaller.Problemaccordingtotheactualrequirementsofselectivecallsomealgorithms,suchnotonlycancentralizingfaultinthecomplexnumericalintegrationproblems,simple,morecanimprovetheefficiencyofproblemsolving.Sotheemphasisofthisarticleisinwritingandusinggeneralnumericalintegralprogram.KEYWORDS:Numericalintegration;Methodofcomparison;Generalalgorithm目录第一章前言..............................................................11.1研究背景与课题意义...............................................1第二章数值积分几种公式探析..............................................22.1数值积分方法的原理..............................................22.2矩形公式.........................................................22.3梯形公式.........................................................32.4辛普森公式.......................................................32.5牛顿-柯茨公式....................................................42.6自适应数值积分...................................................4第三章Matlab编程程序....................................................53.1主程序..........................................................53.2调试实例.........................................................53.2.1矩形公式调用实例..........................................63.2.2梯形公式调用实例(计算不同等分份数的积分值)................73.2.3辛普森公式调用实例........................................83.2.4牛顿-柯茨公式调用实例....................................103.2.5自适应积分调用实例.......................................113.3小结...........................................................12第四章结语............................................................13参考文献................................................................14附录...................................................................15主程序.............................................................15致谢................................................................211第一章前言1.1研究背景与课题意义随着数值积分问题在日常生活中的应用越来越多,人们对数值积分的研究也越来越深。单从美国数学评论的走向来说,从1975年到1979年之间,与数值积分问题有关的文献在美国数学评论上有评论的就有上百份之多。当我们对这些文章做一个比较分析就会看到这些文章有着以下四个共同点即:研究方法的多样性、研究对象的特殊性、研究问题的具体性以及带微商项的积分公式明显增多。另外,Matlab软件的诞生可以说是数学界一个福音,因为matlab是一个功能非常强大的科学计算软件,它是集数值处理、图形处理、图像处理、符号计算、文字处理、数学建模、实时控制、动态逼真、信号处理为一体的数学应用软件。Matlab的出现瞬间将人们从繁重的计算中解放出来,并且利用matlab来计算的准确性往往也会比人工计算的精确度高。因此,利用Matlab来计算数值积分是一种有效的积分数值计算方法,同时也可验证数值积分一般算法的准确性。数值积分的计算方法很多,诸如矩形、梯形、辛普森、牛顿柯斯特、龙贝格、高斯算法等,还有相应的自适应算法。一般是一种算法,编写一个模块,这是常用的思想方法,若能在一个模块中通过输入接口,选择不同的算法,则又前进了一步,MATLAB中的数值积分多数是能完成这种功能的,但能实现更通用的功能,如输入接口中能提供更多的算法选择,更多的要求,如划分节点数,精度要求,是否自适应,耗时等数据,目前尚未有人开展研究。本论文编写出的数值积分通用程序,将达到集成统一的调用方式,这就是本课题研究的目的;其意义在于调用处理模块名称统一,通过选择参数来选择不同的算法处理过程。2第二章数值积分几种公式探析2.1数值积分方法的原理从公式来看:()()()bafxdxfba(1)我们利用积分中值定理得到上面所示的公式,我们所见到的一般的数值积分公式也是由该公式演变而来。当()f不能求出精确解的时候,我们就只能通过提供不同的近似方法来对()f求近似解,这样我们就能求出该函数积分的近似解。当然根据不同的近似方法所求出的()f的近似值与精确值之间的误差也会有所不同。因此我们要根据误差要求选择不同的近似方法。2.2矩形公式当我们取一个点来近似代替()f的值的时候,就会演变出我们平时常见的矩形公式。当我们用()fa来近似代替()f的值的时候,就演变成我们平时见到的左矩形公式:()()()bafxdxfaba(2)当我们用()fb来近似代替()f的值的时候,就演变成我们平时见到的右矩形公式:()()()bafxdxfbba(3)当我们用1(())2fab来近似代替()f的值的时候,就演变成我们平时所见的中矩形公式:1()(())()2bafxdxfabba(4)3根据曲线的走势不同,选择左矩形和右矩形近似求解的时候会呈现偏大或偏小的情况,用中矩形方法来求解相对来说误差会小一点。2.3梯形公式如图2.3.1所示当我们用两个点()fa和()fb的平均值来近似代替()f的值的时候,就演变成我们平时所见到的梯形公式:1()(()())()2bafxdxfabba(5)图2.3.1梯形公式示意图相对于矩形公式用一个点来近似代替()f的值来说,梯形公式用两个点的平均值来代替()f的值,其

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功