現象のモデル化と数値解析

1. 目的

実社会の現象をモデル化して結果を予測し、自身の経験的な知識と比較検討する。また、python を用いた数値解析技術を習得し、リモートサーバによるプログラムの実行を実習する。

2. 理論

2.1 数理モデル

数理モデル
現実の対象を簡略化し、物理法則にしたがって諸量の関係を数学的に表したもの。とくに時間変化する現象を微分方程式などで記述することを指す。近年はコンピューターの性能の著しい向上にともない、より複雑な現象を数理モデルに基づいてシミュレーションすることが可能になった。数学モデル。
(デジタル大辞泉より)

現実の事象(たとえば、天気や、感染症の流行、過渡現象やばねの振動など)は様々な要素が影響し合った複雑なものである。こうした事象に対し、数式に基づく抽象的なモデルを作成することで、事象の振る舞いがわかりやすくなる。

たとえば天気はコンピュータで計算できないほど大規模なパラメータが影響し合ったものだといえるが、いくつかの抽象的なパラメータでおおまかに表現できれば、解析やその解釈が容易になる。

2.2 SIRモデル

SIRモデルとは、感染症の広がり方を捉えた簡単な数理モデルである。閉鎖集団におけるSIRモデルは、以下のように記述される。

: 未感染者数(Susceptible)
: 感染中の患者数(Infectious)
: 免疫を有している人の数(Recovered)
: 1回の接触で感染する確率
: 1週間に感染者と未感染者が接触する回数
: 感染期間(感染してから免疫ができるまで)

感染者が未感染者と接触すると一定の確率で感染症が伝播すると仮定し、微分方程式によって感染者の変化をモデル化している。

2.3 微分方程式の数値解法

のような微分方程式を離散的に扱う場合、解析的な方法とは異なり、 を有限の長さとして順番に傾きを求めていくことで方程式の数値解を求める。そのため誤差が発生するが、解析的には解けない方程式の解を数値的に求められる場合がある。

微分方程式の数値解法で最も簡単なのはオイラー法である。オイラー法の手順を以下に示す。

における (初期値)が既知の時、 における の近似値を求めたい。

が十分に小さいとき、微分方程式の右辺 を 一定とみなすと、 と計算できる。

求めた をもとに を計算する……という繰り返しにより、微分方程式を数値的に解くことができる。

オイラー法よりも精度良く微分方程式を解くアルゴリズムとして、ルンゲクッタ法がある。

3. 実験方法

3.1 Google Colabへのログイン

この実験はGoogle Colabを使用して行う。

以下のページを参照して、Google Colabへログインする。

Google Colabの使い方

3.2 かんたんな微分方程式の解析

以下のリンクからGoogle Colabでプログラムを開く。

SIRモデルのサンプルプログラム

CR回路の過渡現象に関する微分方程式を解く。

で、電圧 に充電されたコンデンサ と抵抗 を接続すると、コンデンサの両端の電圧 は以下の微分方程式で表せる。

この式と初期条件 で より、オイラー法で微分方程式を解いて実行する。

各素子の値は とする。

プログラムのうち、微分方程式にかかわる部分と、グラフ表示部分の穴埋めを行い、実行する。

numpy.arange([start, ]stop, [step])
Return evenly spaced values within a given interval.
Parameters:
start: Start of interval.
stop: End of interval. The interval does not include this value.
step: Spacing between values. For any output out, this is the distance between two adjacent values, out[i+1] - out[i].
list.append(x)
Add an item to the end of the list.

3.3 感染症モデル

感染症モデルのプログラムのうち、プログラム中の穴抜きの命令(オイラー法)を、以下の微分方程式に従って記述し実行する。

このプログラムは、感染の様子を16weeks(4ヶ月間)予測している。

スライダーを動かすことで、各パラメータを変更できる。

3.4 感染症の予測と数値解析

I, R, K の組み合わせを1人1組考え、班で共有する。それぞれの組み合わせについて、結果を班で話し合って予想する。

その後、それぞれの組み合わせでプログラムを実行し、予想との違いを班で考察する。

実験結果には班全員の予想と結果を記述すること。

4. 検討課題

  1. 世の中で活用されている数理モデルを1つとりあげ、説明せよ。
  2. 今回使用したSIRモデルは、あらゆる状況で現実の事象をうまく説明できるわけではない。どのような場合にSIRモデルをそのまま適用するのが難しいか考察せよ(たとえば、感染が判明した時点で隔離すれば、これより良い結果となる)。

Web上で動くサンプル

スライダーを動かすとグラフが変わります。

I0 : 1

R0 : 0

k : 10