安定性

数値解の品質トップへ

安定性

ある問題を解くための手法の安定性(stability)とは、その手法が求解プロセス中における(丸め)誤差にどの程度敏感に反応するかに関する特性を意味する。データが保証するのと同程度の解の精度を保証できる手法は安定であり、そうでないものは不安定である。条件(condition)が問題の鋭敏さに関係した概念であるのに対し、安定性は解法の鋭敏さに関係した概念である。

不安定な手法の具体例は標本分散を計算するための数式(3) であるが、ここではさらに2つの例を追加する。


Example 4.9 (2次方程式)

2次方程式MATH について考える。標準的な根の公式MATH を使って有効桁数4桁の計算を行うとMATH という解が得られる。しかし$x_{1}x_{2}=c/a$という関係式を使って$x_{1}$から$x_{2}$を求めるとMATH という別の結果が得られる。正しい解はMATHである。標準的な根の公式を用いた場合、小さい方の根については$\sqrt{b^{2}-4ac}$の値が$(-b)$に近いものとなり、桁落ち(cancellation)が起るためこのような問題が生ずる。MATH

2次方程式の求解といった単純な問題であっても注意が必要である。関連する有用な情報については Forsythe [1969] を参照されたい。

Example 4.10 (漸化式)

$y_{n}$

MATH (7)
で定義されるときに、その値の計算について考える。ただし$n$は非負の整数とする。区間$[0,1]$において$(1/e)e^{x}$$1$より小さな値となるため、
MATH (8)
であることが容易にわかる。(7) を部分積分すると
MATH (9)
が導けるので、$y_{n}$の値を求めるための魅力的な漸化式が得られたように見える。倍精度IEEE arithmeticを前提としたとき、この前進漸化式を使って$y_{0}$から$y_{21}$までの値を計算した結果を表tab2に示す。不等式(8) に注意するなら、末尾の数項の値が正しい解から大きく乖離しつつあることがわかる。

$y_{0}$ $y_{1}$ $y_{2}$ $y_{3}$ $y_{4}$ $y_{5}$ $y_{6}$ $y_{7}$
$0.6321$ $0.3679$ $0.2642$ $0.2073$ $0.1709$ $0.1455$ $0.1268$ $0.1124$
$y_{8}$ $y_{9}$ $y_{10}$ $y_{11}$ $y_{12}$ $y_{13}$ $y_{14}$ $y_{15}$
$0.1009$ $0.0916$ $0.0839$ $0.0774$ $0.0718$ $0.0669$ $0.0627$ $0.0590$
$y_{16}$ $y_{17}$ $y_{18}$ $y_{19}$ $y_{20}$ $y_{21}$
$0.0555$ $0.0572$ $-0.0295$ $1.5596$ $-30.1924$ $635.0403$


表2$y_{n}$算出用漸化式

簡単な考察を行うことによってこの不安定性の理由を解明することができる。$y_{0}$は厳密値では表現できないため、それからわずかにはずれた値$\hat{y}_{0}$からスタートせざるを得ない。そこでMATH としよう。そうするとたとえその後の計算が厳密に行えたとしても

$\hat{y}_{1}$ $=$ $1-\hat{y}_{0}$ $=$ $y_{1}-\epsilon$
$\hat{y}_{2}$ $=$ $1-2\hat{y}_{1}$ $=$ $y_{2}+2\epsilon$
$\hat{y}_{3}$ $=$ $1-3\hat{y}_{2}$ $=$ $y_{3}-6\epsilon$
$\hat{y}_{4}$ $=$ $1-4\hat{y}_{3}$ $=$ $y_{4}+24\epsilon$

となる。一般式としてはMATH となることが帰納法によって証明できる。この場合、$n=21$とするとMATHとなる。これから明らかなように、この前進漸化式によって$y_{n}$の値を計算する方法は誤差が急激に成長するために不安定である。MATH

次に示すのはこの$y_{n}$の値を計算するための安定な手法である。

Example 4.11 (安定な漸化式)

数式 (9) を変形することによって後退漸化式MATH が得られる。今、$y_{n+m}$に対する近似値を$\hat {y}_{n+m}$とする。MATH

このときExample 4.10の場合と同様、次の一般式が得られる。MATH

Example 4.10のときには誤差の急速な成長を招いたが、今回の場合、初期誤差は急速に減衰する。今、推定により$y_{21}=0$とすると (8) よりMATH

倍精度IEEE arithmeticを前提に後退漸化式を用いるとMATH という値が得られる。これはここに表示した全桁数において正しい値である。これよりこの後退漸化式は安定であると言える。$\hfill\square$


なお、 (7) の積分は適切な数値積分公式を使うことによって問題なく安定的に値の評価が可能である。なぜなら関数MATHは区間$[0,1]$全体で非負、単調だからである。

常微分/偏微分方程式の解法においては、微分方程式を差分方程式で置き換えることに伴うある種の不安定性が発生する場合がある。最初に単純な非線形方程式の解法に伴う問題について触れておく。

Example 4.12 (寄生解)

方程式

MATH (10)
$x=0.01$の近傍に解を持つ。$e^{-x}$をべき級数に展開するとMATH を得る。これより方程式 (10) の近似解は2次方程式MATH の一つの根として与えられる。ところでこの2次方程式はMATHという2根を持つ。この2番目の根は元の方程式とは全く関係ないものであり、寄生解(parasitic solution)と呼ばれる。MATH

上の例の場合、寄生解が(10) の解にならないことは明白であるため、それによってだまされることはない。しかし常微分/偏微分方程式の解法においては打切り誤差により、分離が明白ではないことが起る。

Example 4.13 (ODEの不安定性)

初期値問題

MATH (11)
を解く場合、中点法(mid-point rule, leap-frog method)では
MATH (12)
という計算式を用いる。ここにすべての$i$MATHに対し$h=x_{i}-x_{i-1}$である。この手法の場合、打切り誤差は$O(h^{3})$となる。 [Isaacson and Keller, 1966, Section 1.3, Chapter 8] (Note1) この手法は2つの開始値を必要とするため、一つの開始値は別の手段によって推定されなくてはならない。今、MATH について考えることにする。この場合、 (11) の解は$y=e^{\alpha x}$で与えられる。図6と図7は、$\alpha=2.5$$\alpha=-2.5$のそれぞれの場合につき、$h=0.1$としたときの (12) によって得られた解を示したものである。いずれの場合も$y_{1}$の値としては4桁の正しい値を設定してある。すなわち$\alpha=2.5$の場合には$y_{1}=1.284$$\alpha =-2.5$の場合には$y_{1}=0.7788$である。


fig6.png
図6  ODEの例 - 安定な場合


fig7.png
図7  ODEの例 - 不安定な場合

最初のケースについては数値解は厳密解に良く追従できている。しかし2番目のケースについては発振が見られ、数値解は厳密解から乖離してしまっている。MATH

このような振舞いが生じる理由は (12)

MATH (13)
という解を持つことによる。ここに$A,B$は初期条件に依存する定数である。初期条件$y_{0}=1,x_{0}=0$MATHを与えた場合には、MATHとなる。 (13) の第1項は厳密解を近似するものであるが、第2項は寄生解である。$\alpha >0$の場合、厳密解は増大し寄生解は減衰するため問題は起きない。しかし$\alpha <0$の場合には図7に示されるように、厳密解が減衰し寄生解が成長する。上記の現象に関するMilne-Simpson法というコンテキストでの興味深い議論については Acton [1970, Chapter 5] を参照されたい。数多くの助言や洞察に満ちた書籍である。より新しい [Acton, 1996] も同じ流れの本である。



関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks