空間微分&ref(eular.eq1.gif,nolink,70%);に関する離散化法について多く述べてきた一方,時間微分&ref(eular.eq2.gif,nolink,70%);に関しては以下の単純な1次精度の離散化しか述べてない.
#ref(eular.eq3.gif,nolink,70%)

これは前進オイラー法と呼ばれている.これに対して,レベルセット法などでよく用いられるのがTVDルンゲクッタ(Total-Variation Diminishing Runge-Kutta:以下TVD RK)である.ルンゲクッタ法は時間方向の離散化法としてもっともポピュラーな方法であり,次数を上げていけばどんどん精度も上がる(高次(8次精度など)のルンゲクッタは衛星の軌道計算などにも用いられているらしい).実際には前進オイラー法は1次精度のTVD RKと同じである.ここでは2次と3次精度のTVD RKを使った移流方程式の数値解法について述べる.
これは前進オイラー法と呼ばれている.これに対して,レベルセット法などでよく用いられるのがTVDルンゲクッタ(Total-Variation Diminishing Runge-Kutta:以下TVD RK)である.ルンゲクッタ法は時間方向の離散化法としてもっともポピュラーな方法であり,次数を上げていけばどんどん精度も上がる(高次(8次精度など)のルンゲクッタ(RK)は衛星の軌道計算などにも用いられているらしい).実際には前進オイラー法は1次精度のRKと同じである.TVD RKはTVDを満たすRKである.また,計算時間はかかるが安定した数値計算が可能な陰解法や予測子・修正子法などもある.

***2次精度のTVD RK(修正オイラー法) [#w615de42]
2次精度のTVD RKは修正オイラー法としても知られている.
まず最初に前進オイラー法により&ref(eular.eq4.gif,nolink,70%);を求める.
#ref(eular.eq5.gif,nolink,70%)

&ref(eular.eq4.gif,nolink,70%);からさらに&ref(eular.eq6.gif,nolink,70%);での値&ref(eular.eq7.gif,nolink,70%);を求める.
#ref(eular.eq8.gif,nolink,70%)

&ref(eular.eq9.gif,nolink,70%);と&ref(eular.eq7.gif,nolink,70%);の平均をとることで,最終的な値を得る.
#ref(eular.eq10.gif,nolink,70%)


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS