伝染病が流行する様子をモデル化し、その過程をシミュレーションしてみる。
感染する可能性のある人数をx(t)、感染者の人数をy(t)、全く感染することがない人数をz(t)とする。
感染は、下記のルールに従うものと仮定する。
1. 人口Nは一定。x(t)+y(t)+z(t) = N。
2. 感染する可能性のある人数x(t)の変化率は、x(t)y(t)に比例し、これに係数を乗算する。
3. 感染した人数y(t)の変化率は、y(t)に比例する減少項を含む。
これらから、下記の連立微分方程式でモデルを表現する。
......(1)
......(2)
......(3)
定数bを伝染係数とし、伝染病に感受性のある人が感染した人と出会って感染する率をいう。
定数cは除外率とし、感染者が死ぬか、治癒するかして、患者でなくなる率を表す。
scilab&Xcosを使って、
式(1)、(2)をブロック線図で記述し、シミュレーションで数値解を求めグラフ表示する。
ここで、シミュレーションの初期条件として、
定数bに0.01、定数cに0.5をそれぞれ与える。
シミュレーション時間(=積分終了時間)を10
Activation Clockを間隔0.1、初期時間0
Integrationブロック(ブロック図中、下)において、
Initial Condition = 10
Integrationブロック(ブロック図中、上)において、
Initial Condition = c/b、3c/b、5c/bそれぞれ与え個別にシュミレーションしてみる。
シミュレーションの環境として、
Mac OS X lion
Scilab 5.3.3 & Xcos
上でシミュレーションを行う。
シミュレーション結果(グラフは感染した人数を示している)
Initial Condition = c/bのとき
Initial Condition = 3c/bのとき
Initial Condition = 5c/bのとき
3つのパターンを見る限り、x(0)に与える初期値、つまり初期感染者の数が増えれば、一旦大きく
患者数が増加してから減少することがわかる。
また、ここから、初期感染者の数を減らす努力(例えば、隔離するなど)をすることで、
感染者の全体数を減らせるといえる。