next up previous
: 最適な刻み幅 : 数値計算における誤差(一般論) : 桁落ち(誤差)

アルゴリズムによる誤差:打切り誤差

与えられたアルゴリズムを用いて厳密な算術(丸め誤差がない計算)によって得られる結果と真値との差を打ち切り誤差 (truncation error)という。

例:前進差分近似における誤差

 関数$ f(x)$ の場所$ x$ における1階微係数を

$\displaystyle f^\prime (x) \cong \frac{f(x+h)-f(x)}{h}$ (6)

で(前進)差分近似する場合の誤差を考える (※これは前回の(14)式に他ならない!)。

 まずテイラーの定理より、

$\displaystyle f(x+h) = f(x) + h f^\prime (x) + (h^2/2) f^{\prime \prime} (\xi), \hspace{5mm} x < \xi < x+h$ (7)

と表せる。 この式を変形して

$\displaystyle f^{\prime} (x) = \frac{f(x+h)-f(x)}{h} - \frac{h}{2} f^{\prime \prime} (\xi)$ (8)

となるが、 これを(6)と見比べると、 前進差分近似では(23)式の右辺第2項を無視していることが分かる。 この項がこの近似における打ち切り誤差である。 従って打ち切り誤差は $ \vert f^{\prime \prime} (\xi) \vert \le M$ のとき、$ Mh/2$ と表される 1

 一方、関数値 $ f(x), f(x+h)$ の持つ誤差を$ \epsilon$ で表せば、 差分近似式(6)における丸め誤差は $ 2\epsilon/h$ と表せる(確かめよ)。 従って、この近似計算における誤差は、打ち切り誤差と丸め誤差を合計した

誤差$\displaystyle =$打ち切り誤差$\displaystyle +$   丸め誤差$\displaystyle = \frac{Mh}{2} + \frac{2\epsilon}{h}$ (10)

となる。 刻み幅$ h$ を小さくすると 打ち切り誤差は小さくできるが、同時に丸め誤差が大きくなり、 その合計の誤差が小さくなるとは一概には言えない。 最も(合計の)誤差が小さくなる刻み幅$ h_{opt}$

$\displaystyle h_{opt} = 2 \sqrt{\epsilon/M}$ (11)

で与えられることが上式から示せる(示せ)。



ykagawa 平成20年7月29日