微分方程数值解及其应用绪论自然界中的许多事物的运动和变化规律都可以用微分方程来描述,因此对工程和科学技术中的实际问题的研究中,常常需要求解微分方程.但往往只有少数较简单和典型的微分方程可求出其解析解,在大多数情况下,只能用近似法求解,数值解法是一类重要的近似方法.本文主要讨论一阶常微分方程的初值问题的数值解法,探讨这些算法在处理来自生活实际问题中的应用,并结合MATLAB软件,动手编程予以解决.1微分方程的初值问题[1]1.1预备知识在对生活实际问题的研究中,通常需要考虑一阶微分方程的初值问题00(,)()dyfxydxyxy(1)这里,fxy是矩形区域R:00,xxayyb上的连续函数.对初值问题(1)需要考虑以下问题:方程是否一定有解呢?若有解,有多少个解呢?下面给出相关的概念与定理.定义1Lipschitz条件[1][2]:矩形区域R:00,xxayyb上的连续函数,fxy若满足:存在常数0L,使得不等式1212,,fxyfxyLyy对所有12,,,xyxyR都成立,则称,fxy在R上关于y满足Lipschitz条件.定理1解的存在唯一性定理[1][3]:设f在区域,,DxyaxbyR上连续,关于y满足Lipschitz条件,则对任意的00,,xabyR,常微分方程初值问题(1)当,xab时存在唯一的连续解yx.该定理保证若一个函数,fxy关于y满足Lipschitz条件,它所对应的微分方程的初值问题就有唯一解.在解的存在唯一性得到保证的前提下,自然要考虑方程的求解问题.求解微分方程虽然有多种解析方法,但根据工程和科学实践问题所得到的微分方程往往很复杂,在很多情况下不能或很难给出解析解,有时即使能求出形式解,也往往因形式过于复杂或计算量太大而不实用,因此从实际问题中归结出来的微分方程主要依靠数值解法.定义2微分方程数值解:对初值问题(1)寻求数值解就是寻求解yx在一系列离散节点上的近似解0121,,,,,,nnyyyyyLL,相邻两个节点的间距1nnnhxx称为步长.在一般情况下假定0,1,ihhiL为常数,这时节点为0,0,1,2,nxxnhnL.要求微分方程数值解,首先要建立数值算法,即对初值问题(1)中的方程离散化,建立求解数值解法的递推公式.一类是计算1ny时只用到前一点的值ny,称为单步法;另一类是用到1ny前面k点的值11,,,nnnkyyyL称为k步法.对初值问题(1)式的单步法可用一般形式表示为11(,,,)nnnnnyyhxyyh,其中多元函数与,fxy有关,当含有1ny时,方法是隐式的;若中不含1ny,则为显式方法,所以显式单步法可表示为1(,,)nnnnyyhxyh.(2)设yx是初值问题(1)的准确解,称11(,,)nnnnnTyxyxhxyxh为显式单步法(2)的局部截断误差.若存在最大正整数p,使显式单步法(2)式的局部截断误差满足11,,pnTyxhyxhxyhOh,则称(2)式有p阶精度.1.2几种常用的数值解法及其分析、比较1.2.1欧拉法与后退欧拉法1)欧拉法:欧拉曾简单地用差分代替微分,即利用公式将初值问题(1)离散化,则问题(1)可化为1(,),nnnnyyhfxy0nxxnh,(3)此方法称为欧拉法.欧拉方法的几何意义在数值计算公式中体现了出来.在xy平面上,一阶微分方程的解yyx称作它的积分曲线.积分曲线上一点,xy的切线斜率等于函数,fxy,按函数,fxy在xy平面上建立一个方向场,那么,积分曲线上每一点的切线方向均与方向场在该点的方向相一致.基于上述几何解释,从初始点000(,)Pxy出发,先依方向场在该点的方向上推进到1xx上一点1P,再从1P依方向场的方向推进到2xx上一点2P,循环前进便作出一条折线012PPPL,因此欧拉方法又称为折线法.若初值0y已知,则由(3)式可逐步算出为了分析计算公式的精确度,通常可用泰勒展开将1nyx在nx处展开,则有2''11,,.2nnnnnnnnhyxyxhyxyxhyxx在nnyyx的前提下,,,.nnnnnfxyfxyxyx可得欧拉法(3)的误差为容易看出,欧拉法(3)式具有一阶精度.2)向后欧拉方法:如果对微分方程(1)从nx到1nx积分,得11,nnxnnxyxyxftytdx,(4)如果(4)式右端积分用右矩形公式11,nnhfxyx近似,则得到另一个公式111,nnnnyyhfxy,(5)称为后退欧拉法.值得一提的是:后退欧拉法与欧拉公式有着本质的区别,后者是关于1ny的直接计算公式,它是显式的,而(5)式的右端含有关于1ny的表达式,它是隐式的.在利用后退欧拉法时,我们通常利用迭代法求解,实质就是逐步显示化.具体迭代过程如...