スタディ中学受験情報局(中学受験に関するニュースや最新情報をスタディがお届け)

2021/3/22(月)

【連載】第2回 マルサスの人口モデル 微分方程式入門

人を数学する 〜人体・人間社会を数学の眼差しでみる
■INDEX

シミュレーション

200年に渡り欧米では現実の社会問題──医学・経済学・物理学・生理学・ロケット工学・芸術・軍事に対して、「微分方程式であらわされる数学モデル」を用いたシミュレーションが問題解決に貢献してきた歴史と伝統があります。

その原点が、英国の経済学者マルサス(1766-1834)による「人口論」(1798年)です。マルサスの人口論はシンプルなモデル──シンプルな形の微分方程式がゆえに広範囲に渡り影響を与えました。

微分とは勢いのこと

いったいどのようにして未来予測(シミュレーション)が可能なのか。簡単に説明してみましょう。分かりやすい例は車の運動です。今、時速100kmで走行しているとすれば、1時間後はここから100km先の地点に到達しているはずです。停止状態(時速0km)が1時間続くとしたら、その位置は変わりありません(0km先の地点)。この車の速度が数学でいうところの微分です。時速は車の勢いと言い換えることができます。ある時点での勢いが分かれば未来が計算できるということです。

こんどはアクセルを踏み続ける状況を考えてみましょう。車が停止状態でアクセルを踏み続けると速度が10km/h、20km/h、30km/h、40km/hと大きくなります。速度の勢いがある状況です。

アクセルを一定にしている時と踏み続ける時、それぞれで勢いがあることがわかります。前者(時速100km)は、位置の勢いがある状況で、後者(0km/hから40km/hに変化)は、速度の勢いがある状況です。

位置の勢い(微分)が速度で、速度の勢い(微分)が加速度ということです。

微分が勢いのことだと分かれば微分方程式も恐くありません。これから登場する微分方程式とは、勢いの方程式と読みかえましょう。勢いがどのような量に関係して決まるのかを表した式のことです。

マルサスのモデル

人口問題は実社会の最重要問題です。マルサスが「人口論」(1798年)の中で展開した人口の未来変化を予測するためのモデルはざっくり次のように説明されます。

他のエリアとの人口移動がないあるエリア(国)を考えます。その国の中では常に誰かが生まれ、誰かが死んでいます。したがって、出生数と死者数の差引が人口の増加分です。

出生数と死亡者の勢い(微分)は何に関係しているでしょうか。
これがモデルを考えるということです。人口を決定する要因は数多くありすべてを考慮することは不可能です。そこで、最も大きな要因として1つだけピックアップしてみることから始めます。

それは、その時の人口です。
人口が大きければ、沢山生まれ、沢山死にます。出生数と死亡者、それぞれの増加分すなわち微分(勢い)が大きくなると考えます。正確に、出生数と死亡者の微分は人口に比例するとします。

ある国の時刻tにおける総人口をN(t)とします。
ある時刻における人口の微分(いきおい)dN/dtは、人口Nに比例する。
これがマルサスが考えたモデル(微分方程式)です。

マルサス・モデル dN/dt=kN (kは比例定数) …①

一人一人の人間は離散的(数えられるということ)な存在ですが、人口が十分に大きい場合、その変動を連続的とみなすことができます。人口を連続量すなわち実数値とすることで、人口を連続量の時間で微分・積分することができるようになります。結果、人口の未来予測(シミュレーション)が可能になります。

コンピューター・シミュレーション

表1 米国の人口統計

マルサスのモデルをコンピューター・シミュレーションしてみましょう。
AI(人工知能)のプログラミング言語としても用いられているPythonを使って微分方程式①を解いてみます。

実際の人口統計を用いてマルサス・モデルの検証を行ってみます。次の表1は米国の1800年から1900年までの人口です。

微分方程式①を解くには、比例定数kと人口の初期値N(0)を与える必要があります。最初の1790年を時刻t=0として、人口の初期値N(0)は530万人です。
1800年と1810年の2つのデータから比例定数をk=0.306と決めることができます。

これでマルサス・モデルのコンピューター・シミュレーションを行う準備完了です。
次がその結果です。

実際の人口統計との比較は、1800年から1860年まではかなりの一致が見られます。それ以降は誤差が次第に大きくなっていきます。

グラフから分かるように人口は直線的に増加するのではなく増加の度合いが大きくなる曲線を描くことが分かります。これが指数曲線といい、人口は指数関数的に増加するなどと呼ばれます。このことをマルサスは次のように表現しました。

人口は制限されなければ幾何級数的に増加するが生活資源は算術級数的にしか増加しないので、生活資源は必ず不足する。

ここでいう「幾何級数」が指数関数(指数曲線)を意味し、「算術級数」が1次関数(直線)を意味します。

人口推移がこの最も単純なモデルで説明できる時代は確かにあります。しかし、現代は人口増減の原因・要素が複雑になりこのモデルでは到底説明できません。そもそも指数関数的増加が続けば人口爆発を招くわけですがそうはなっていません。現在までに現実の人口推移を説明するモデルは数多く出されています。その出発点がこのマルサス・モデルです。

Pythonプログラミング

上のグラフを描き出したPythonのプログラムが次です。

10行目 dNdt = k*N
の部分が、マルサス・モデル dN/dt=kN (kは比例定数) …①
を表しています。

そして、13行目と14行目のたった2行でこの微分方程式を解いています。
プログラム・コードは全体として長く見えますが、その多くはグラフを体裁を整えて描くためのものです。本質的にこの2行だけPythonは微分方程式を解いています。

数学の教科書で微分方程式の基本をマスターするには数年を要します。高校3年生の微分積分の教科書と大学1・2年生の微分積分の教科書が必要です。ところがPythonがあればそれよりも圧倒的に短期間で、それも小学生でさえ微分方程式を解く様子に触れることができます。

Pythonは新しい算数・数学の教科書!

Pythonほど数学を面白いと思わせてくれるコンピュータ言語を私は知りません。Pythonを使う度に数学との親和性の大きさを実感します。親子で楽しむプログラミング教室
「桜井進のPython・UNIX教室(入門コース全3回)」と「桜井進のPython・UNIX・Math教室」をオンラインで開催していますが、小学生がPythonと数学を楽しみながら上達していく姿に毎回驚かされます。

Pythonを使うたびにPythonと数学の相乗効果に驚かされます。Pythonには数学がぎっしり詰め込まれています。まるでPythonは新しい数学の教科書のよう。本としての教科書はだまっていますが、Pythonは私たちのアクションに応えてくれます。テンポよく、明解に、センス良く、だから楽しい。微分方程式だってPythonならサクサクできてしまいます。

Pythonを使うたびにPythonと数学の相乗効果に驚かされます。Pythonには数学がぎっしり詰め込まれています。まるでPythonは新しい算数・数学の教科書のようです。本としての教科書はだまっていますが、Pythonは私たちのアクションに応えてくれます。テンポよく、明解に、センス良く、だから楽しい。微分方程式だってPythonならサクサクできてしまいます。

執筆者プロフィール

桜井 進(さくらい すすむ)
1968年山形県東根市生まれ。サイエンスナビゲーターⓇ。株式会社sakurAi Science Factory 代表取締役CEO。東京理科大学大学院非常講師。東京工業大学理学部数学科卒。同大学大学院院社会理工学研究科博士課程中退。小学生からお年寄りまで、誰でも楽しめて体験できる数学エンターテイメントは日本全国で反響を呼び、テレビ・新聞・雑誌など多くのメディアに出演。著書に『雪月花の数学』『感動する!数学』『わくわく数の世界の大冒険』『面白くて眠れなくなる数学』など50冊以上。
サイエンスナビゲーターは株式会社sakurAi Science Factoryの登録商標です。