Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

伝染理論と伝染曲線

【DE06】伝染曲線 (感染者の増加率)

人口 N 人の都市で伝染病が発生したとします。ある時刻において、まだ感染していない人の数を x(t) とし、未感染者が感染者が接触した時に伝染がおこるとします。すなわち単位時間当たりの感染者の増加数は x(Nx) に比例すると考えます。ただし t=0 における感染者は 1 名とします。このようなモデルにおいて、
(1) 未感染者の数 x(t) を求めてください。
(2) ある時刻における感染者の増加率 v(t)=dx/dt のグラフ(伝染曲線)を描いてください。

【ヒント】(1) は微分方程式を立てて解く問題。(2) は極値を調べてグラフ (伝染曲線) を描く問題です。増加率 v(t) の微分は、小問 (1) で立てた微分方程式を利用するととても楽になります。また、実際にグラフを描く前に、状況から概形を予想してみてください。
 
【解答】k を定数とすると感染者の増加率は
 kx(Nx)
ですが、求めたいのは未感染者の数なので符号を反転させて
 (A)dxdt=kx(xN)
と表せます。変数分離すると
 dxx(xN)=kdt
左辺の分数を分解すると
 (1xN1x)dx=Nkdt
積分すると
 log|xNx|=Nkt
A=±ec とおくと
 x=N1AeNkt
t=0 で「未感染者の数」は x=N1 なので、上の式に代入して定数 A を求めると
 A=11N
となります。よって未感染者の数
 (A1)x(t)=N(N1)N1+eNkt
が得られます。

(2) 時刻 t=0 から感染者の増加率は徐々に増して、ある一定のピークを迎えたのち、今度は減少に転じて最後は 0 になるはずです(全員が感染したら増加率は 0 になるはずです)。したがって v(t) はある時刻 t=tm で極大値を1つもち、t で 0 に収束するような関数であると予測できます。実際に確かめてみましょう。
 (B)v(t)=dxdt=kx(xN)
に (A1) を代入すると
 (B1)v(t)=kN2(N1)eNktN1+eNkt
となります。状況から考えても、またこの関数の形からも常に v(t)>0 であることがわかります。さて極値を求めるために v(t) を微分しますが、それには (B) の表式を用いると簡単です。すなわち
 dvdt=kx(xN)kxx=kx(N2x)=v(t)(N2x)
となります。v(t)>0 なので、v(t)=0 となるのは x=N/2 のときです。これを先ほどの
 (A1)x(t)=N(N1)N1+eNkt
に入れると極値をとる時刻 tm が求まります。
 tm=log(N1)Nk
(B1) に代入すると極値が求まります。
 v(tm)=kN24>0
t±v(t)=0 となること、常に v(t)>0 であること、また極値 v(tm) も正であることから、v(tm) は極大値であることがわかります。グラフの概形は下の図のようになります。
 
Excel伝染曲線(伝染理論)

【おすすめ記事】≫ 対数関数の微分と積分

【DE07】非線形方程式

微分方程式 xyy+xexy3=0 を解いてください。
 
【ヒント】非線形方程式ですが、上手く変数変換すると線形方程式に帰着できます。詳しくは ベルヌーイの微分方程式の頁を参照してください。

【解答】与えられた方程式
 (A)xyy+xexy3=0
の両辺を y3 で割ります。
 xyy31y2+xex=0
(y2)=2yy3 なので
 x2+(1y2)=xex
ここで z=1/y2 とおくと
 (A1)xz+2z=2xex
という方程式になります。右辺を 0 とおいた斉次方程式
 xw+2w=0
を変数分離すると
 dww=2dxx
両辺を積分すると
 log|w|=logx2+c
A=±ec とおくと
 w=Ax2
という斉次解を得ます。そこで z=a(x)/x2 とおいて先ほどの
 (A1)xz+2z=2xex
に代入すると a(x) に関する方程式
 a(x)=2x2ex
が得られます。積分公式
 f(x)exdx={f(x)f(x)+f(x)}ex
と用いて積分すると
 a(x)=(2x24x+4)ex+c
となるので、
 z=(2x24x+4)ex+cx2
となります。よって
 y2=x2(2x24x+4)ex+c
という一般解を得ます。

エクセルや数学に関するコメントをお寄せください