以下の常微分方程式について、4次のルンゲクッタ法を用いた数値解析を行います:
1. 人口(N):総人口(例:10,000人)
2. 常微分方程式モデルの感染率係数():
※接触者数、感染率は1日1人あたり
3. 回復率():
4. 基本再生産数():
※ S(0)は初期感受性者数(= N - 初期感染者数)
常微分方程式を数値的に解く手法。時刻 t から t+dt への変化を以下の式で計算:
各個体(エージェント)を独立して追跡し、空間的な接触を明示的にモデル化します:
1. 空間配置(2次元平面):各エージェントはキャンバス上を自由に移動
2. 接触判定(円形範囲):感染者から接触半径(r)内のエージェントが接触対象
3. 感染過程:接触したエージェントが確率的に感染
4. 回復過程:感染者が一定期間後に回復(免疫獲得)
1. 接触時の感染率パラメータ():
接触が発生した場合の単位時間あたりの感染率パラメータ
2. 接触半径(r):
感染者との接触を判定する距離(ピクセル単位)
目的:接触半径を持たない常微分方程式モデルと個体ベースモデルの結果をフィッティングさせるため、接触半径を 40px に設定し、画面サイズに応じてスケーリングする
動的計算式:
(A = キャンバス面積 [px²])
係数 0.039 の導出:
基準画面サイズ(1,049,760 px²)で、常微分方程式モデルとフィッティングするための接触半径を 40px と設定
この係数により、どの画面サイズでも適切な接触半径が自動計算され、両モデルの整合性が保たれます
3. 回復率():
常微分方程式モデルと同じ定義(単位時間あたりの回復率)
微小時間 dt における感染・回復の確率:
感染確率:
回復確率:
個体ベースモデルのパラメータを常微分方程式モデルに換算:
接触者数の推定(2次元空間):
※ N: 人口、A: キャンバス面積、r: 接触半径
💡 3次元空間の場合:
3次元空間では、接触範囲が球体となるため:
V: 空間体積、接触範囲が r² → r³ に変化
本シミュレーションは2次元平面を想定(画面上での可視化のため)
常微分方程式モデルの β への換算:
回復率 γ(換算不要):
※ 回復率は両モデルで同じ定義のため、換算の必要なし
基本再生産数():
2つのモデルにおけるβの定義は異なりますが、以下の関係で結ばれています:
常微分方程式モデル:
人口全体に対する感染率係数(集団レベル)
個体ベースモデル:
接触時の感染率パラメータ(個体レベル)
換算式:
接触者数 = 人口密度 × 接触範囲面積 =
回復率γは両モデルで同じ定義を共有します:
両モデルとも単位時間あたりの回復率として扱われます
適切にパラメータを換算すれば、両モデルで同じR₀が得られます:
S(0) について:
S(0) = 初期感受性者数(シミュレーション開始時点で感染していない人数)
N: 総人口、I(0): 初期感染者数
例:人口2,000人、初期感染者2人の場合 → S(0) = 1,998人
この式は両モデルで同じ値を返します(パラメータが正しく換算されている場合)