2009年12月20日日曜日

数学 #13 数値計算 #6 Lotka-Volterra方程式

Lotka-Volterra(ロトカ=ヴォルテラ)方程式

Lotka-Volterra方程式とは,捕食者と被食者の増減関係をモデル化した非線形微分方程式です.

dx/dt=x(α-βy)
dy/dt=-y(γ-δx)

x:被食者
y:捕食者
t:時間の個体数
α, β, γ, δ:正の実数パラメータ

被食者の増殖速度
dx/dt=αx-βxy
αxは,被食者が多ければ多いほど,その増加速度は大きいことを意味します,つまりαは増加に関するパラメータ.
-βxyは,被食者,捕食者が多い程,被食者の個体数が減少することを意味します(被食者が食べられる量,捕食者が食べる量はそれぞれの個体数に比例),つまりβは減少に関するパラメータ.

捕食者の増殖速度
dy/dt=δxy-γy
δxyは,被食者,捕食者が多い程,捕食者の個体数が増加することを意味します(↑の-βxyと対になっている),つまりδは増加に関するパラメータ.
-γyは,捕食者の自然現象の速度を表します,つまりγは減少に関するパラメータ.

今回はルンゲ=クッタ法で数値的に解いてみましょう.
被食者-赤
捕食者-青


Fig.1
初期値:
x0=1
y0=1
パラメータ:
α=0.9
β=0.5
γ=0.75
δ=0.25


Fig.2
初期値:
x0=1
y0=1
パラメータ:
α=1.5
β=1.5
γ=0.1
δ=0.5


Fig.3
初期値:3
x0=γ/δ=3
y0=α/β=1.8
パラメータ:
α=0.9
β=0.5
γ=0.75
δ=0.25

Fig.1を見ると,周期解になっていることが分かります.また,被食者,捕食者の位相が若干ずれていることが分かります.これは,

魚が増える→サメが食べることの出来る量が増えるので,サメは増え,魚は急激に減る→サメが食べることの出来る魚の量が減ったので,サメは自然減少する他無い→サメが減ったので,魚は増える→…

というサイクルを表しているのです.
※ここで,
魚=被食者
サメ=捕食者

Fig.2では,周期がFig.1のおよそ2倍になっています.また,個体数のピーク時は,被食者よりも捕食者の方が多いことが分かります.

Fig.3では,未来永劫 個体数が変わりません.これは,初期値がx0=γ/δ,y0=α/βでは,

dx/dt=0, dy/dt=0

となるためです.

現実におこる現象は人智を超えた複雑怪奇なものですが,こんな簡単な式によって決まっているのかもしれません,しかしそこには無秩序と秩序の狭間にあるカオスが渦巻いているのでしょう.

0 件のコメント: