จากการศึกษาของ Pierre François Verhulst [1] ปรับปรุงโดย Raymond Pearl [2] และ Lowell Jacob Reed [3] สรุปได้ว่าการเติบโตของประชากรมีรูปแบบที่เรียกว่า Logistic growth เขียนแทนด้วยสมการ
เมื่อ
\( \frac{dP}{dt} \) คือจำนวนประชากรต่อหน่วยเวลา
r คือ อัตราการเพิ่มของประชากร ซึ่งเป็นค่าคงที่ในช่วงเวลาที่สนใจ
K คือ จำนวนประชากรสูงสุดที่เป็นไปได้ เรียกว่า carrying capacity
P คือ จำนวนประชากร ณ เวลา t ใด ๆ
ถ้าเราต้องการหาจำนวนประชากร ณ เวลา t เราต้องทำการ Integrate สมการข้างต้นกลับ
นั่นคือ จำนวนประชากร ณ เวลา t ใดๆ จะหาได้จากสมการ
ณ จุดเริ่มต้น t = 0 จะได้ว่า
ทดลองกับตัวอย่างสมมุติ เมื่อกำหนดให้ประชากรเริ่มต้น (P0) คือ 1 คน จำนวนประชากรสูงสุดคือ 1000 คน ค่าคงที่ของการเพิ่มประชากรคือ 0.15
จะเห็นได้ว่ารูปแบบของกราฟออกมาเป็นเหมือนรูปตัว 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
\( \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} \) |
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()
-------------------------------------
เอกสารอ้างอิง
[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
ความคิดเห็น
แสดงความคิดเห็น