ルンゲ=クッタ法(Runge-Kutta method)は、数値解析において常微分方程式の近似解を求める方法。
今回は、ルンゲクッタ法のサンプルをJavaScriptで作って動かしてみました。
EpidemiologyのSIRモデルのプログラムを見ていて、ここでもルンゲクッタを使用していたので、一度触っておいて損はなかろうと思いまして。
SIRモデルはウィルスの感染過程を”感染の可能性のある者”・”感染した者”・”感染の可能性の無い者(免疫できた or 隔離された or 亡くなった)”に3区分し、それぞれの状態遷移をプログラムで可視化したようなものです。
これをメディアのクチコミの影響力に当てはめたりできるかな…という前置きからの本エントリ。
ルンゲクッタ法を弄ってみた図は下記な具合です。
図1:Tmax=30, dt=0.01の場合
図2:Tmax=30, dt=0.05の場合
図3:Tmax=30, dt=0.1の場合
図4:Tmax=30, dt=0.5の場合
参照サイトにはRunge-Kutta法よりざっくりとした精度のEuler法との比較もあります。
図を見て見る限り、目の細かさのパラメータdtが細ければ理論値に近い値が算出されますね。
・ルンゲ=クッタ法(Runge-Kutta method)
・Excelでルンゲクッタ法
・gnuplotで微分方程式を解く