昨今コロナウイルスの感染者数について「指数関数的に増加」という言葉を耳にするようになりましたが、皆さんはその意味を理解していますでしょうか?実はこの話は、高校で習う「数列の漸化式」と深く関係しているのです。そこで今回は、ウイルスの感染者数を題材にして、数列の漸化式の解き方について説明したいと思います。
例題
ある国で新しいウイルスが流行り始めました。このウイルスに感染した人は毎日4人の人にうつします。一方で、病院ではこのウイルスに感染した人を1日200人治すことができます。では、次の(1)~(3)の場合において、感染者数の増え方はどうなるでしょうか?
(1) 初めの感染者が45人の場合
(2) 初めの感染者が50人の場合
(3) 初めの感染者が60人の場合
※だたし、治療は感染者が増えた後に行われるものとする。
感染者が1人いたら4人増えて次の日には5人になっているということですから、感染者は1日で5倍になります。しかし、病院があるのでそのうち100人は治すことができます。このことを踏まえて、感染者がどのように変化するかを考えてみましょう。
(1) 初めの感染者が45人の場合
はじめ:45人
1日後:45人→(5倍)→225人→(200人治療)→25人
2日後:25人→(5倍)→125人→(200人治療)→0人!
最初が45人だったら、2日後には感染者0人になってしまうわけですね。
では、5人増やした50人だったらどうでしょうか?
(みなさんも自分の手を動かしてやってみてください!)
(2) 初めの感染者が50人の場合
はじめ:50人
1日後:50人→(5倍)→250人→(200人治療)→50人
2日後:50人→(5倍)→250人→(200人治療)→50人
…………
つまり、初めが50人ならいつまでたっても50人です。
では、さらに5人増やした55人だったらどうでしょうか?
(3) 初めの感染者が55人の場合
はじめ:55人
1日後:55人→(5倍)→275人→(200人治療)→75人
2日後:75人→(5倍)→375人→(200人治療)→175人
3日後:175人→(5倍)→875人→(200人治療)→675人
4日後:675人→(5倍)→3375人→(200人治療)→3175人
…………
この場合は、治療が追い付かずにどんどん感染者が増えていくことがわかります。
(3)の場合、10日後や20日後、もっというと\(n\)日後に何人になっているかを求めるにはどうしたらいいでしょうか?
(2)により、初めが50人ならばウイルスの力と病院の力がちょうど釣り合って、ずっと50人になっていることがわかります。そこで、55人=50人+5人と分解して考えてみると、次のように、50人の部分は50人のままキープされて、余った5人の部分が毎日5倍ずつ増えていくことになります。
この余った5人の部分は、\(n\)日後には×5が\(n\)回(つまり×\(5^n\))されて\(5\times 5^n=5^{n+1}\)になっているので、
\(n\)日後の感染者は、\(50+5^{n+1}\)人
とわかります。\(5^{n+1}\)の部分は\(n\)が1つ増えると5倍になるので、急激な勢いで増えていきます。このように、一定の倍率で増えていく関数を指数関数と呼びます。
式で考えてみる
今の話を、式で考えてみましょう。\(n\)日後の感染者数を\(a_n\)人とおくと、\(n+1\)日後の感染者数は、先ほどと同様に、
\(a_n\)人→(5倍)→\(5a_n\)人→(200人治療)→\(5a_n-200\)人
となります。つまり、$$a_{n+1}=5a_n-200~…①$$
という式が得られます。これは、数列\(\{a_n\}\)の\(n\)番目を使って、次の\(n+1\)番目を求めるという式になっています。このような式を、数列\(\{a_n\}\)の漸化式(ぜんかしき)といいます。
では、漸化式①から\(a_n\)を求める方法を考えてみましょう。先ほどは、「初めに50人だったら感染者はずっと50人のまま」ということを利用して、55人=50人+5人と分解したのでした。そこでこの50人という数字を漸化式①から求めるにはどうしたらいいでしょうか?
ずっと50人のままということは、\(a_n\)が50なら\(a_{n+1}\)も50ということです。そこで、①で\(a_n=a_{n+1}=x\)としてみると、
$$ x=5x-200~\Longrightarrow~4x=200~\Longrightarrow~x=50$$
となり、50という数が求まりました!
さて、\(a_n=a_{n+1}=50\)を①に代入すると、
$$ 50=5\times 50-200~…② $$
という式が得られます。そこで、①から②を辺々引くと、
\begin{align*}
a_{n+1}&=5a_n~~~~~-200~…①\\
-)~~~~50&=5\times 50-200~…②\\ \hline
a_{n+1}-50&=5(a_n-50)
\end{align*}
ここで、\(a_n-50\)というのを一つのカタマリ(数列)とみると、上の式は、
$$(n+1番目)=5\times(n番目) $$
ということを意味しています。つまり、\(a_n-50\)は5倍、5倍と増えていく数列(公比5の等比数列)ですね。よって、\(n\)番目の値は初め(0番目)の値に×5を\(n\)回施せば求まります。はじめ(=0日後)の感染者数は\(a_0=55\)人だったので、\(a_n-50\)の初めの値は、\(a_0-50=5\)です。ゆえに、
$$a_n-50=5\times 5^n=5^{n+1}$$
つまり、
$$a_n=5^{n+1}+50$$
とわかります。以上の流れをまとめると、次のようになります。
漸化式\(a_{n+1}=5a_n-200~…①\)の解き方
(1) ①で\(a_{n+1}=a_n=x\)とおいて\(x=50\)を求める。
(2) ①から\(50=5\times 50-200~…②\)を辺々引く。
\begin{align*}
a_{n+1}&=5a_n~~~~~-200~…①\\
-)~~~~50&=5\times 50-200~…②\\ \hline
a_{n+1}-50&=5(a_n-50)
\end{align*}(4) \(a_n-50\)をカタマリとみることで、$$a_n-50=(a_0-50)\times 5^n=5\times 5^n=5^{n+1}$$つまり、\(a_n=5^{n+1}+50\)
感染者を減らすには?
最初の例題では、初めに感染者を55人とした場合、3日後には675人まで増えてしまいます。この状況で、感染者を減らす方法としては、
① 1人が1日にうつす人数を減らす
② 1日に治療できる人数を増やす
が考えられますが、②は現実的に限界があります。今回は、感染者が675人まで増えた段階でみんなが努力したことで、①の1人が1日にうつす人数が0.2人まで減ったとしましょう。この時、感染者がどのように変化するかを考えてみます。
この時、感染者が1人いたら次の日には1人+0.2人=1.2人になっています。そこで、675人になってから\(n\)日後の感染者数を\(a_n\)とおくと、\(n+1\)日後には、
\(a_n\)人→(1.2倍)→\(1.2a_n\)人→(200人治療)→\(1.2a_n-200\)人
となるので、
$$a_{n+1}=1.2a_n-200 …③$$
という漸化式ができます。この漸化式を、先ほどの方法で解いてみましょう。
まず、\(a_n=a_{n+1}=x\)とすると、
$$ x=1.2x-200~\Longrightarrow~0.2x=200~\Longrightarrow~x=1000$$
となるので、
\begin{align*}
a_{n+1}&=1.2a_n~~~~~~~~-200~\\
-)~~~~1000&=1.2\times 1000-200~\\ \hline
a_{n+1}-1000&=1.2(a_n-1000)
\end{align*}
よって、初めの値が\(a_0=675\)であったことを思い出すと、\begin{align*}a_{n+1}-1000&=(a_0-1000)\times1.2^{n}\\
&=(675-1000)\times1.2^{n}=-325\times 1.2^n
\end{align*}つまり、\(a_n=1000-325\times 1.2^n\)と求まります。\(1.2^n\)の部分は指数関数ですが、-325というマイナスの数がかかっているので、\(a_n\)は指数関数的に減少していくことがわかります!つまり、新たな感染者を増やさないように気を付ければ一気に減少していくというわけですね。実際に上の式を使って計算してみると、下のようになり、7日後には感染者が0人になることがわかります。
\(n\) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
\(a_n\) | 675 | 610 | 532 | 438 | 326 | 191 | 30 | -165 |
まとめ
以上の例題は非常に簡略化されたモデルですが、高校数学が実際の問題に応用されている例を見ていただくのにとてもよい例だと思い、ご紹介しました。これに限らず、数学が現実の問題に対して役立っている場面はたくさんありますので、これを機に興味をもってもらえたらと思います。