有限差分法と有限要素法
偏微分方程式を解く2大数値解法の内部原理を比較し、複雑形状や精度要求に応じてどちらを選ぶべきかが明確になります。
- 1.有限差分法(FDM)は格子点でのテイラー展開近似、有限要素法(FEM)はメッシュ上の基底関数による重み付き残差最小化と、離散化の出発点が異なります。
- 2.境界条件の扱いはFDMでは格子点への直接代入、FEMでは弱形式への自然な組み込み(自然境界条件)が基本で、複雑形状での精度に差が出ます。
- 3.規則格子・単純形状ならFDMが実装容易で高速、複雑形状・局所適合が要るならFEMが有利という使い分けが実務の判断基準です。
なぜ偏微分方程式を離散化するのか
熱伝導、流体、構造応力など科学技術計算の対象の多くは、連続な空間・時間で定義された偏微分方程式(PDE)で記述されます。しかし解析解が求まるのはごく単純な形状・境界条件に限られるため、実務では空間を有限個の点や要素に区切り、連続な問題を有限次元の連立一次方程式に変換します。これが離散化であり、その代表手法が有限差分法(FDM)と有限要素法(FEM)です。両者は「同じPDEを解く」という目的は共通でも、離散化の考え方が根本的に異なり、この違いが精度・実装コスト・適用可能な形状を左右します。
有限差分法:テイラー展開による格子近似
FDMは空間を格子点(グリッドポイント)に分割し、各点での微分をテイラー展開の打ち切りで近似します。1次元の2階微分は中心差分で次のように近似されます。
中心差分近似(刻み幅 h)
u''(x) ≈ (u(x+h) - 2u(x) + u(x-h)) / h^2
打ち切り誤差: O(h^2)
テイラー展開の高次項を切り捨てた分だけ誤差が残る
この近似を全格子点に適用すると、PDEは格子点上の値を未知数とする連立一次方程式(多くは疎行列)に変わります。定常熱伝導方程式であれば、各格子点の式は隣接点との差分だけで閉じるため、行列は帯状の疎構造を持ち、ヤコビ法やSOR、あるいは疎行列ソルバーで効率よく解けます。
FDMの強みは実装の単純さです。格子が規則的(直交格子)であれば、微分演算子をそのまま差分式に置き換えるだけでコードが書け、並列化もドメイン分割による単純な近傍通信で済みます。弱点は境界条件と形状適応性です。規則格子は曲面境界に沿って点を置けないため、複雑な境界形状では階段状近似になったり、境界付近だけ特別な差分式(不等間隔差分)を組む必要が生じ、精度が局所的に落ちます。
ディリクレ境界条件(値を固定)は該当する格子点の未知数を既知値に置き換えるだけで済みます。ノイマン境界条件(勾配を指定)は境界外に仮想的な格子点(ゴーストポイント)を置き、中心差分の対称性を使って消去する手法が一般的です。いずれも境界形状が格子軸に沿っていることが前提で、斜めや曲線境界では追加の工夫が要ります。
有限要素法:メッシュと基底関数による弱形式
FEMはまず解析領域を三角形・四角形(2次元)や四面体・六面体(3次元)の要素に分割し、メッシュを構成します。次に、PDEを「強形式(各点で厳密に成り立つ微分方程式)」のままではなく、任意の試験関数を掛けて領域全体で積分した「弱形式」に変換します。この変換(ガラーキン法)により、解に要求する滑らかさの階数が下がり、より緩い関数空間で近似解を探せるようになります。
解は各要素内で定義された基底関数(形状関数)の線形結合として表現されます。典型的には要素の頂点(節点)で値1、隣接要素との境界でなめらかに0へ落ちる区分多項式(例えば1次要素なら区分線形関数)を使います。
FEMの近似解の構成
u(x) ≈ Σ_i N_i(x) * u_i
N_i(x): 節点 i に対応する基底関数(形状関数)
u_i : 節点 i での未知の解の値(これを求める)
弱形式にこの近似を代入し、試験関数も同じ基底関数から取ると(ガラーキン法)、要素ごとの積分(要素剛性行列)を計算して全体に組み立てる(アセンブリ)ことで、最終的にFDMと同様の連立一次方程式に帰着します。行列は疎ですが、隣接関係が格子より複雑なぶん帯幅の管理やノード番号の並べ替え(バンド幅最小化)が性能に効きます。
弱形式では微分の一部を部分積分によって試験関数側へ移すため、解に要求される連続性が下がり(強形式では2階微分が必要でも弱形式では1階微分で足りる、など)、区分多項式のような滑らかさの低い関数でも近似が成立します。この操作の副産物として、ノイマン境界条件(勾配指定)が境界積分項として自然に式へ組み込まれ、追加の特殊処理なしに扱える点が実装上の大きな利点です。
FEMの強みは形状適応性です。メッシュは要素の大きさや密度を場所ごとに自由に変えられるため、応力集中部や境界層など解の変化が急な領域だけを細かく切る(メッシュ適合、hリファインメント)ことができ、複雑な曲面境界も要素の辺で直接表現できます。代償はメッシュ生成自体のコストと、要素ごとの積分・アセンブリという実装の複雑さです。
境界条件の扱いの比較と選択基準
境界条件の扱い方は、両手法の設計思想の違いを最もよく表します。
| 観点 | 有限差分法(FDM) | 有限要素法(FEM) |
|---|---|---|
| 離散化の出発点 | 微分をテイラー展開で直接近似 | PDEを弱形式にしてガラーキン法で近似 |
| ディリクレ境界条件 | 該当格子点の値を固定値に置換 | 既知節点値として消去、残りの行列に反映 |
| ノイマン境界条件 | ゴーストポイントで差分式に組込み | 弱形式の境界積分項として自然に出現 |
| 形状適応性 | 規則格子が基本、複雑形状は近似が粗くなる | メッシュで曲面境界・局所細分化に強い |
| 実装・計算コスト | 単純で高速、並列化しやすい | メッシュ生成とアセンブリの分だけ重い |
判断基準は明快です。解析領域が直方体や円筒など単純形状で、境界が座標軸に整列している場合(例えば熱伝導方程式や流体の基礎検証、波動方程式の時間発展)はFDMが実装コストと計算速度で有利です。一方、構造解析のように複雑な幾何形状を持ち、応力集中部などで局所的に高精度が必要な問題ではFEMが標準です。近年は流体解析で有限体積法(保存則の局所積分に基づく手法でFDM・FEMとは別系統)が併用されることも多く、対象物理量が保存則に強く支配される場合の選択肢としても押さえておく価値があります。
「FDMとFEMの本質的な違いは何か」と問われたら、軸は一つです。FDMは微分演算子をテイラー展開で直接近似する点近似、FEMはPDEを弱形式に変換し基底関数で解を表現する関数近似だという点です。ノイマン境界条件がFEMでは弱形式に自然に現れるのに対し、FDMではゴーストポイントという追加の工夫が要ることも、この違いから説明できれば十分です。
まとめ
- FDMは格子点でのテイラー展開近似、FEMはメッシュ上の基底関数による弱形式近似という、離散化の出発点そのものが異なる。
- 境界条件はFDMが格子点への直接代入、FEMが弱形式への自然な組込み(特にノイマン条件)で扱われ、この違いが複雑形状での精度差につながる。
- 単純形状・高速性重視ならFDM、複雑形状・局所適合や境界条件の柔軟性重視ならFEMという使い分けが実務の基本判断基準になる。
- いずれも最終的には疎な連立一次方程式に帰着するため、ソルバーの選定や並列化戦略は数値線形代数の共通基盤の上に成り立つ。
HPC・科学技術計算 Article
有限差分法と有限要素法を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
HPC
比較で見る軸
難易度: advanced / カテゴリ: HPC・科学技術計算 / タグ数: 5
導入後に効く点
境界条件の扱いはFDMでは格子点への直接代入、FEMでは弱形式への自然な組み込み(自然境界条件)が基本で、複雑形状での精度に差が出ます。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- HPC・科学技術計算
- タグ数
- 5
判断チェックリスト
- 自社の用途が「HPC / 数値解析」に近いか確認する。
- 強みである「有限差分法(FDM)は格子点でのテイラー展開近似、有限要素法(FEM)はメッシュ上の基底関数による重み付き残差最小化と、離散化の出発点が異なります。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。