Logistic growth ตัวแบบการเพิ่มของประชากร

จากการศึกษาของ Pierre François Verhulst [1] ปรับปรุงโดย Raymond Pearl [2] และ Lowell Jacob Reed [3] สรุปได้ว่าการเติบโตของประชากรมีรูปแบบที่เรียกว่า Logistic growth เขียนแทนด้วยสมการ

\( \frac{dP}{dt} = rP(\frac{K - P}{K}) \)

เมื่อ
\( \frac{dP}{dt} \) คือจำนวนประชากรต่อหน่วยเวลา
r คือ อัตราการเพิ่มของประชากร ซึ่งเป็นค่าคงที่ในช่วงเวลาที่สนใจ
K คือ จำนวนประชากรสูงสุดที่เป็นไปได้ เรียกว่า carrying capacity
P คือ จำนวนประชากร ณ เวลา t ใด ๆ

ถ้าเราต้องการหาจำนวนประชากร ณ เวลา t เราต้องทำการ Integrate สมการข้างต้นกลับ

\[ \frac{dP}{dt} =rP(\frac{K - P}{K}) \]
\[ dP = rP(\frac{K - P}{K})dt \]
\[ \frac{dP}{P(K - P)} = rP(\frac{r}{K})dt \]
\[ \int_\frac{dP}{P(K-P)} = \int_\frac{r}{K}dt \]
\[ \int_\frac{dP}{P(K-P)} = \frac{rt}{K} + C\]    , (C คือค่าคงที่ค่าหนึ่ง)
\[ \frac{1}{K}\int_(\frac{1}{P} + \frac{1}{K - P} )dP = \frac{rt}{K} + C\]
\[ \frac{1}{K}(\int_\frac{1}{P}dP + \int_\frac{1}{K - P} dP) = \frac{rt}{K} + C\]
\[ \frac{1}{K}(\ln(|P|) + C_1 + \ln(|K - P| + C_2 )= \frac{rt}{K} + C_3\]     ,(  \(C_1,C_2,C_3 \) คือค่าคงที่)
\[ \ln\frac {P}{K - P} = rt + C \] ,(รวม \(C_1,C_2,C_3 \) เป็นค่าคงที่ค่าเดียว)
\[ \ln\frac {P}{K - P} = rt + C \]
\[ \frac {P}{K - P} = e^{rt + C} \]
\[ P = (K - P)e^{rt} e^C \]  ,( \(e^C \) เป็นค่าคง เขียนใหม่ให้เป็น a)
\[ P = e^{rt} aK -e^{rt} aP \]
\[ P + e^{rt} aP = e^{rt} aK \]
\[ P = e^{rt} aK \]
\[ P = \frac{e^{rt}aK}{1 + e^{rt} a} \]
\[ P = \frac{K}{\frac{1}{e^{rt}a} + 1} \]
\[ P = \frac{K}{be^{-rt} + 1} \]

นั่นคือ จำนวนประชากร ณ เวลา t ใดๆ จะหาได้จากสมการ

\[ P_t = \frac{K}{be^{-rt} + 1} \]

ณ จุดเริ่มต้น t = 0 จะได้ว่า

\( P_0 = \frac{K}{b + 1} \)
\( b + 1 = \frac{K}{P_0} \)
\( b = \frac{K - P_0}{P_0} \)
ทดลองกับตัวอย่างสมมุติ เมื่อกำหนดให้ประชากรเริ่มต้น (P0) คือ 1 คน จำนวนประชากรสูงสุดคือ 1000 คน ค่าคงที่ของการเพิ่มประชากรคือ 0.15

import numpy as np
import matplotlib.pyplot as plt

K = 1000
P0 = 1
b = (K - P0)/ P0
r = 0.15
yt = [K / (b * np.exp(-r*t) + 1) for t in range(100)]

plt.figure(figsize=(20,6))
plt.plot(range(100),yt,label='Logistic curve')
plt.ylabel("Population(Pt) ")
plt.xlabel("Time steps (days) ")
plt.legend()
plt.grid(True)
plt.show()



จะเห็นได้ว่ารูปแบบของกราฟออกมาเป็นเหมือนรูปตัว S อธิบายได้ว่าการเพิ่มของจำนวนประชากรในธรรมชาติไม่สามารถเพิ่มไปได้โดยไม่มีหยุด ธรรมชาติมักจะมีกลไกในการควบคุมเสมอ เช่น โรคระบาด การล่า มลพิษ จำนวนทรัยากรที่จำกัด ปัญหาสังคม ฯล ทำให้การเพิ่มของประชากรจะเร่งได้ช่วงหนึ่งแล้วจะลดความเร็วของการเพิ่มจำนวนลงจนถึงจุดที่เรียกว่า carrying capacity จำนวนประชากรจะไม่สามารถเพิ่มได้อีก

-------------------------------------
เอกสารอ้างอิง 
[1] https://en.wikipedia.org/wiki/Pierre_Fran%C3%A7ois_Verhulst
[2] https://en.wikipedia.org/wiki/Raymond_Pearl
[3] https://en.wikipedia.org/wiki/Lowell_Reed

ความคิดเห็น