6 常微分方程的数值解法

§6.1 引 言

在许多自然科学与工程技术领域中,所建立的数学模型大多是常微分方程或常微分方程组,有些问题往往很复杂,除了少数特殊类型的方程能用解析方法求得其精确解外,多数情况要找出解的解析表达式是极其困难的,甚至是不可能的。因此,只能用近似方法求得其解。近似的求解方法有两类,一类称为近似解析方法,如级数解法,逐次逼近法等;另一类称为数值解法,它可以给出解在一些离散点上的近似值。利用计算机解常微分方程主要使用数值方法。

首先考虑一阶常微分方程初值问题                (6.1)

在区间[ab]上的解。

在使用数值解法之前,首先需要考虑解的存在性。因为如果问题(6.1)没有解,即使利用数值方法可以求得一些数据也是毫无意义的。在解存在的情况下,还必须保证初值问题具有惟一的解。由常微分方程理论中,关于解的存在惟一性有如下定理。

定理 设在区域D上有定义且连续,并且关于y满足如下的李普希茨(Lipschitz)条件:

                               (6.2)

则对,初值问题在区间[ab]上存在惟一的连续可微解y(x)。式(6.2)中的L称为李普希茨常数。

y可微的情况下,若偏导数有界,则可取:

这时李普希茨条件显然成立:

这里介于yy*之间。这是验证公式(6.2)是否满足的最简便的方法。

    除了保证初值问题有解外,还必须保证微分方程本身是稳定的。所谓稳定是指在初值问题(6.1)中,初始值y0及微分方程的右端函数有微小的变化时,只能引起解的微小变化。这种性质对于数值求解过程来说是十分必要的,这是由于在许多实际问题中,初始值及右端函数通常是经过测量得到的,难免产生误差。在稳定的情况下,上述误差对解的影响是有限的。这对数值解法来说,显然是一个有利的条件,因为解的数值近似,完全可能引入上述种类的误差。在稳定的情况下,只要把这些误差控制得很小,就能使解达到所需要的精确度是可以期望的。

y(x)是初值问题(6.1)的解,对方程两边积分,利用初始条件可得:

                                    (6.3)

容易验证,式(6.3)是与式(6.1)等价的积分方程,我们可从式(6.3)出发构造式(6.1)数值解法的求解公式。

所谓初值问题(6.1)的数值解法,就是能算出精确解y(x)在自变量x的一系列离散结点:ax0xl<…<xnb,上的近似解的数值y0y1,…,yn,这里把yk(k12,…n)叫做初值问题在点列xk上的数值解,其精确值为:y(xk)(k12,…n)。数值解法的基本思想是通过某种离散化方法,将微分方程转化为差分方程(代数方程)来求解。我们用⊿xkxkxk1表示求解时的步长,一般取等步长,用字母h表示。本章中在xn处,初值问题的理论解(精确解)用y(xn)表示,数值解法的近似解用yn表示,并记fnf(xnyn),它和f(xny(xn))是不同的,后者表示(xn)(精确解)。

求初值问题的数值解一般是逐步进行的,即计算出yn之后再计算yn1。这些数值方法有单步法与多步法之分。单步法是在计算yn1时,只利用yn,而多步法在计算yn1时,不仅要用到yn,还要用到yn1yn2,…等等。一般k步方法要用到ynyn1,…,ynkl

   单步法和多步法还有显式方法和隐式方法之分。显式单步方法可以写成:

                    ynlynh(xnynh)                        (6.4)

隐式的单步方法可以写成:ynlynh(xnynyn1h)             (6.5)

每步都要解一个关于ynl的方程。

对于多步法来说,显式和隐式方法的意义与单步法类似。