微分方程式の解を近似するアプローチ
明示的法と暗黙的法は、物理プロセスのコンピュータシミュレーションで必要とされる、時間依存の常微分方程式と偏微分方程式の解の数値近似値を求める数値解析で使用される手法です。明示的法では、現在の時刻のシステムの状態から後の時刻のシステムの状態を計算しますが、暗黙的法では、システムの現在の状態と後の時刻の両方を含む方程式を解くことで解を求めます。数学的には、が現在のシステム状態で、が後の時刻( は小さな時間ステップ)の状態である場合、明示的法では、




一方、暗黙法では方程式を解く。

見つける
計算
陰的解法では追加の計算(上記の方程式を解く)が必要となり、実装がはるかに困難になる可能性があります。陰的解法が使用されるのは、実際に生じる多くの問題が硬直的であるためです。これらの問題に対して陽的解法を使用すると、結果の誤差を制限し続けるために非現実的なほど小さな時間ステップが必要になります(数値安定性を参照)。このような問題では、与えられた精度を達成するには、各時間ステップで形式(1)の方程式を解く必要があることを考慮しても、より大きな時間ステップで陰的解法を使用する方が計算時間が大幅に短縮されます。とはいえ、陽的解法と陰的解法のどちらを使用するかは、解く問題によって異なります。

暗黙法は微分演算子の種類ごとに実行することはできないため、いわゆる演算子分割法を使用することが推奨されることがあります。これは、微分演算子を2つの相補演算子の和として書き直すことを意味します。

一方は明示的に扱われ、もう一方は暗黙的に扱われます。通常のアプリケーションでは、暗黙の項は線形になるように選択され、明示的な項は非線形になることがあります。前者の方法と前者の方法の組み合わせは、暗黙的-明示的方法(略してIMEX、[1] [2])と呼ばれます。
前進オイラー法と後退オイラー法を使用した図
常微分方程式を考える
![{\displaystyle {\frac {dy}{dt}}=-y^{2},\ t\in [0,a]\quad \quad (2)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2da9a469600ad22b47c72ac29e5705592594d712)
初期条件として、0 ≤ k ≤ nのグリッド、つまり時間ステップが であり、各 に対してと表されるものを考えます。この方程式を、最も単純な明示的および暗黙的な方法である前進オイラー法と後退オイラー法 (数値常微分方程式を参照) を使用して離散化し、得られたスキームを比較します。





- 前進オイラー法
異なる積分法を ODE に適用した結果: 。![{\displaystyle y'=-y^{2},\;t\in [0,5],\;y_{0}=1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3417b09298cdd5cb37559b2b094310257a20d2bf)
順方向オイラー法

収穫

それぞれについて、これは の明示的な式です。


- 後退オイラー法
後退オイラー法では

暗黙の方程式を見つける

(これを、方程式内の未知数としてではなく明示的に与えられた
式(3)と比較してください) 。

これは2次方程式で、負の根と正の根が1つずつあります。元の方程式では初期条件が正であるため、正の根が選択され、次の時間ステップでは次のように与えられます。


ほとんどの場合、暗黙的スキームを使用するときに解くべき方程式は二次方程式よりもはるかに複雑であり、解析解は存在しません。その場合、ニュートン法などの根探索アルゴリズムを使用して数値解を求めます。
- クランク・ニコルソン法
クランク・ニコルソン法では

暗黙の方程式を見つける

について(これを式(3)と比較してください。ここで、 は方程式内の未知数としてではなく明示的に与えられています)。これは、ニュートン法などの求根アルゴリズムを使用して数値的に解くことができ、 を得ることができます。



クランク・ニコルソンは、より一般的な IMEX (暗黙的- 明示的) スキームの一種として考えることができます。
- 前進後退オイラー法
およびに前進オイラー法と前進後退オイラー法の両方を適用した結果。
IMEX スキームを適用するには、少し異なる微分方程式を考えます。
![{\displaystyle {\frac {dy}{dt}}=yy^{2},\ t\in [0,a]\quad \quad (5)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f18ea769b80c985190a3cdd00aab67ab5e172ee8)
すると、
![{\displaystyle \left({\frac {dy}{dt}}\right)_{k}\approx y_{k+1}-y_{k}^{2},\ t\in [0,a]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7b04b3efd989e303c961793557c8ace14d9ab2d5)
そしてそれゆえ

それぞれ
参照
出典
- ^ UM Ascher、SJ Ruuth、RJ Spiteri:時間依存偏微分方程式の暗黙的-明示的ルンゲ・クッタ法、Appl Numer Math、vol. 25(2-3)、1997
- ^ L.Pareschi、G.Russo:スティフな微分方程式系に対する暗黙的-明示的ルンゲ・クッタ法、数値解析の最新動向、第3巻、269-289、2000年