张瑞
中国科学技术大学数学科学学院
rui@ustc.edu.cn |
实际问题得到的数学模型往往都是微分方程。如: 物种的增长和蜕变, 物体的运动, 传染病的传播等。
- 函数的自变量只有一个的微分方程称为常微分方程。
- 函数的自变量为两个或两个以上的微分方程称为偏微分方程。
微分方程的解通常不唯一,因此,通常会加上一个或多个的附加条件。
- 给定微分方程及其初始条件,称为初值问题。
- 给定微分方程及其边界条件,称为边值问题。
下面讨论常微分方程的初值问题
为保证解的存在唯一性及稳定性,要求满足对的Lipschitz条件,
即存在,使得对任意, ,有
只有一些特殊形式的才能得到方程的解析解,对于绝大多数常微分方程的初值问题,
只能计算它的数值解。
- 微分方程的解是一个函数,而计算机没办法表达任意的函数
- 一种有效的表示方法,就是给出函数在一系列点上的函数值。
- 这样,可以先将区间作一个剖分,得到点列
- 利用微分方程,构造算法求解的值。
- 这种方法称为有限差分方法。数值计算中得到的通常是的近似值,也称
为格点函数。
- 这种将区间分割为小区间的方式,称为数值离散方法。它是求解微分方程数值解的基本手段。
- 除了有限差分法外,还有有限体积法,有限元法都是求解微分方程的数值离散方法。
向前Euler公式
简单起见,将区间做等距分割
导数可以用差商公式来近似
由微分方程,因而有
整理后,有
得到计算近似值的公式
这个公式称为向前Euler公式,或向前差商公式。
利用初值,给出后,代入上式即可以顺序得到, , , 。
例 1. 用向前Euler格式解方程
向前Euler公式的收敛性
由
到向前Euler公式
中丢掉的项是格式的局部截断误差。
它是假定前面的计算是精确的(),用格式计算下一个点上的函数值时产生的误差。
- 实际上, 从计算开始,每个都有截断误差,
- 而这个误差加上前面所有的点的误差,
会传播累积到。
- 这些局部截断误差传播、累积起来得到的就是整体截断误差。
记是局部截断误差。
由满足对的Lipschitz条件,则有
记,则
因而,
由, ,因而有
且是初值给定的,因而,因此
向前公式的整体截断误差为
可以看到:
- 时,,即向前Euler公式是收敛的。
- 公式的局部截断误差,而整体截断误差为。
定义 2.
若公式的局部截断误差是
则称方法是p阶的,或具有p阶精度。
向后Euler公式
类似向前Euler公式,用向后差商来给出数值微分估计
利用微分方程,有
整理得
得到格式
格式
称为向后Euler公式。
该公式的局部截断误差为
因而,也是1阶收敛格式。
注意到向后Euler公式中
在等号的两边。在已知时,要得到可能需要解一个非线性方程(如)。
- 格式中在等号两边,不能直接由前面的计算值得到的格式,称为隐格式。
- 相应地,可以直接由前面的计算值得到的格式,称为显格式。 如:向前Euler公式。
在向后Euler公式中
为了得到,
- 可以使用解非线性方程的Newton迭代,
- 更常使用的方法就是直接使用格式构造迭代
- 初始估计值可以使用显格式(向前Euler公式)得到。
由于显格式也是对的估计,因此,这种迭代通常不超过3步即可。
在实际使用中,可以用向前Euler公式做初始值估计,用向后Euler格式做一步迭代,得到
利用微分方程的初值,就可以依次得到, , , 。
定义 3.
这种用显格式做初始值估计,用隐格式做一步迭代的格式又称为预估-校正格式。
注.
为了保证局部截断误差的精度,预估-校正类格式中,显格式的精度最多只能比隐格式低1阶。
事实上,对预估-校正格式有
而
当时,
其中是隐格式的局部截断误差。
而
正好是显格式的局部截断误差,记为。
则预估-校正格式的误差是
也就是说,的误差阶可以比的误差阶低1阶。
例 2. 用向后Euler格式解方程
中心Euler公式
用中心差商近似导数
代入微分方程,可以得到中心差商公式
- 分析该格式的局部截断误差时,要假定前面的计算是精确的,即, 。
- 易得,局部截断误差是。
中心差商公式是2阶精度格式。
在中心差商格式中
- 除了跟相关外,还跟相关。这类格式也称为多步格式。
- 只跟相关的格式称为单步格式。如: 向前Euler公式、向后Euler公式。
- 在多步格式中,只有初值是不够的,还需要用其它的格式计算等,才能使用格式开始计算。 这个过程称为多步格式的起步计算。
- 为了保证整体截断误差的精度, 起步计算所用格式的精度最多只能比格式的精度低1阶。
例 3. 用中心差商格式解方程
例 4. 证明, ,
4.
令,则
因而是最小值,即有
即
由, ,则