人口動態

人口動態

人口動態の例題として、シンプルな人口成長モデルを考えてみましょう。

ここでは、離散的な時間ステップでの人口の変化を表すシンプルな差分方程式を使用します。

例として、次のような差分方程式を考えます:

$$
[ P_{t+1} = P_t + r \cdot P_t \cdot (1 - \frac{P_t}{K}) ]
$$

ここで、$ (P_t) $は時刻$ (t) $での人口、$ (r) $は増加率、$ (K) $は環境収容力(持続可能な最大人口)です。

以下に、この人口成長モデルをPythonで実装し、結果をグラフ化する例を示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import matplotlib.pyplot as plt

def population_growth_model(initial_population, growth_rate, carrying_capacity, generations):
population = [initial_population]

for t in range(1, generations):
next_population = population[-1] + growth_rate * population[-1] * (1 - population[-1] / carrying_capacity)
population.append(next_population)

return population

# パラメータ設定
initial_population = 100 # 初期人口
growth_rate = 0.1 # 増加率
carrying_capacity = 500 # 環境収容力
generations = 50 # 世代数

# 人口成長モデルの実行
population_over_time = population_growth_model(initial_population, growth_rate, carrying_capacity, generations)

# 結果のグラフ化
plt.plot(range(generations), population_over_time, marker='o', linestyle='-', color='b')
plt.title('人口成長モデル')
plt.xlabel('世代')
plt.ylabel('人口')
plt.grid(True)
plt.show()

このコードでは、初期人口が$100$人で、増加率が$0.1$、環境収容力が$500$人の場合の人口成長モデルをシミュレートしています。

結果を折れ線グラフで表示しています。

[実行結果]

グラフを通じて、初期急激な成長があり、次第に環境収容力に向かって人口が収束していく様子がわかります。

ソースコード解説

このソースコードは、人口成長モデルを定義し、それを用いて人口の時間変化をシミュレートし、最終的には結果をMatplotlibを使用してグラフ化するものです。

以下に各部分の詳細な説明を提供します。

1. ライブラリのインポート

1
import matplotlib.pyplot as plt

Matplotlibのpyplotモジュールをインポートしています。

これはグラフの描画に使用されます。

2. 人口成長モデルの定義

1
2
3
4
5
6
7
8
def population_growth_model(initial_population, growth_rate, carrying_capacity, generations):
population = [initial_population]

for t in range(1, generations):
next_population = population[-1] + growth_rate * population[-1] * (1 - population[-1] / carrying_capacity)
population.append(next_population)

return population

population_growth_model関数は、差分方程式に基づくシンプルな人口成長モデルを実装しています。
初期人口から始まり、各世代ごとに人口を計算し、結果をリストとして返します。

3. パラメータ設定

1
2
3
4
initial_population = 100  # 初期人口
growth_rate = 0.1 # 増加率
carrying_capacity = 500 # 環境収容力
generations = 50 # 世代数

モデルのパラメータを設定しています。
初期人口増加率環境収容力、およびシミュレーションの世代数が含まれます。

4. 人口成長モデルの実行

1
population_over_time = population_growth_model(initial_population, growth_rate, carrying_capacity, generations)

先に定義した人口成長モデルを実行し、時間経過に伴う人口の変化をリストとして取得します。

5. 結果のグラフ化

1
2
3
4
5
6
plt.plot(range(generations), population_over_time, marker='o', linestyle='-', color='b')
plt.title('人口成長モデル')
plt.xlabel('世代')
plt.ylabel('人口')
plt.grid(True)
plt.show()

Matplotlibを使用して人口の時間変化をグラフに描画します。
横軸は世代数、縦軸は人口数です。
グリッドが表示され、グラフのタイトルと軸ラベルが設定されています。
グラフは点線('o')で表示され、色は青('b')です。

このコード全体では、シンプルな人口成長モデルを定義し、それを用いて特定のパラメータでの人口変化を可視化しています。