本科毕业论文(设计)论文(设计)题目:打靶法求边值问题学院:理学院专业:数学应用数学班级:091学号:0907010228学生姓名:钟玲声指导教师:汪萌萌2013年4月21日打靶法求边值问题目录摘要:······························································································1引言:······························································································2第一章常微分方程初值问题的解法······················································31.1常微分方程的离散化_________________________________________31.2欧拉(Euler)方法___________________________________________41.3改进的Euler方法____________________________________________61.4龙格—库塔(Runge—Kutta)方法_____________________________71.54阶龙格—库塔公式__________________________________________91.6线性多步法_________________________________________________9第二章边值问题的数值解法·····························································112.1打靶法____________________________________________________112.2差分法____________________________________________________15第三章Matlab数值解····································································1663.1常微分方程的解法_________________________________________1663.2打靶法的matlab实现_______________________________________23致谢:··························································································27主要参考文献··················································································27贵州大学本科毕业论文(设计)第1页摘要常微分方程在很多领域都有非常重要的应用,然而很多常微分方程的解是无法用解析解写出的,因而要借助于数值方法。本文介绍了常微分方程边值问题的常见解法,例如:欧拉法,龙格—库塔法等。而对于常微分方程边值问题,常见的解法有打靶法、有限差分法和有限元法等。在本文中,我们重点介绍了打靶法,并给出了相关算法,然后结合实例编写程序进行了上机实验。关键词:常微分方程,初值问题,边值问题,打靶法AbstractOrdinarydifferentialequationsplayanimportantroleindifferentareas.However,mostequationscannotbeexpressedanalytically.Weneedtousenumericalmethods.Inthispaper,wediscussthemethodsofsolvinginitialvalueproblem(IVP),suchasEulermethodRunge-Kuttamethod.Forboundaryvalueproblem(BVP),shootingmethod,finitedifferencemethod(FDM)andfiniteelementmethod(FEM)arepresented.Wemainlydiscussshootingmethodandgivethealgorithm.Numericalexperimentispresentedintheendofthepaper.Keywords:Ordinarydifferentialequations,initialvalueproblem,boundaryvalueproblem,theshootingmethod贵州大学本科毕业论文(设计)第2页引言虽然常微分方程理论发展已经有几百年,但目前仍然在发展中。特别是最近三十年,常微分方程迎来了发展的高峰。常微分方程边值问题是常微分方程理论的重要组成部分,在众多科学技术领域中有着特别广泛的应用。打靶法是求解常微分方程边值问题的一种数值方法,它的基本思想是将微分方程的边值问题转化为初值问题来求解,它的比较突出的特点是精度很高,程序很简单,实用性很强。边值问题:对n阶常微分方程),,...,,,()1(')(nnyyyxfy如果能在不同的两点a和b处,唯一地刻画n个附加条件,并且在区间bta上求解,则称此为边值问题。在微分方程中,所谓的边值问题就是我们给定的一个微分方程和一组被我们称之为边界条件的约束条件。边值问题的解一般情况下是符合特定的约束条件的微分方程的解。我们在求解这个微分方程时,除了给出方程的本身,往往还需要提供一定的定解条件。最常见的就是给出初值问题,也就是说给出的定解条件为初始条件;但是也有一些情况,定解条件要求我们考虑所讨论区域的边界,比如说在一个给定区间讨论时,把定解条件在区间的两个端点给出,给定的这种定解条件就被我们称之为边界条件,与之相应的定解问题我们就称之为边值问题。贵州大学本科毕业论文(设计)第3页第一章常微分方程组初值问题的解法1.1常微分方程的离散化下面主要讨论一阶常微分方程的初值问题,它的一般形式是0)(),(yaybxayxfdxdy(1)在下面的讨论中,总假定函数),(yxf连续,且满足Lipschitz条件,也就是存在常数L,使得|||),(),(|yyLyxfyxf那么,根据常微分方程理论知,初值问题(1)的解存在并且唯一.所谓数值解法,就是求问题(1)的解)(xy在若干点bxxxxaN210处的近似值),,2,1(Nnyn的方法,),,2,1(Nnyn称为问题(1)的数值解,nnnxxh1称为由nx到1nx的步长.今后如无特别说明,我们总取步长为常量h.建立数值解法,首先要将微分方程离散化,一般采用以下几种方法:1.1.1用差商近似导数如果用向前差商hxyxynn)()(1代替)('nxy代入(1)中的微分方程,则得),1,0())(,()()(1nxyxfhxyxynnnn化简得))(,()()(1nnnnxyxhfxyxy如果用)(nxy的近似值ny代入上式右端,所得结果作为)(1nxy的近似值,记为贵州大学本科毕业论文(设计)第4页1ny,那么有),1,0(),(1nyxhfyynnnn(2)这样,问题(1)的近似解可通过求解下面的问题)(),1,0(),(01ayynyxhfyynnnn(3)得到,按式(3)由初值0y可逐次算出,,21yy.式子(3)是个离散化的问题,称为差分方程初值问题.需要说明的是,用不一样的差商近似导数,将得到不一样的计算公式.1.1.2用数值积分方法将问题(1)的解表成积分形式,用数值积分方法离散化.例如,对微分方程两端积分,得到1),1,0())(,()()(1nnxxnnndxxyxfxyxy(4)右边的积分用矩形公式或梯形公式计算.1.1.3Taylor多项式近似将函数)(xy在nx处展开,取一次Taylor多项式近似,则得))(,()()(')()(1nnnnnnxyxhfxyxhyxyxy再将)(nxy的近似值ny代入上式右端,所得结果作为)(1nxy的近似值1ny,得到离散化的计算公式),(1nnnnyxhfyy上面的三种方法都是将微分方程离散化的常用方法,每一类方法又可导出不同形式的计算公式.其中的Taylor展开法,不仅可以得到求数值解的公式,而且容易估计截断误差.1.2欧拉(Euler)方法贵州大学本科毕业论文(设计)第5页1.2.1Euler方法Euler方法就是用差分方程初值问题(3)的解来近似微分方程初值问题(1)的解,即由公式(3)依次算出)(nxy的近似值),2,1(nyn。这组公式求问题(1)的数值解称为向前Euler公式.如果在微分方程离散化时,用向后差商代替导数,也就是hxyxyxynnn)()()('11,则得计算公式)(),1,0(),(0111ayynyxhfyynnnn(5)用这组公式求问题(1)的数值解称为向后Euler公式.向后Euler法与Euler法形式上相似,但实际计算时却复杂得多.向前Euler公式是显式的,可直接求解.向后Euler公式的右端含有1ny,因此是隐式公式,一般要用迭代法求解,迭代公式通常为),2,1,0(),(),()(11)1(1)0(1kyxhfyyyxhfyyknnnknnnnn(6)1.2.2Euler方法的误差估计对于向前Euler公式(3)我们看到,因为,2,1n时公式右端的ny都是近似的,所以用它计算的1ny会有累积误差,分析累积误差比较复杂,这里先讨论比较简单的所谓局部截断误差.假设用(3)式时右端的ny没有误差,即)(nnxyy,那么由此算出))(,()(1nnnnxyxhfxyy(7)局部截断误差指的是,按(7)式计算由nx到1nx这一步的计算值1ny与精确值)(1nxy之差11)(nnyxy.为了估计它,根据Taylor展开得到的精确值)(1nxy是)()(''2)(')()(321hOxyhxhyxyxynnnn(8)(7)、(8)两式相减(注意到),('yxfy)得到贵州大学本科毕业论文(设计)第6页)()()(''2)(23211hOhOxyhyxynnn(9)也就是局部截断误差是2h阶的,而数值算法的精度定义为:如果一种算法的局部截断误差为)(1phO,则称该算法具有p阶精度.显然p越大,方法的精度越高。式(9)说明,向前Euler方法是一阶方法,因此它的精度不高。1.3改进的Euler方法1.3.1梯形公式利用数值积分方法将微分方程离散化的时候,如果用梯形公式计算式(4)中之右端积分,即))](,())(,([2))(,(111nnnnxxxyxfxyxfhdxxyxfnn并用1,nnyy代替)(),(1nnxyxy,那么得计算公式)],(),([2111nnnnnnyxfyxfhyy这就是求解初值问题(1)的梯形公式.直观上容易看出,用梯形公式计算数值积分要比矩形公式好.梯形公式为二阶方法。梯形公式也是隐式格式,一般需用迭代法求解,迭代公式为),2,1,0()],(),([2),()(11)1(1)0(1kyxfyxfhyyyxhfyyknnnnnknnnnn(10)由于函数),(yxf关于y满足Lipschitz条件,容易看出||2||)1(1)(1)(1)1(1knknknknyyhLyy其中L为Lipschitz常数.因此,当120hL时,迭代