1 有限差分の基礎
1.1 差分と導関数の対応
1.1.1 連続版と離散版の見方
有限差分は、連続的な変化を表す導関数を、等間隔(または格子)に置いた点の値の違いで置き換える発想である。連続版では、位置 \(x\) に対する関数 \(f(x)\) の変化率は極限として定義される。一方、離散版では、\(x\) と \(x+h\) のように離れた点の差から近似量を作り、計算可能な形へ落とし込む。要点は「極限を計算せず、差として近似する」点にある。
1.1.2 一階・高階の対応
一階の導関数は差分の最も基本的な対応先であり、代表例として前進差分・後退差分・中心差分が用いられる。例えば、刻み幅を \(h\) とし \(f(x)\) を \(x=nh\) 上で扱うと、\(f(x)\) の近傍での増減を差として表し、導関数の近似になる。高階導関数は、その導関数を直接差分で置き換えるには演算子を繰り返すか、差分の組合せ(たとえば二階の差)として構成する。結果として、有限差分法は「導関数の離散的模倣」の側面を持ち、理論上はテイラー展開で対応関係と誤差が整理される。
1.2 差分演算子の定義
1.2.1 前進差分
前進差分は、点 \(x\) から一歩進んだ点 \(x+h\) との値の差を用いる演算である。刻み幅 \(h\) に対して \[ \Delta_+ f(x)=\frac{f(x+h)-f(x)}{h} \] として定義される。導関数の一次近似として理解でき、増加方向に偏るため精度は一般に中心差分より低くなりやすい。
1.2.2 後退差分
後退差分は前進差分と対になる方向で、点 \(x-h\) との差から変化率を近似する。定義は \[ \Delta_- f(x)=\frac{f(x)-f(x-h)}{h} \] である。こちらも導関数の近似として機能するが、減少方向に偏るため、中心に比べて誤差構造が異なる。
1.2.3 中心差分
中心差分は左右の点を用いて変化率を見積もる。定義は \[ \Delta_0 f(x)=\frac{f(x+h)-f(x-h)}{2h} \] であり、前進・後退に比べて左右対称性があるため、同じ一階近似でも打ち切り誤差の係数が改善しやすい。一般に偶奇の性質により、誤差の次数が高くなる傾向がある。
1.3 差分の基本性質
1.3.1 線形性
差分演算子は、多くの設定で線形性を持つ。すなわち、定数倍や和に対して \[ \Delta(\alpha f+\beta g)=\alpha \Delta f+\beta \Delta g \] の形が成り立つ。これにより、差分方程式の係数設計や解析が扱いやすくなる。
1.3.2 零差分と不変性
差分が零になる状況は、関数がその方向に対して(少なくとも区間長 \(h\) の範囲で)一定であることを示す。例えば前進差分が零であれば \(f(x+h)=f(x)\) が成り立つ。刻みが連続的に細かい極限では定数性が導関数零に対応し、離散でも「変化が観測されない」ことに相当する。
1.3.3 和と差分の関係
差分は「差分方程式」だけでなく、累積和を通じて元の値に関係付けられる。前進差分の定義から \[ f(x+h)=f(x)+h\Delta_+ f(x) \] の形が得られ、差分が与えられると更新規則として解釈できる。逆に、与えられた関数の間の差は、差分を通じて差分演算子の観点に写像される。この往復可能性が、漸化式や差分近似の構成で重要になる。
2 格子と離散化
2.1 等間隔格子と非等間隔格子
2.1.1 等間隔の場合の簡約
等間隔格子では \(x_n=nh\) と書け、差分の式が簡潔になる。刻み幅が一定なので、前進・後退・中心といった典型演算子は同じ \(h\) を用いて定義できる。結果として係数が固定され、実装上も解析上も扱いが容易になる。
2.1.2 非等間隔での一般化
非等間隔では点間隔が変わるため、差分の割り算の分母が一定でない。例えば \(x_{n+1}-x_n\) を \(\,h_{n+1/2}\,\) のように区別し、テイラー展開に基づいて係数を作り直す必要がある。一般化の方法としては、対象点の近傍の複数の格子点値から多項式補間を行い、その導関数(または差分に対応する量)の係数を抽出するアプローチがよく用いられる。
2.2 差分近似の構成
2.2.1 点配置と近似の選択
近似の精度は、どの点を使うか(ステンシル)と、その点配置に強く依存する。中心付近の点を左右対称に取ると誤差が相殺しやすいが、境界近くでは対称配置ができず、前進型や後退型に切り替える工夫が必要になる。選択は計算量、精度、安定性のバランスとして設計される。
2.2.2 差分スキームの組み立て
差分スキームは「連続方程式での微分演算」を、対応する差分演算子の組合せで置換して得る。具体的には、ある点での未知量や既知量を係数付きで結び、差分方程式の形に整える。高階の近似を狙うほど使う格子点は増える傾向があり、係数の複雑さと計算コストが増えることが多い。したがって、精度だけでなく実装と数値挙動も同時に評価する。
2.3 境界条件の扱い
2.3.1 境界での差分の工夫
領域の端では、必要な点が格子上に存在しないため差分がそのまま適用できない。代表的対応として、片側差分(前進または後退)へ切り替える、あるいは低次精度の近似で妥協する方法がある。より高精度にしたい場合は、近傍の点群を用いた非対称ステンシルで係数を作ることで対応する。
2.3.2 仮想点(ゴースト点)の考え方
境界の外側に「仮想的な値」を導入し、境界条件を使ってその値を消去するやり方がある。仮想点は、境界条件(たとえば指定値や指定された勾配)を離散的に反映するための中間変数として機能し、差分式の必要性を満たす。最終的には未知数の数を増やさないよう、境界条件で仮想値を内部の既知・未知へ結び付ける形が典型である。
3 有限差分法と差分方程式
3.1 差分方程式の分類
3.1.1 常微分型と楕円型の考え方(離散化後)
離散化後の差分方程式は、元の連続問題の時間方向・空間方向の扱いによって性質が変わる。時間に関する差分が明確に「進む」形で現れる場合は、常微分系に似た更新構造を持ちやすい。対照的に空間に関する差分がその場で拘束として現れ、時間の進行なしに関係が閉じる場合は、楕円型の連立方程式の性格が強くなる。分類は、数値アルゴリズムの選定に直結する。
3.1.2 境界値問題と初期値問題
初期値問題では、時間方向(または一方向)の初期データから逐次的に計算が進む。境界値問題では、領域端での条件が全体を拘束し、未知量が同時に解かれる必要が出る。差分方程式における「既知がどの方向に与えられているか」に注目すると、設計の違いが明確になる。
3.2 既知の手法との関係
3.2.1 階差(漸化式)とのつながり
有限差分は、差分方程式が漸化式として書ける場合、階差の理論と接続する。未知量が格子点ごとに連鎖的に決まるとき、計算は直列更新になり、過去の値から現在値が得られる構造が見える。これは数列論や離散力学で培われた考え方と共通点を持ち、安定性評価や誤差の伝搬を議論する足場になる。
3.2.2 多項式補間との関係
多項式補間は差分近似の係数を導く代表的手段である。近傍の格子点で \(f\) を通る多項式を考え、その多項式を微分した値(または差分演算子に対応する量)を評価することで、任意の配置に対する差分係数を構成できる。この観点から有限差分は、補間誤差の整理と密接に結び付く。
3.2 解法の概要
3.2.1 逐次更新(反復)
逐次更新は、前の格子(あるいは前の時刻)で得た値から次の値へ進める方法である。更新式が明示的に書ける場合、計算は単純になるが、刻み幅が大きいと不安定になり得る。逆に、暗黙的更新では連立方程式を解く必要があるが、安定性面で有利になることがある。
3.2.2 行列形式(差分行列)
境界値問題や暗黙スキームでは、差分方程式を行列 \(A\mathbf{u}=\mathbf{b}\) の形に整理することが多い。ここで \(\mathbf{u}\) は格子上の未知量ベクトルであり、差分演算子の連結関係が行列の非零パターンとして現れる。ステンシルの幅が広いほど行列はより密になり、計算コストやメモリ使用量に影響する。
3.2.3 連立方程式の解
行列形式の解法には、直接法(分解して解く)と反復法(繰り返し近似を改善する)がある。反復法では前処理(プリコンディショニング)が性能を左右し、行列の性質(対称性、正定値性、疎性)に応じて適切な手法を選ぶ。有限差分は格子依存のため、条件数や収束挙動も格子幅と結び付いて評価される。
4 誤差・収束・安定性
4.1 打ち切り誤差と精度
4.1.1 テイラー展開による誤差評価
差分近似の誤差は、テイラー展開で近傍の高次項を見積もることで評価できる。例えば中心差分は奇数次の項が打ち消されやすく、残る高次項の係数によって誤差の主要部分が決まる。これにより、どの程度の刻み幅で精度が向上するか(誤差が \(h^p\) に比例するか)が理論的に整理される。
4.1.2 精度次数(オーダー)
精度次数は、打ち切り誤差の支配的な漸近挙動を示す指標であり、一次、二次、などの形で表現されることが多い。次数が高いほど、刻みを小さくした際の誤差減少は速くなる。ただし実際には丸め誤差や安定性の制約が同時に働くため、次数が高いだけでは常に良い結果が出るとは限らない。
4.2 安定性の考え方
4.2.1 条件付き安定性
安定性は、誤差(初期誤差や丸め誤差)が時間発展(あるいは更新の反復)で増大しないことを意味する。逐次更新型では刻み幅が大きいと振動的な誤差が増幅することがあり、その許容範囲が「条件」として現れることがある。暗黙形ではこの制約が緩和される場合があるが、代わりに連立方程式の計算が必要になる。
4.2.2 ナイキスト的直観(離散化の観点)
ナイキスト的直観では、離散化が表現できる周波数帯に着目し、許容範囲外の成分が数値的に不利になる可能性を考える。差分は実効的に「フィルタ」や「伝達特性」を持つため、あるモードの増幅率が1を超えると不安定化につながる。離散化の設計では、このモード挙動の理解が重要になる。
4.3 収束性と整合性
4.3.1 整合性(整合性と近似)
整合性は、刻みをゼロへ近づけたときに差分スキームが連続方程式に正しく近づく性質である。一般に、打ち切り誤差が十分に小さくなる構成になっていれば整合性は満たされる。整合性があるだけでは不十分で、離散化による誤差が時間発展で増えないこと、すなわち安定性が併せて必要になる。
4.3.2 収束判定の指標
収束は、厳密解に対して数値解がどの程度近づくかを評価する概念である。実務では、格子を段階的に細かくして誤差が減少するか、あるいは規範(ノルム)で測った相対誤差がどう振る舞うかを指標にする。理論面では、整合性と安定性の組合せから収束を導く枠組みが用いられる。これにより、数値結果の信頼性を確認できる。