1 中央差分の概要

1.1 定義と基本的な考え方

1.1.1 点の両側の差を用いる理由

中央差分は、ある点 \(x\) の前後(両側)にある情報を利用して、導関数の値を近似する差分公式である。前進差分後退差分は片側のデータだけで近似するのに対し、中央差分は左右のずれを対称に取り込むため、テイラー展開における偶数・奇数の寄与の仕方が変わり、打ち切り誤差が小さくなることが多い。結果として、滑らかな関数に対して精度が高い近似が得られやすい。

また、対称性を組み込むことで、丸め誤差や近似誤差偏り相殺される方向に働く場合がある。もちろん関数が十分滑らかでない、あるいはデータが粗い・不均一であるなどの条件では優位性が損なわれ得る。

1.1.2 離散点と格子幅役割

差分公式は格子(離散点)上で定義される。点 \(x\) を中心とし、隣接点を \(x\pm h\) とするとき、\(h\) は格子幅、すなわち差分の間隔を表す。中央差分では、計算に用いる点が必ず \(x-h\) と \(x+h\) に配置されるため、精度と計算コストは \(h\) によって大きく左右される。

一般に、\(h\) を小さくすれば打ち切り誤差は減少する傾向があるが、同時に浮動小数点の丸め誤差が相対的に目立ちやすくなる。このため、適切な \(h\) 選択が重要になる。さらに、後述する誤差解析では、打ち切り誤差の次数と丸め誤差の成分が競合することが示される。

1.2 代表的な公式

1.2.1 導関数の中央差分近似

最も基本的な例として、関数 \(f\) の一次導関数 \(f'(x)\) を中央差分で近似する式は次で与えられる。 \[ f'(x)\approx \frac{f(x+h)-f(x-h)}{2h}. \] これは、左右対称の差分を取ることで偶数次の項の影響が打ち切り誤差側で抑えられ、滑らかな関数に対して誤差が比較的小さくなる性質を持つ。打ち切り誤差は一般に \(h^2\) に比例する次数を持つとされ、前進差分・後退差分より高精度になりやすい。

1.2.2 2階導関数の中央差分近似

二階導関数 \(f''(x)\) に対しては、同様に中央の点と前後の点を用いる次の差分が典型である。 \[ f''(x)\approx \frac{f(x+h)-2f(x)+f(x-h)}{h^2}. \] これは、一次導関数の式とは異なり、中央点 \(f(x)\) の寄与も含めて組み立てることで二階の変化を捉える。打ち切り誤差は一般に \(h^2\) に比例する次数として現れることが多い。すなわち、格子幅を縮めるほど近似は改善しやすいが、丸め誤差やデータの揺らぎの影響も増え得る。

1.3 前進差分・後退差分との比較

1.3.1 精度(打ち切り誤差)の違い

前進差分は \(x\) から \(x+h\) までの情報、後退差分は \(x\) から \(x-h\) までの情報のみを使って導関数を近似する。これに対し中央差分は左右の点を同時に取り込むため、テイラー展開に基づく打ち切り誤差の先頭項が打ち消され、結果として精度の次数が上がる場合が多い。

例えば導関数近似では、前進差分・後退差分は一般に誤差が \(O(h)\) 程度として表れることが多いのに対し、中央差分は \(O(h^2)\) のように高い次数になりやすい。二階導関数でも同様に比較され、中央の取り方によって誤差の打ち切り構造が異なる。

1.3.2 数値誤差の観点からの特徴

精度の次数が高いほど常に良いとは限らない。\(h\) を小さくしすぎると、差分の分子に含まれる数値の差が小さくなり、丸め誤差が相対的に増幅されることがある。特に導関数の差分は分母に \(h\) が入るため、丸め誤差の寄与の増え方が無視できなくなることがある。

中央差分は対称性により誤差の偏りが減る場合がある一方、計算には両側の値が必要である。境界近傍などでは片側差分に切り替える必要が生じ、比較優位がそのまま保たれないこともある。

2 誤差解析

2.1 テイラー展開による導出

2.1.1 1階微分誤差項

関数 \(f\) を十分滑らかとし、点 \(x\) の前後でテイラー展開する。すなわち \[ f(x+h)=f(x)+hf'(x)+\frac{h^2}{2}f''(x)+\frac{h^3}{6}f^{(3)}(x)+\cdots, \] \[ f(x-h)=f(x)-hf'(x)+\frac{h^2}{2}f''(x)-\frac{h^3}{6}f^{(3)}(x)+\cdots. \] これらの差を取ると、偶数次の項は相殺し、奇数次の項が残る。 \[ f(x+h)-f(x-h)=2hf'(x)+\frac{2h^3}{6}f^{(3)}(x)+\cdots. \] 両辺を \(2h\) で割れば \[ \frac{f(x+h)-f(x-h)}{2h}=f'(x)+\frac{h^2}{6}f^{(3)}(x)+\cdots. \] したがって、導関数の中央差分の打ち切り誤差の先頭項は一般に \(h^2\) に比例する形で表れる。

2.1.1.1 偶数・奇数項による打ち切り構造

上の導出が示す本質は、対称な差を取る操作がテイラー展開の偶数次項と奇数次項に異なる寄与を与える点にある。左右の展開を引き算することで、奇数次項は同符号で加わり、偶数次項は符号反転して打ち消される。したがって中央差分では、最初に残る誤差成分が比較的高次の導関数に対応しやすくなる。

この構造は、差分係数が対称になるほど強く現れる。逆に、対称性が崩れると打ち切り誤差の次数が下がる傾向がある。

2.1.2 2階微分の誤差項

二階導関数についても同様に、テイラー展開の組み合わせから導ける。前後の展開を足し合わせ、そこから \(f(x)\) の寄与を調整することで、次のように整理される。 \[ f(x+h)+f(x-h)=2f(x)+h^2 f''(x)+\frac{h^4}{12}f^{(4)}(x)+\cdots. \] よって \[ \frac{f(x+h)-2f(x)+f(x-h)}{h^2}=f''(x)+\frac{h^2}{12}f^{(4)}(x)+\cdots. \] この結果から、二階導関数の中央差分でも誤差は一般に \(h^2\) の次数から始まる。

2.2 精度次数と収束性

2.2.1 格子幅と誤差の関係

格子幅 \(h\) をパラメータとして誤差を表すと、打ち切り誤差は通常 \(h^p\) の形で減少する。中央差分では導関数・二階導関数ともに典型的には \(p=2\) が現れやすい。理想化された条件、すなわち無限に滑らかな関数や、誤差源が打ち切りに限られる場合には、\(h\) を半分にすると誤差が約 \(2^p\) 倍小さくなるといった見積もりが可能になる。

だし実際の数値計算では、打ち切り誤差以外にも丸め誤差、データ誤差(測定ノイズ等)、反復計算での増幅といった要因が加わる。小さな \(h\) ほど丸めの影響が増えるため、誤差曲線がある範囲で最小化されることがある。

2.2.2 計算環境による有効精度

有効精度は、浮動小数点の丸め誤差や演算の安定性に強く依存する。例えば、非常に小さい \(h\) を用いると分子の差が有効桁を失い、理論上の高次精度が数値的に発揮されない場合がある。逆に、\(h\) を大きくしすぎると打ち切り誤差が支配的になり、収束が鈍る。

実務では、理論次数と実際の計算精度の両面を見ながら \(h\) を調整する。条件数が悪い問題や、データにノイズが含まれる場合には、次数の高さよりも安定性や平滑化の工夫が重要になることがある。

3 実装と応用

3.1 数値微分としての使い方

3.1.1 サンプル点が均一な場合

均一格子では、点 \(x_i=x_0+ih\) のように間隔が一定である。中央差分は各内部点 \(i\) に対して \[ f'(x_i)\approx \frac{f(x_{i+1})-f(x_{i-1})}{2h} \] として直接適用できる。二階導関数も同様に \[ f''(x_i)\approx \frac{f(x_{i+1})-2f(x_i)+f(x_{i-1})}{h^2} \] の形で計算できる。

この場合、実装は単純で、係数も一定になるため高速化やベクトル化しやすい。内部点では中央差分を用い、端点では後退差分・前進差分あるいは外挿を組み合わせる方針がよく採用される。

3.1.2 サンプル点が不均一な場合

サンプル間隔が変化する場合、単純な \((2h)\) や \(h^2\) に置き換えるだけでは正確な近似にならない。一般には、近傍の点を用いた局所的な多項式補間または重み付き差分により係数を決定する必要がある。

不均一格子で中央に相当する概念は、「点 \(x\) の左右で距離が対称であるか」ではなく、「局所的に最適な重みを与えて導関数を再現できるか」に置き換わる。代表的には、局所補間から得る差分係数を作り、導関数の次数条件(例えば一次・二次の一致)を満たすようにする。

3.2 数値解析・微分方程式への応用

3.2.1 境界条件があるときの注意

偏微分方程式や常微分方程式を差分化する際、中央差分は内部点で自然に使える一方、境界点では利用できる隣接点が不足する。そこで境界条件の種類に応じて、片側差分に切り替える、ゴーストセル(仮想点)を導入する、あるいは境界適合の差分係数を別途構成するなどの対応が必要になる。

また、境界付近では離散化による誤差が大きくなりやすい。特に高精度化を狙う場合、境界近傍の差分設計が全体の精度を決めることがあるため、端点側の処理は単なる置き換え以上に注意を要する。

3.2.2 フィニット・ディファレンス法との関係

フィニット・ディファレンス法では、微分方程式中の微分作用素を差分作用素に置き換える。中央差分はその基本構成要素として頻繁に登場する。たとえば拡散方程式では二階空間導関数が現れるため、前述の二階中央差分が離散化の核になる。

このような差分化により、連立一次方程式や時間発展を表す差分スキームが得られる。スキームの精度と安定性は、空間方向の中央差分の選び方に加え、時間方向の離散化(陽的・陰的など)にも依存する。

3.3 実用上の選び方

3.3.1 ステップ幅の決め方

ステップ幅 \(h\) は、打ち切り誤差と丸め誤差の折り合いで決めるのが基本である。一般に、誤差が \(h^p\) に比例する項と、丸め誤差が \(1/h\) あるいはそれに類する形で悪化する項の合成として振る舞うことが多い。したがって、理論的な推定に基づいて最小点を狙うか、実データでは複数の \(h\) を試して安定な範囲を選ぶ手法がとられる。

特に観測ノイズがある場合、\(h\) を小さくすると差分がノイズを増幅しやすくなるため、最適 \(h\) は打ち切り誤差だけで決められない。

3.3.2 ノイズがあるデータでの工夫

測定データや推定値には揺らぎが含まれることが多く、導関数の近似はその影響を強く受ける。中央差分は差を取るため、ノイズ成分が高周波側で目立ちやすい。そのため、差分の直前で平滑化(移動平均、局所的な近似、正則化)を行う、あるいは差分係数を工夫して分散を抑えるといった工夫が用いられる。

また、スプライン補間やローカル多項式回帰のように「導関数が計算できる滑らかなモデル」を先に作ってから微分値を得る方法も、ノイズ下での実務ではよく選ばれる。

4 関連概念

4.1 差分商と有限差分

差分商は、関数値の差を刻み幅で割ることで変化率を表す概念であり、離散データに対する微分の対応物として位置づけられる。有限差分は、差分商やそれに関連する差の演算を総称することが多く、連続微分との対応を保ちながら離散化の枠組みを構成するために用いられる。中央差分も有限差分の一種であり、差分商の定義を対称点で組み立てた形と捉えられる。

4.2 スタッガード格子と中央化

スタッガード格子は、異なる物理量の格子点配置をずらして配置し、数値的不安定性を抑えたり、保存則の性質を改善したりするための格子設計である。中央化は、そのずらした配置の中で対称性や平均化を活用し、近似の性質を良くする方向性を指すことがある。

中央差分そのものは均一格子の対称差として理解されるが、スタッガード格子の文脈では「中心の取り方」が工夫され、同様の狙いとして精度や安定性の改善に結び付く。

4.3 スペクトル法や数値微分の別アプローチとの対比

スペクトル法では、関数を基底展開(フーリエ級数や直交多項式など)で表し、微分は係数空間で正確に(少なくとも離散化した範囲では)扱えることが多い。これにより、滑らかな関数では急速な誤差減少が期待される。一方、中央差分は局所的な差分に基づくため、格子ベースでの実装が容易であり、複雑な境界や不均一性への適用にも比較的柔軟である。

数値微分の別アプローチとしては、有限要素法の弱形式に基づく勾配評価、正則化付きの最小二乗、局所多項式による微分推定などがある。どの手法を選ぶかは、データの性質(滑らかさ、ノイズ)、計算資源、境界条件、必要な精度と安定性のバランスによって決まる。