文档介绍:-179- 第十五章常微分方程的解法建立微分方程只是解决问题的第一步,通常需要求出方程的解来说明实际现象,并加以检验。如果能得到解析形式的解固然是便于分析和应用的,但是我们知道,只有线性常系数微分方程,并且自由项是某些特殊类型的函数时,才可以肯定得到这样的解, 而绝大多数变系数方程、非线性方程都是所谓“解不出来”的,即使看起来非常简单的方程如 2 2 x y dx dy + = ,于是对于用微分方程解决实际问题来说,数值解法就是一个十分重要的手段。§1 常微分方程的离散化下面主要讨论一阶常微分方程的初值问题,其一般形式是?????= ≤≤= 0 ) ( ) , ( y a y b x a y x f dx dy (1) 在下面的讨论中,我们总假定函数) , ( y x f 连续,且关于 y满足李普希兹(Lipschitz) 条件,即存在常数 L ,使得| | | ) , ( ) , ( | y y L y x f y x f ?≤?这样,由常微分方程理论知,初值问题(1) 的解必定存在唯一。所谓数值解法,就是求问题( 1)的解) ( x y 在若干点 b x x x x a N = < < < < = L 2 1 0 处的近似值) , , 2 , 1 ( N n y n L = 的方法, ) , , 2 , 1 ( N n y n L = 称为问题( 1)的数值解, n n n x x h ?= + 1 称为由 n x 到 1 + n x 的步长。今后如无特别说明,我们总取步长为常量 h 。建立数值解法,首先要将微分方程离散化,一般采用以下几种方法: ( i )用差商近似导数若用向前差商 h x y x y n n ) ( ) ( 1 ?+ 代替) ( ' n x y 代入( 1)中的微分方程,则得) , 1 , 0 ( )) ( , ( ) ( ) ( 1 L = ≈?+ n x y x f h x y x y n n n n 化简得)) ( , ( ) ( ) ( 1 n n n n x y x hf x y x y + ≈+ 如果用) ( n x y 的近似值 n y 代入上式右端,所得结果作为) ( 1 + n x y 的近似值,记为 1 + n y , 则有) , 1 , 0 ( ) , ( 1 L = + = + n y x hf y y n n n n ( 2 ) 这样,问题( 1)的近似解可通过求解下述问题???= = + = + ) ( ) , 1 , 0 ( ) , ( 0 1 a y y n y x hf y y n n n n L ( 3 ) 得到,按式( 3)由初值 0 y 可逐次算出 L , , 2 1 y y 。式( 3)是个离散化的问题,称为差分方程初值问题。-180- 需要说明的是,用不同的差商近似导数,将得到不同的计算公式。( ii)用数值积分方法将问题( 1)的解表成积分形式,用数值积分方法离散化。例如,对微分方程两端积分,得∫+ = = ?+ 1 ) , 1 , 0 ( )) ( , ( ) ( ) ( 1 n n x x n n n dx x y x f x y x y L (4) 右边的积分用矩形公式或梯形公式计算。( iii )Tayl or 多项式近似将函数) ( x y 在 n x 处展开,取一次 Tayl or 多项式近似,则得)) ( , ( ) ( ) ( ' ) ( ) ( 1 n n n n n n x y x hf x y x hy x y x y + = + ≈+ 再将) ( n x y 的近似值 n y 代入上式右端,所得结果作为) ( 1 + n x y 的近似值 1 + n y ,得到离散化的计算公式) , ( 1 n n n n y x hf y y + = + 以上三种方法都是将微分方程离散化的常用方法, 每一类方法又可导出不同形式的计算公式。其中的 Taylor 展开法,不仅可以得到求数值解的公式,而且容易估计截断误差。§2 欧拉( Euler )方法 Euler 方法 Euler 方法就是用差分方程初值问题( 3)的解来近似微分方程初值问题( 1)的解, 即由公式( 3)依次算出) ( n x y 的近似值) , 2 , 1 ( L = n y n 。这组公式求问题( 1)的数值解称为向前 Euler 公式。如果在微分方程离散化时, 用向后差商代替导数, 即 h x y x y x y n n n ) ( ) ( ) ( ' 1 1 ?≈+ + , 则得计算公式???= = + = + + + ) ( ) , 1 , 0 ( ) , (