什麼是 Lotka-Volterra 模型?
Lotka-Volterra 方程式是一組一階非線性微分方程,用來描述兩個物種彼此互動的生物系統動態——其中一方是掠食者,另一方則是獵物。這套模型由 Alfred Lotka 與 Vito Volterra 於 1920 年代各自獨立推導出來,能夠刻畫出族群數量週期性起伏的現象:獵物大量繁殖、掠食者飽餐而增生、獵物隨之銳減、掠食者因缺食而凋零,接著週期再次循環。
如何使用這個計算機
輸入初始獵物族群數(\(x_0\))與掠食者族群數(\(y_0\))、四項速率參數(\(\alpha\) 獵物成長率、\(\beta\) 捕食率、\(\delta\) 掠食者因捕食而成長的速率、\(\gamma\) 掠食者死亡率),再設定時間步長(\(dt\))與要積分的步數。計算機會以經典的四階 Runge-Kutta(RK4)方法推進整個系統,並回報最終族群數、各族群所達到的尖峰值,以及解析得出的平衡點。
公式說明
獵物方程式 $$\frac{dx}{dt} = \alpha\,x - \beta\,x\,y$$ 表示獵物會呈指數成長,但遇上掠食者時就會被捕食而減少。掠食者方程式 $$\frac{dy}{dt} = \delta\,x\,y - \gamma\,y$$ 則表示掠食者因成功狩獵而增長,並會自然死亡。非零平衡點位於 \(x^{*} = \frac{\gamma}{\delta}\) 與 \(y^{*} = \frac{\alpha}{\beta}\)——在這一點上兩個導數皆為零,族群數量維持恆定。
實例演算
以 \(x_0 = 40\)、\(y_0 = 9\)、\(\alpha = 0.1\)、\(\beta = 0.02\)、\(\delta = 0.01\)、\(\gamma = 0.1\)、\(dt = 0.1\),跑 1000 步(\(t\) 最高到 100)為例,族群會呈現週期性振盪。平衡點為 $$x^{*} = \frac{0.1}{0.01} = 10 \text{ 隻獵物}, \qquad y^{*} = \frac{0.1}{0.02} = 5 \text{ 隻掠食者}$$,這正是整個循環繞行的中心。
常見問題
使用哪一種數值積分方法?採用四階 Runge-Kutta 法,在相同步長下,其精確度遠勝於單純的歐拉(Euler)法。
為什麼我的族群數會暴增或歸零?時間步長過大或速率參數過於極端,都可能使數值解變得不穩定。請把 \(dt\) 調小,循環曲線就會更平滑、更準確。
如果一開始就設在平衡點會怎樣?當 \(x_0 = \frac{\gamma}{\delta}\) 且 \(y_0 = \frac{\alpha}{\beta}\) 時,兩個導數皆為零,因此族群數會保持恆定不變——這就是系統的固定點。