オイラーやルンゲクッタなどでは,求めたいステップでの値(例えば&ref(full-implicit.eq1.gif,nolink,70%);)のために それ以前の値(&ref(full-implicit.eq2.gif,nolink,70%);など)だけを空間微分項に用いていた. このため,前のステップでの値が既知であれば,単に式にその値を代入するだけで計算が可能であった. これに対し,&ref(full-implicit.eq1.gif,nolink,70%);を時間微分項以外に用いる方法を陰解法と呼ぶ. #ref(full-implicit.eq3.gif,nolink,70%) 時間微分以外に&ref(full-implicit.eq2.gif,nolink,70%);がない場合を完全陰解法と呼ぶ. 移流方程式の完全陰解法による差分式(前進オイラー+風上差分)は, #ref(full-implicit.eq4.gif,nolink,70%) 一つの式に未知数が2つ(&ref(full-implicit.eq5.gif,nolink,70%);)含まれており,陽解法のように単純に代入だけでは解けない. そのため,すべての&ref(full-implicit.eq6.gif,nolink,70%);に関する式を連立させて解く(連立方程式). 流体シミュレーションではほとんどの場合,線形連立方程式(線形システム)となる. つまり,上記の式をすべての&ref(full-implicit.eq6.gif,nolink,70%);に関して立てることで, #ref(full-implicit.eq7.gif,nolink,70%) という行列方程式を得る.そしてこれを逆行列計算により解く. #ref(full-implicit.eq8.gif,nolink,70%) 数値流体解析ではこの行列&ref(full-implicit.eq9.gif,nolink,70%);が巨大になってしまい,計算コストが大きくなる. 例えば,3次元空間を&ref(full-implicit.eq10.gif,nolink,70%);のグリッドで分割した場合,&ref(full-implicit.eq11.gif,nolink,70%);の行列となってしまう. ただし,&ref(full-implicit.eq9.gif,nolink,70%);は正定対称疎行列であることが多く,前処理付共役勾配法など効率的な解法を使うことができる. それでも,やはり陽解法に比べると圧倒的に計算時間が必要である. 一方で陰解法は数値的に安定しており,大きなタイムステップでも発散することなしに解ける(CFL条件にも左右されない)ため,CG用アプリケーションなどではよく用いられている.