差分方程的绝对稳定性

常微分方程的数值方法

张瑞
中国科学技术大学数学科学学院

差分方程的绝对稳定性

例 1. 分别用向前Euler,向后Euler,改进的Euler格式解初值问题

\[\begin{cases} y'(x)=-30y \\ y(0)=1 \end{cases} x\in[0,0.5] \]

. 方程有真解

\[y(x)=e^{-30x} , \quad x\in[0, 0.5] \]

是一个单调递减趋于0的函数。

取步长$h=0.1$,则有

向前Euler

\[y_{i+1}=y_i+hf(x_i,y_i)=y_i-30hy_i=(1-30h)y_i \]

$y_{i+1}=-2y_i, y_0=1$

向后Euler

\[y_{i+1}=y_i+hf(x_{i+1},y_{i+1})=y_i-30hy_{i+1} \]

$y_{i+1}=\frac1{1+30h}y_i=\frac14y_i, y_0=1$

. 这里, 隐格式直接解出来,没有使用预估-校正过程

上述格式如果用预估-校正过程,会得到

\[\begin{aligned} \tilde y_{i+1}=&y_i+hf(x_i,y_i)=y_i-30hy_i=(1-30h)y_i \\ y_{i+1}=&y_i+hf(x_{i+1},\tilde y_{i+1})=y_i-30h\tilde y_{i+1} \end{aligned} \]

因而

\[y_{i+1}=y_i-30h(1-30h)y_i=(1-30h+(30h)^2)y_i=7y_i \]

改进的Euler

\[y_{i+1}=\frac12(y_i+(1-30h)^2y_i) \]

$y_{i+1}=\frac52y_i, y_0=1$

$x_i$ 向前Euler 向后Euler 改进的Euler 真解
0.1 -2 1/4 2.5 $4.9797\times 10^{-2}$
0.2 4 $(1/4)^2$ $2.5^2$ $2.4788\times 10^{-3}$
0.3 -8 $(1/4)^3$ $2.5^3$ $1.2341\times 10^{-4}$
0.4 16 $(1/4)^4$ $2.5^4$ $6.1442\times 10^{-6}$
0.5 -32 $(1/4)^5$ $2.5^5$ $3.0590\times 10^{-7}$

num-ode-stable

问题. 向前Euler格式、改进的Euler格式得到的结果并不稳定,为什么?

  • 在向前Euler格式中,取$h=0.01$,则有$y_{i+1}=0.7y_i$,同样可以得到稳定的解。
  • 也就是说, 向前Euler格式的稳定性与步长的大小有关

num-ode-stable-2

$h=0.05$

num-ode-stable-3

$h=0.025$

更一般地,对于如下方程

\[\begin{cases} y'(x)=\lambda y (Re(\lambda<0) \\ y(a)=y_0 \end{cases} \]

应用向前Euler格式,有

\[y_{i+1}=y_i+\lambda h y_i=(1+\lambda h)y_i \]

下面,分析一下舍入误差的作用。

考虑最简单的情形: 初值带有误差$e_0$, 以后的计算中都没有舍入误差。

假定初值$y_0$带了误差$e_0$后,变成了$z_0$,则计算过程变成了,

\[z_{i+1}=(1+\lambda h)z_i \]

$y_i$的误差为

\[y_{i+1}-z_{i+1}=(1+\lambda h)(y_i-z_i) \]

\[e_{i+1}=(1+\lambda h)e_i=(1+\lambda h)^{i+1}e_0 \]

可以看到,当$|1+\lambda h|<1$时,误差是递减的。 也就是说,步长足够小后,向前Euler格式是数值稳定的。

定义 1.
差分方法称为绝对稳定(A-Stable)的,若差分方法作用到微分方程

\[y'(x)=\lambda y, Re(\lambda)<0 \]

时,对任意的初值,总存在左半复平面上的一个区域,当$\lambda h$在这个区域时,差分方程的解趋于$0$。这个区域称为稳定区域

例 2. 向前Euler格式的绝对稳定性

. 作用到微分方程$y'(x)=\lambda y$后,得到

\[y_{i+1}=y_i+h\lambda y_i \]

因而

\[e_{i+1}=(1+h\lambda)e_i \]

稳定区域为

\[|1+\lambda h|<1 \]

从复平面上看,$\lambda h$是一个以$(-1,0)$为圆心,1为半径的圆。

例 3. 向后Euler格式的绝对稳定性

. 将向后Euler格式应用到$y'(x)=\lambda y$后,有

\[y_{i+1}=y_i+\lambda h y_{i+1} \]

所以有

\[(1-\lambda h)e_{i+1}=e_i \]

即稳定区域满足

\[\frac{1} {|1-\lambda h|}<1 \]

注意到$Re(\lambda)<0$整个左半复平面都是稳定区域。 即,对任意$h>0$,向后Euler格式是绝对稳定的。

例 4. 3阶Runge-Kutta格式的绝对稳定性

. 将格式应用到方程$y'(x)=\lambda y$后,有

\[\begin{cases} y_{i+1}&=y_i+\frac{h}6(k_1+4k_2+k_3) \\ k_1&=\lambda y_i \\ k_2&=\lambda y_i(1+\frac12\lambda h) \\ k_3&=\lambda y_i(1+\lambda h+(\lambda h)^2) \end{cases} \]

即有

\[y_{i+1}=y_i(1+\lambda h+\frac12(\lambda h)^2+\frac16(\lambda h)^3) \]

稳定区域满足

\[|1+\lambda h+\frac12(\lambda h)^2+\frac16(\lambda h)^3|<1 \]

Runge-Kutta法的绝对稳定区间

误差放大率 稳定区间
1阶 $1+\lambda h$ (-2,0)
2阶 $1+\lambda h+\frac1{2!}(\lambda h)^2$ (-2,0)
3阶 $1+\lambda h+\frac12(\lambda h)^2+\frac16(\lambda h)^3$ (-2.51,0)
4阶 $1+\lambda h+\frac12(\lambda h)^2+\frac16(\lambda h)^3+\frac1{24}(\lambda h)^4$ (-2.78,0)

ode-stable-rk4

例 5. 中心差商格式的绝对稳定性

. 中心差商格式

\[y_{i+1}=y_{i-1}+hf(x_i, y_i)=y_{i-1}+h\lambda y_i \]

因而,误差满足方程

\[e_{i+1}=e_{i-1}+h\lambda e_i \]

这是一个多步的公式。考虑初值$e_0$, $e_1$对以后的影响。

方程对应的特征方程是

\[\xi^2-\lambda h \xi-1=0 \]

它的根

\[\xi_{1,2}=\lambda h \pm \sqrt{1+(\lambda h)^2} \]

因而

\[e_{i}=a\xi_1^i+b\xi_2^i \]

其中$a$, $b$$e_0$, $e_1$给出,即满足

\[\begin{cases} e_0=a+b \\ e_1=a\xi_1+b\xi_2 \end{cases} \]

$\lambda h<0$,则

\[|\xi_2|=|\lambda h-\sqrt{1+(\lambda h)^2}|>|\sqrt{1+(\lambda h)^2}|>1 \]

因而,中心差商格式对于任意$h>0$都不稳定。

中心差商计算$y'(x)=-30y$,区间$[0,0.5]$。得到不同区间数下的结果

 5 Error:  3038.000000305902
10 Error:  34388.4999996941 
20 Error:  104857.60000055241
40 Error:  74742.79664809995 

40个区间的结果

[1.0 0.625 0.53125 0.2265625 0.361328125 -0.04443359375 0.3946533203125
 -0.340423583984375 0.6499710083007812 -0.8279018402099609
 1.270897388458252 -1.78107488155365 2.6067035496234894 -3.736102543771267
 5.40878045745194 -7.792687886860222 11.253296372597106 -16.23266016630805
 23.427791497328144 -33.80350378930416 48.78041933930626
 -70.38881829378386 101.57203305964416 -146.56784308851698
 211.4979153760319 -305.1912796205409 440.39137509143757
 -635.4848109391191 917.004983295777 -1323.2385484109518
 1909.4338946039911 -2755.313969363945 3975.91937162695 -5737.253498084157
 8278.859495190069 -11946.39811947671 17238.6580847976 -24875.391683074908
 35895.20184710379 -51796.79306840275 74742.79664840584]

例 6. 2阶Adams-Bashforth格式的绝对稳定性

. 将格式应用到方程$y'(x)=\lambda y$后,有

\[y_{i+1}=y_i+h(\frac32\lambda y_i-\frac12\lambda y_{i-1}) =(1+\frac32\lambda h)y_i-\frac12\lambda hy_{i-1} \]

格式要稳定,需要上式的特征多项式

\[\phi(x)=x^2-(1+\frac32\lambda h)x+\frac12\lambda h \]

的所有根的模小于1。即有

\[\left| \tfrac12 \Big(1 + \tfrac32 z \pm\sqrt{1 + z + \tfrac94 z^2}\Big) \right| < 1 , z=\lambda h \]

ode-stable-ab2

谢谢

vertical slide 2

目录

本节读完

例 7.

7.