第一章绪论1.1引言常微分方程是现代数学的一个重要分支,是人们解决各种实际问题的有效工具。微分方程的理论和方法从17世纪末开始发展起来,很快成了研究自然现象的强有力工具,在17到18世纪,在力学、天文、科学技术、物理中,就已借助微分方程取得了巨大的成就。1864年Leverrer根据这个方程预见了海王星的存在,并确定出海王星在天空中的位置。现在,常微分方程在许多方面获得了日新月异的应用。这些应用也为常微分方程的进一步发展提供了新的问题,促使人们对微分方程进行更深入的研究,以便适应科学技术飞速发展的需要。研究常微分方程常用数值解是数学工作者的一项基本的且重要的工作。在国内外众多数学家的不懈努力,使此学科基本上形成了一套完美的体系。微分方程的首要问题是如何求一个给定方程的通解或特解。到目前为止,人们已经对许多微分方程得出了求解的一般方法。由于在生产实际和科学研究中所遇到的微分方程问题比较复杂,使这些问题的解即使能求出解析表达式,也往往因计算量太大而难于求出,而对于一些典型的微分方程则可以运用基本方法求出其解析解,并可以根据初值问题的条件把其中的任意常数确定下来。由于求通解存在许多困难,人们就开始研究带某种定解条件的特解。首先是Cauchy对微分方程初始解的存在惟一性进行了研究。目前解的存在惟一性、延拓性、大范围的存在性以及解对初始解和参数的延续性和可微性等理论问题都已发展成熟。与此同时,人们开始采取各种近似方法来求微分方程的特解,例如求微分方程数值解的Euler折线法、Runge-Kutta法等,可以求得若干个点上微分方程的近似解。最后,由于当代高科技的发展为数学的广泛应用和深入研究提供了更好的手段。用计算机结合Matlab软件求方程的精确解、近似解,对解的性态进行图示和定性、稳定性研究都十分方便有效。本章先介绍常微分的一般概念、导出微分方程的一些典型例子及求解微分方程的思路分析。从而得到常微分方程的常用数值解法。1.2常微分方程的概念1.常微分方程的定义含有未知量的等式称为方程,它表达了未知量所必须满足的某些条件。一般说来,凡含有自变量、未知函数以及未知函数的导数或微分的方程称为微分方程。如果微分方程中的未知函数只依赖于一个自变量,则称为常微分方程;如果未知函数依赖于两个或多个的自变量,并且在方程中出现偏导数,则称为偏微分方程。在在一个微分方程中,未知函数最高阶导数的阶数,称为方程的阶数。如果一个微分方程关于未知函数及其各阶导数都是线性的,则称它为线性微分方程,否则称之为非线性微分方程。本论文主要介绍常微分方程,也简称微分方程。以y错误!未找到引用源。为未知函数,x错误!未找到引用源。为自变量的一阶常微分方程的一般形式可表示为微分方程,,0),,(,yyxF(1.2.1)将(1.2.1)中,y错误!未找到引用源。解出,则得到方程),,(,yxfy(1.2.2)或,0),(),(dyyxNdxyxM(1.2.3)也称(1.2.1)为一阶隐式微分方程,(1.2.2)为一阶显式微分方程,(1.2.3)为一阶微分方程的微分形式。错误!未找到引用源。阶隐式方程的一般形式为,0),,,,()(,nyyyxF(1.2.4)错误!未找到引用源。阶显式方程的一般形式),,,,,()1(,)(nnyyyxfy(1.2.5)方程(1.2.4)中,如果函数错误!未找到引用源。对未知函数错误!未找到引用源。和它的各阶导数)1(,,,,nyyy错误!未找到引用源。都是一次的,则称其为线性常微分方程,否则,称其为非线性微分方程。以y错误!未找到引用源。为未知函数,错误!未找到引用源。为自变量的n错误!未找到引用源。阶线性微分方程具有如下形式:),()()()(,1)1(1)(xfyxpyxpyxpynnnn(1.2.6)2.常微分方程的解设函数)(xy是定义在区间错误!未找到引用源。上的错误!未找到引用源。阶可微导数。如果把错误!未找到引用源。代入方程(1.2.4)后能使其成为恒等式,即,,',..,0,nFxxxxxI则称错误!未找到引用源。是微分方程(1.2.4)在区间错误!未找到引用源。上的一个解。例如,kxey是微分方程0kydxdy在,的一个解.xytan是微分方程21'yy在区间2,2的一个解.如果关系式0,yxF决定的隐函数)(xy是方程(1.2.4)的解,则我们称0,yxF是(1.2.4)的隐式解。例如一阶微分方程0ydyxdx有隐式解.022cyx我们把含有n个相互独立的任意常数nccc,...,21的解),..,,,(21ncccxy称为n阶微分方程(1.2.4)的通解。在通解之中当一组任意常数确定时,所得到确定的解称为特解。例如,xcxcysincos21是二阶线性方程0''yy的通解,而xxyxysincos,sin都是其特解,其中21,cc是任意常数。一般地,方程的特解可由其通解中任意常数取确定的常数导出,且方程的通解不一定表示方程的所有解。3.常微分方程初值问题为了确定微分方程的一个特解,我们可以给出这个微分方程的所满足的定解条件,常见的定解条件是初始条件,即方程(1.2.4)在某一点0x所满足的条件:.,...,'',000000nnyxyyxyyxy(1.2.7)微分方程(1.2.4)连同初始条件(1.2.7)一起称为初始值问题。一阶常微分方程初值问题是求解函数)(xy,且满足.)(,),,(yaybxayxfdxdy(1.2.8)其中),(yxf错误!未找到引用源。为已知函数,y为给定的初值。定理1.2.1假设),(yxf错误!未找到引用源。在矩形区域),(],,[),(ybaxyx内连续,且关于变元yLipschitz连续,即存在正常数L,使得对任意],[bax及,成立不等式,),(),(2121yyLyxfyxf(1.2.9)其中常数错误!未找到引用源。称为Lipschitz常数,则处置问题存在惟一解],[baCxy,xy连续依赖于初值.y由常微分方程的基本理论,我们有:换句话说,若是xy如下初值问题.)(,),,(yaybxayxfdxdy(1.2.10)的解错误!未找到引用源。,则].,[,lim0baxxyxy错误!未找到引用源。因此问题(1.2.8)是适定的。定理1.2.2当假定函数),(yxf错误!未找到引用源。满足定理1.2.1中的条件时,也即微分方程(1.2.8)的解)(xy错误!未找到引用源。是适定的。综上,高阶常微分方程初值问题一般为.1,,1,0,)(,),,,,,(111niydxaydbxadxyddxdyyxfdxydiiinnnn(1.2.11)其中nyy,,1错误!未找到引用源。为给定值。引进新的变量函数.,,2,1,,)()(11nkbxadxxydxykkk(1.2.12)则初值问题(1.2.11)化成了一阶常微分方程组初值问题.,,2,1,)(),,,,(,,,1121niyayyyxfdxdyydxdyydxdyiinnnnbxa(1.2.13)通过求解(1.2.13)得到(1.2.11)的解).(xy1.3常微分方程常用数值解法的思路一般说来,对于某些典型微分方程可以通过初等积分法求解,而对于复杂微分方程,需要得到解在若干个点上的近似值或者便于计算的近似表达式即可。本论文讲研究常微分方程常用数值解法及其matlab程序设计。对于一阶常微分方程的初值问题为.)(),,(00yxyyxfdxdy(1.3.1)求微分方程初值问题(1.3.1)的数值解,就是求解函)(xyy在一系列离散点错误!未找到引用源。),,2,1(nixi错误!未找到引用源。上精确值)(,),(),(21nxyxyxy错误!未找到引用源。的近似值nyyy,,,21错误!未找到引用源。。由于计算的复杂及繁冗,在计算常微分方程初值问题的数值解是一般使用Matlab软件进行编程计算,按如下步骤:(1)引入点列ix错误!未找到引用源。,其中hihxxiii,,2,1,1,错误!未找到引用源。称为步长。为了便于使用计算机进行编程计算,一般取步长为定值,即hhi错误!未找到引用源。,,1,0,0iihxxi,(2.2)(2)使用常微分方程常用数值解方法,即输入由1iy错误!未找到引用源。计算出),,2,1(niyi错误!未找到引用源。的递推公式。(3)利用(2)中的公式逐步求出近似解.,,,21nyyy错误!未找到引用源。第二章单步法所谓单步法是指这类方法在计算1ny时,只用到前一步的值nnnyxx,,1,然后逐步往下计算。单步法的精度不高,这是它的缺点。但我们只要给定初值就可以计算,所以还是比较方便的。以下我们介绍两种典型的单步法:Euler法和Runge-Kutta法。2.1Euler法为了计算出初始值问题.)(),,(00yxyyxfdxdy(2.1.1)在],[00bxx这一区间上若干个点上解的近似解,我们将此区间n等分,令kkynkkhxxnbh,,...,2,1,,0为(2.1.1)的解,即kxx当时精确值)(kxy的近似解。我们的任务是要用尽可能简单的方法求出与)(kxy尽可能接近的值ky。Euler法又称Euler折线法,Euler折线法是数值解法最简单的一种。Euler折线法的基本思想是利用微分中值定理对(2.1.1)的解xyy函数进行近似。由于xy是可微函数,故,'00hyxyhxy其中,是介于0x和hx0之间的一个值。当h比较小时,'y和0'xy相差不大,故用0x代替上式中的,就得到了的近似值.,0001hyxfyy当1y知道以后,再用类似方法来求xy在点kx的近似值.ky.,..,2,1,,111nkhyxfyykkkk(2.1.2)这样就得到了(2.1.1)的解在点nxxx,...,,10的近似解,从几何上看,Euler折线法就是在局部范围内用切线上的值去替代解曲线上的值。Euler公式在实际计算时较少采用,但由于它的结构简单,易于分析,在理论上具有非常重要的意义。2.1.1向前Euler法Euler折线法的计算量小,但误差大,后来人们对Euler折线法进行了改进:由方程(2.1.1),在节点nx处成立.,'nnnxyxfxy(2.1.3)将1nxy在nx处利用Taylor展开式展开,得,''2')(21nnnnyhxhyxyxy其中将.,1nnnxx将式(2.1.3)代入上式得.''2,)(21nnnnnyhxyxhyxyxy(2.1.4)在式(2.1.4)中略去高阶项nnyhhxE''2,2(2.1.5)并用ny和1ny分别代替式(2.1.4)中的)(nxy和1nxy,可得Euler公式(也称向前Euler公式:.1,..,1,0,,11Nnyxhfyynnnn(2.1.6)2.1.2向后Euler法向后Euler法和向前Euler法相差不大,只是将1nxy在nx处利用Taylor展开式展开,得,''2')(21nnnnyhxhyxyxy其中将.,1nnnxx将式(2.1.3)代入上式得.''2,)(21nnnnnyhxyxhyxyxy(2.1.7)在式(2.1.7)中略去高阶项,并用ny和1ny分别代替式(2.1.7)中的)(nxy和1nxy,