なんとなく脳トレがてら1日1問解説しようと思っただけです.飽きたらやめます.
事前知識
気分を変えて,人口増加の数理モデルを考えてみよう.
本文は,論文[1]が元になっている.
時刻 $t=0$ のときに,人口が $P(t)=P_0\neq 0$ だったとしよう.ここでの目的は,時刻 $t$ のときの人口を表す関数 $P(t)$ を求めることである.
最も単純な人口増加の数理モデルは,
\frac{\mathrm{d}P(t)}{\mathrm{d}t} \propto P(t),
とすることである.つまり,「人口が2人のときより,人口が4人のほうが2倍人口が増えやすい」という直感に基づくモデルである.これを,Malthus(GPT-4によると読みは"マルサス")の人口モデルという.比例定数を $m$ とおくと,上記は次のように表される($m$ は出生率と死亡率の差分として表現されることが多いが,ここでは簡単のため無視する).
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t),
このモデルの解は,$P(t)=Ce^{mt}~~~(C:任意定数)$ であることが簡単に求まる(変数分離型 $y^{\prime}=my$ と見るとわかる).この解によると,十分に時刻が経過した $t\rightarrow \infty$ のとき,人口も伴い $P(t)\rightarrow \infty$ と無制限に増え続けることを表す.
ただし,現実問題では人口は増えれば増えるほど,食糧問題などにより,人口の増加にブレーキがかかると予想される.このブレーキを表す関数 $-\varphi(P(t))$ を用意し,Malthusの人口モデルに加えたものを,Verhulst(GPT-4によると読みは"フェルフルスト")の人口モデルと呼ぶ.
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t)-\varphi(P(t)),
問題
Verhulstの人口モデルにおいて,最も単純な関数 $\varphi(P(t)) = nP(t)^2$ を考える($n$ は比例定数).
つまり,
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t)-nP(t)^2,
である.この微分方程式の一般解を求よ.
また,$t\rightarrow \infty$ としたときに,人口 $P(t)$ が一定値に漸近することを示せ.
ポイント
- 長々と書いていて難しそうに見えますが,本日の微分方程式(2日目) で登場した $y^{\prime}=y(1-y)$ とほとんど同じです.
解説
サクッと変数分離したいのですが,与式を変形すると,次のようになるので,$P(t)=0$ および $P(t)=\dfrac{m}{n}$ のときだけ場合分けが必要です.
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t)\left\{1-\frac{n}{m}P(t)\right\}.
① $P(t)\neq 0$ かつ $P(t)\neq\dfrac{m}{n}$ のとき
与式の両辺を,$mP(t)-nP(t)^2$ で割ってしまい,両辺を $t$ で積分しましょう.
\begin{align*}
\frac{1}{mP(t)-nP(t)^2}\frac{\mathrm{d}P(t)}{\mathrm{d}t} &= 1,\\
\int\left\{\frac{1}{mP(t)-nP(t)^2}\frac{\mathrm{d}P(t)}{\mathrm{d}t}\right\}\mathrm{d}t &= \int 1\mathrm{d}t,\\
\int\frac{1}{mP(t)-nP(t)^2}\mathrm{d}P(t) &= \int 1\mathrm{d}t.\\
\end{align*}
ここで,左辺の被積分関数を,
\begin{align*}
\frac{1}{mP(t)-nP(t)^2}&=\frac{1}{mP(t)\left\{ 1-\dfrac{n}{m}P(t) \right\}},\\
&=\frac{1}{m}\left[\frac{a}{P(t)} + \frac{b}{\left\{1-\dfrac{n}{m}P(t) \right\}}\right],\\
\end{align*}
と部分分数分解できると仮定すると, $a=1$, $b=\dfrac{n}{m}$ とすぐに分かる.よって,左辺の被積分関数は次のように変形できる.
\begin{align*}
\frac{1}{m}\left[\frac{a}{P(t)} + \frac{b}{\left\{1-\dfrac{n}{m}P(t) \right\}}\right]=\frac{1}{m}\left[\frac{1}{P(t)} + \frac{1}{\left\{\dfrac{m}{n}-P(t) \right\}}\right].
\end{align*}
よって,積分計算は,
\begin{align*}
\int\frac{1}{m}\left[\frac{1}{P(t)} + \frac{1}{\left\{\dfrac{m}{n}-P(t) \right\}}\right]\mathrm{d}P(t) &= \int 1\mathrm{d}t,\\
\frac{1}{m}\int\left[\frac{1}{P(t)} + \frac{1}{\left\{\dfrac{m}{n}-P(t) \right\}}\right]\mathrm{d}P(t) &= \int 1\mathrm{d}t,\\
\frac{1}{m}\left( \log{|~P(t)~|} - \log{\left|~\dfrac{m}{n}-P(t)~\right|} \right) &= t+C_1~~~(C_1:任意定数),\\
\log{ \frac{|~P(t)~|}{\left|~\dfrac{m}{n}-P(t)~\right|}}&= m(t+C_1),\\
\log{\left|~ \frac{P(t)}{\dfrac{m}{n}-P(t)} ~\right|}&= mt+mC_1,\\
\left|~ \frac{P(t)}{\dfrac{m}{n}-P(t)} ~\right|&= e^{mt+mC_1},\\
\frac{P(t)}{\dfrac{m}{n}-P(t)}&= \pm e^{mC_1}e^{mt},\\
\frac{P(t)}{\dfrac{m}{n}-P(t)}&= C_2e^{mt}~~~(C_2\neq 0),\\
\end{align*}
と変形できる.途中で,1日目の問題 同様, $C_1$ が任意の実数値を取るとき, $\pm e^{C_1}$ は0以外のすべての値をとるので, $C_2 = \pm e^{C_1}\neq 0$ とおいている.
あとは,$P(t)$について解くだけです.両辺に $\dfrac{m}{n}-P(t)$ をかけて,
\begin{align*}
P(t)&= C_2e^{mt}\left\{\dfrac{m}{n}-P(t)\right\},\\
P(t)&= C_2e^{mt}\dfrac{m}{n}-C_2e^{mt}P(t),\\
P(t)+C_2e^{mt}P(t)&= C_2e^{mt}\times\dfrac{m}{n},\\
P(t)(1+C_2e^{mt})&= C_2e^{mt}\times\dfrac{m}{n},\\
P(t)&= \dfrac{C_2e^{mt}\times\dfrac{m}{n}}{1+C_2e^{mt}},\\
P(t)&= \dfrac{mC_2e^{mt}}{n(1+C_2e^{mt})},\\
P(t)&= \dfrac{m}{n\left(\dfrac{1}{C_2e^{mt}}+1\right)},\\
\therefore P(t)&= \dfrac{m}{n\left(1 +C_2e^{-mt} \right)}.\\
\end{align*}
② $P(t)= 0$ のとき
微分方程式,
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t)-nP(t)^2,
において,$\dfrac{\mathrm{d}P(t)}{\mathrm{d}t} =0$より,
(左辺) =0
また,
(右辺) = m\times 0-n\times 0^2=0
であるから,(左辺)$=$(右辺) が成り立ちます.
とはいっても,この解は人口が常に0($=$はじめの人口が0人なら,そりゃ増えないでずっと0)であることを表すだけなので,重要ではありません.
③$P(t)=\dfrac{m}{n}$のとき
微分方程式,
\frac{\mathrm{d}P(t)}{\mathrm{d}t} = mP(t)-nP(t)^2,
において,$\dfrac{\mathrm{d}P(t)}{\mathrm{d}t} =0$より,
(左辺) =0
また,
(右辺) = m\times\dfrac{m}{n} -n\times \left(\dfrac{m}{n}\right)^2=\frac{m^2}{n}-\frac{m^2}{n}=0
であるから,(左辺)$=$(右辺) が成り立ちます.
①~③のまとめ
解が3つ得られました.
\begin{align*}
① \cdots &P(t)= \dfrac{m}{n\left(1 +C_2e^{-mt} \right)}~~~(C_2\neq 0),\\
② \cdots &P(t)= 0,\\
③ \cdots &P(t)= \frac{m}{n}.\\
\end{align*}
ここで, ③の解 $P(t)=\dfrac{m}{n}$ は,①における解 $P(t) = \dfrac{m}{n\left(1 +C_2e^{-mt} \right)}$ において $C_2 =0$ としたものと一致します.
最終的な答えは,両者の解を合わせて,
P(t)= \dfrac{m}{n\left(1 +Ce^{-mt} \right)}~~~(C:任意定数), P(t)=0,
と求まりました.
さて,$
P(t)= \dfrac{m}{n\left(1 +Ce^{-mt} \right)}$ において,$t\rightarrow \infty$ としたとき,
\lim_{t\rightarrow \infty}P(t)= \lim_{t\rightarrow \infty}\dfrac{m}{n\left(1 +Ce^{-mt} \right)}=\dfrac{m}{n},
と一定値 $\frac{m}{n}$ に漸近することがわかる. 同様に,$P(t)=0$においては$\displaystyle\lim_{t\rightarrow \infty}P(t)=0$ である.
以上のことから,Malthusの人口モデルの課題(時間とともに人口が無制限に増え続けること)を,Verhulstの人口モデルが解決したことが確認できる.
参考: ロジスティック関数とシグモイド関数
Verhulstの人口モデルで最終的に得られた関数,
P(t)= \dfrac{m}{n\left(1 +Ce^{-mt} \right)},
は,ロジスティック関数と呼ばれている.
また,ここで便利上定数の値を1としたときの関数,
P(t)= \dfrac{1}{1 +e^{-t}},
は,標準シグモイド関数と呼ばれ,機械学習分野において非常に重要な関数である.
参考文献
論文[1] P. F. Verhulst (1838), Notice sur la loi que la population suit dans son accroissement. Correspondance
Math´ematique et Physique Publi´ee par A. Qu´etelet 10: 113-121.
【参考】 Wolframalpha
非常に便利なので皆さん積極的に使っていきましょう.