種群數量變化經典模型是logistic model ,在理想情況下,種群數量變化是以指數增長模式進行的,如下圖,第一個模型。在某些環境裡,由於資源的限制,種群的數量是以“S”型增長的。如圖第二個模型,再考慮物種間的相互競爭,可以發現種群的數量是以優勢種最終生存,劣勢種逐漸被淘汰,但是在現實中,往往不會被淘汰,而形成此消彼長的趨勢,原因是自然條件是時刻變化的。總而改變了物種的生存優勢。
工具/原料
Matlab
方法/步驟
第一個模型:理想模型:
dx/dt=r*x,x=c*e^r*t,x(0)=x0
此模型忽略了種內競爭和種間競爭
使用matlab解微分方程,並畫圖,可見種群數量程指數增長。
第二個模型考慮了種內競爭以及資源限制
dx/dt=r*x*(1-x/xmax)
設定引數後,使用matlab畫圖,可見物種的增長趨勢程“S”型
第三個模型,一併考慮了種內和種間競爭
dx/dt=r1*x*(1-x/xmax-s1*y/ymax)
dy/dt=r2*y*(1-s2*x/xmax-y/ymax)
設定引數解微分方程,並畫圖。
可見優勢種種群數量增長比劣勢種快,劣勢種最終消失。
最後對模型進行繪製向量解曲線。說明了物種變化的趨勢。
Matllab ode45的介紹:
[T,Y] = ode45(odefun,tspan,y0,options)
odefun 是函式控制代碼,可以是函式檔名,匿名函式控制代碼或行內函數名
tspan 是區間 [t0 tf] 或者一系列散點[t0,t1,...,tf]
y0 是初始值向量
T 返回列向量的時間點
Y 返回對應T的求解列向量
options 是求解引數設定,可以用odeset在計算前設定誤差,輸出引數,事件等
Matlab quiver簡介:
quiver(x,y,u,v)
該函式使用箭頭來直觀的顯示向量場。該呼叫格式表示通過在(x, y)指定的位置繪製小箭頭來表示以該點為起點的向量(u,v)。
注意事項
對matlab微分方程求解必須熟悉
對生物種群數量變化的理解必須深刻