ルンゲクッタ法(以下RK)は 移流方程式の時間微分以外の項を ![]() ここで, RK2(改良オイラー法)†2段2次のルンゲクッタは改良オイラー法(modified Eular method)とも呼ばれている. ![]() RK3†3段3次のルンゲクッタの式は以下. ![]() RK4†4段4次のルンゲクッタの式は以下. ![]() 例:矩形波の移流†矩形波(0.25 < x < 0.75で1,それ以外で0)を一定速度(u=0.75)で移流させた結果を示す.グリッド解像度N=128, シミュレーション空間の大きさL=5.0,グリッド幅Δx=L/N,タイムステップ幅Δt=(1.0/CFL)*Δx/uとして,CFL=7, 1.1, 0.535の場合を示す. ルンゲクッタの次数が上がるにつれてより大きなタイムステップでも安定して計算できるようになる.下2つのグラフではCFL=1.1, 0.535と中途半端な数字になっているが,これはRK2,RK3が振動を始める限界を探って設定したためである.ちなみにRK4の限界はCFL=0.49ぐらいなので,RK3とRK4の安定性は大きくは変わらない. |