打ち切り誤差(離散化誤差)

この章の目標

打ち切り誤差の定義を理解し、テイラー展開の打ち切り、差分近似・数値積分・常微分方程式の離散化による誤差の見積もり方を学ぶ。丸め誤差との違いを明確にする。

前提知識

目次

1. 定義

打ち切り誤差(Truncation Error)とは、無限の数学的過程を有限の近似で置き換えた際に生じる誤差である。

打ち切り誤差の発生源

  • 無限級数を有限項で打ち切る(テイラー展開の打ち切り)
  • 微分を差分で近似する(差分法)
  • 積分を有限個の点での重み付き和で近似する(数値積分)
  • 常微分方程式の連続解を離散時間ステップで近似する

数値微分・数値積分・微分方程式の文脈では、打ち切り誤差は離散化誤差(discretization error)として現れることが多い。打ち切り誤差は丸め誤差とは本質的に異なる誤差源で、数学モデルを解く際に厳密な操作を近似手順で置き換えることに由来し、丸め誤差は有限桁の浮動小数点演算に由来する。

2. テイラー展開と打ち切り誤差

関数 $f(x)$ の点 $a$ まわりのテイラー展開を $n$ 次の項まで取ると

$$f(x) = \displaystyle\sum_{k=0}^{n} \dfrac{f^{(k)}(a)}{k!}(x-a)^k + R_n(x)$$

ここで $R_n(x)$ が打ち切り誤差(剰余項)であり、ラグランジュの剰余項の形では

$$R_n(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!}(x-a)^{n+1}$$

と表される($f$ が $n+1$ 回微分可能なとき。$\xi$ は $a$ と $x$ の間の点)。

例: $e^x$ のテイラー展開

$e^x = 1 + x + \dfrac{x^2}{2!} + \dfrac{x^3}{3!} + \cdots$ を $n$ 次の項まで($0$ 次から $n$ 次までの $n+1$ 項)取ると、打ち切り誤差は

$$R_n = \dfrac{e^\xi}{(n+1)!} x^{n+1}$$

$x = 1$ で $n = 4$ とすると、$R_4 \le e / 120 \approx 0.0227$ であり、4次近似 $1 + 1 + 0.5 + 1/6 + 1/24 = 2.7083\ldots$ に対して真値 $e \approx 2.7183$ であるから、実際の誤差 $\approx 0.010$ は上界の範囲内である。

3. 数値微分における打ち切り誤差

前進差分公式の打ち切り誤差は $O(h)$ である(導出は丸め誤差の章 §4を参照)。差分公式の選択により打ち切り誤差のオーダーは変わる。

差分公式近似式打ち切り誤差
前進差分$\dfrac{f(x+h) - f(x)}{h}$$O(h)$
後退差分$\dfrac{f(x) - f(x-h)}{h}$$O(h)$
中心差分$\dfrac{f(x+h) - f(x-h)}{2h}$$O(h^2)$

中心差分は前進・後退差分より1次高い精度をもつ。これは $f(x+h)$ と $f(x-h)$ のテイラー展開の差をとると偶数次の項($h^2 f''(x)$ など)が相殺され、誤差の主項が $\dfrac{h^2}{6}f'''(x)$ になるためである。

4. 数値積分における打ち切り誤差

代表的な数値積分公式の打ち切り誤差を以下にまとめる。区間を幅 $h$ の小区間に分けた合成公式のオーダーで、局所は 1 小区間あたり、大域は区間全体の誤差である。

公式局所打ち切り誤差大域打ち切り誤差
台形則$O(h^3)$$O(h^2)$
シンプソン則$O(h^5)$$O(h^4)$
ガウス求積($n$点)$O(h^{2n+1})$$O(h^{2n})$

$h$ を半分にすると、台形則の誤差は約 $1/4$ に、シンプソン則の誤差は約 $1/16$ に減少する。

5. 局所打ち切り誤差と大域打ち切り誤差

常微分方程式の数値解法において、2種類の打ち切り誤差が区別される。

局所打ち切り誤差(Local Truncation Error: LTE)

1ステップあたりの誤差。前のステップの値が正確であると仮定した場合の、1ステップ後の誤差を指す。

大域打ち切り誤差(Global Truncation Error: GTE)

各ステップで生じた局所誤差が、後のステップで伝播しながら蓄積した、最終時刻での誤差(丸め誤差は含めない)。

オイラー法の場合、LTE は $O(h^2)$、GTE は $O(h)$ である。全区間 $[a, b]$ のステップ数は $(b-a)/h$ であるから、LTE を $N = (b-a)/h$ 回累積すると GTE $= O(h^2) \times O(1/h) = O(h)$ となる(解法が安定で、誤差の伝わり方が $e^{L(b-a)}$ 程度($L$ はリプシッツ定数)に抑えられる場合。$h$ が大きすぎると誤差が増幅されて発散しうる)。具体的な誤差解析(数値実験つき)はオイラー法の誤差を参照。

代表的な ODE ソルバの打ち切り誤差

手法LTEGTE次数
オイラー法$O(h^2)$$O(h)$1次
改良オイラー法(ホイン法)$O(h^3)$$O(h^2)$2次
ルンゲ・クッタ法(RK4)$O(h^5)$$O(h^4)$4次

6. 打ち切り誤差と丸め誤差のトレードオフ

数値計算における全誤差は、打ち切り誤差と丸め誤差の和である。$h$ を小さくすると打ち切り誤差は減少するが、丸め誤差は増大するため、数値微分のような典型例では、全誤差を最小化する最適な $h$ が存在する。

トレードオフの定量的な分析(数値微分における $O(h)$ vs $O(\varepsilon/h)$ の導出、対数-対数スケールでのグラフ、最適 $h^* \sim \sqrt{\varepsilon}$ の計算、級数打ち切りの場合)は丸め誤差の章 §4で詳しく扱っている。

7. よくある質問

Q1. 打ち切り誤差とは何ですか?

無限の数学的過程を有限の近似で置き換えた際に生じる誤差である。テイラー級数の有限項での打ち切り、微分の差分近似、積分の数値近似などで発生する。差分・数値積分・微分方程式の文脈では離散化誤差とも呼ばれる。

Q2. 打ち切り誤差と丸め誤差の違いは何ですか?

打ち切り誤差は厳密な操作を近似手順で置き換えることに由来し、離散化を伴う場合は刻み幅を小さくすれば、級数の打ち切りでは打ち切る次数を上げれば減少する。丸め誤差は有限桁の浮動小数点演算に由来し、刻み幅を小さくしすぎると逆に増大する。両者のバランスが最適精度を決定する。

Q3. 局所打ち切り誤差と大域打ち切り誤差の違いは何ですか?

局所打ち切り誤差は1ステップあたりの誤差であり、大域打ち切り誤差は各ステップの局所誤差が伝播しながら蓄積した最終時刻の誤差である(解法が安定な場合、局所誤差より次数が 1 低くなる)。オイラー法では局所打ち切り誤差が $O(h^2)$ で大域打ち切り誤差は $O(h)$ となる。

8. 参考資料

  • Wikipedia「打ち切り誤差」(日本語版)
  • Wikipedia「Truncation error」(英語版)
  • Wikipedia「Discretization error」(英語版)
  • R. L. Burden & J. D. Faires, Numerical Analysis, 10th ed., Cengage, 2016.
  • A. Quarteroni, R. Sacco & F. Saleri, Numerical Mathematics, 2nd ed., Springer, 2007.