線性和非線性系統 我們先再看一遍簡單種群增長的模型 假設生育率是2 在之前的視頻中,我說過這個模型是線性的 比如用T+1時刻的種群規模對T時刻的種群規模作圖 這是因為兔子之間沒有相互作用,且增長也沒有極限 換句話說,線性就是整體等於部分之和 這一點我們可以在簡單種群增長的模型裏看到 比如一開始只有一隻兔子,生育率為2 繁殖3年可以得到8只兔子 現在,把最開始的兔子數量設成10,即剛才的10倍 繁殖3年,得到80只兔子 也是剛才結果的10倍 所以如果我們最開始運行10次1只兔子的繁殖情況 每次繁殖3年,然後把十次模擬加起來 其結果與10只兔子繁殖3年的結果一樣——兩種情況最終都有80只兔子 這就是整體等於部分之和 但如果系統是非線性的,結果就會有所不同 現在我們在個體之間加入非線性相互作用 請看非線性模型 n(t+1)等於出生率乘以n(t)減去因擁擠而死去的兔子 假設這是因為食物,空間或者其他限制因素所致 我們設因擁擠而死去的兔子數量等於n(t)平方除以最大種群數量 這個模型現在具有了非線性特徵 n(t)平方項來源於可能有可交配的兔子的數量在n(t)平方量級 這個假設高度簡化了真實情況 只是為了類比非線性,僅僅是真實情況的一個近似 進一步擴展這個模型,讓其更一般化 加入其他因為非擁擠因素而死亡的兔子 即引入死亡率 擴展後的模型會出現出生率減去死亡率這一項 現在,這個模型被稱為邏輯斯蒂增長模型 它是由數學家 Pierre Verhulst在19世紀初發明的 我們來看相應的netlogo模型 模型名叫logisticModel.nlogo 可以從下面的鏈結或者課程網站來下載 這個就是模型 有設置初始數量的捲軸,也有設置出生率和死亡率的 注意這裏兩個量用的是實數而非整數了 假如計算得出後代的數目不是整數,模型會四捨五入 還有一個設置承載數量的捲軸 承載數量就是棲息地內最大種群數量的學術說法 把初始數量設成1,出生率為2.0,死亡率為0 承載數量為50 初始化,然後開始模擬繁殖 可以看見種群數量在增長 注意這裏種群數量最終固定在25 即使再繁殖一輪,數量也不會改變 注意這裏種群數量對時間的曲線不再是指數增長曲線 增長沒有那麼快了 一開始有較快增長,但很快開始減速,最終平稳 這就是邏輯斯蒂方程 而今年種群數量對去年種群數量的曲線也不再是一條直線 因為系統不再是線性的了 回到netlogo模型 一個明顯的問題就是為什麼兔子數量不固定在50 即承載數量 這是因為模型就是這樣 如果有25只,那麼25的平方除以50正好是12.5 即死去的兔子數量 在出生率為2時,剩餘的兔子經過繁殖正好是25 再次強調,這只是數學模型,並非真實情況 特別對於很小的種群數量 只是為了模擬真實世界中的種群增長,但不一定準確 這個模型的重點不在於它模擬自然這一塊 而是在於其非線性特徵可能產生的後果 回到模型 現在問題是整體等於部分之和--即線性系統的特徵--還是否存在? 重複之前的實驗 讓1只兔子繁殖3輪 四捨五入得到7只兔子 然後把初始兔子數量設為5,即剛才的5倍 初始化,然後繁殖3輪 可以看見這裏兔子數量並非5乘以7 本來這個數量應該是剛才的5倍 即3輪繁殖後,每只兔子生出7只兔子 但當你以為5只兔子會產生5倍,即35只後代時 實際上只有21只 所以在這個非線性系統中,整體不等於部分和 現在你知道了線性和非線性系統的差別 以及部分間的非線性相互作用產生的效應 這個特徵我們會在將來不斷地提到。 現在是練習時間