|
|
生存競争
ロトカ・ボルテラの方程式においてcとdの符合を変えれば、
生存をめぐって闘争する2種の生体系のモデルができる。
プログラムでは、LotkaVolterraクラスに基本モード(NormalMode)と生存競争モード(StruggleMode)を
切り替えるメソッドを作る。cとdの符合を変えるメソッド。
プログラムソース:
class LotkaVolterra{
double a,b,c,d;
LotkaVolterra(double a,double b,double c,double d){
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
LotkaVolterra(double m){
settingM(m);
}
void settingM(double m){
a = 1.0;
b = 1.0;
c = m;
d = m;
}
void StruggleMode(){
if (c >= 0) c = -c;
if (d >= 0) d = -d;
}
void NormalMode(){
if (c <= 0) c = -c;
if (d <= 0) d = -d;
}
double dxdt(double x, double y){
return a * x - b * x * y;
}
double dydt(double x, double y){
return -c * y + d * x * y;
}
}
last update 2006/08/31
|
実行結果5
生存競争モードで実行。x軸に被捕食者、y軸に捕食者をとる。
m = 1.0, x = 2.0に固定し、yを1.6から2.4に変化させた時の変化の様子。
(青:y = 1.6 , 緑:y = 1.8 , 赤:y = 2.0 , 紅紫:y = 2.2 , 水色:y = 2.4)
m = 1.0, x = 0.3に固定し、yを0.1から0.5に変化させた時の変化の様子。
(青:y = 0.1 , 緑:y = 0.2 , 赤:y = 0.3 , 紅紫:y = 0.4 , 水色:y = 0.5)
上の2つの図を合わせたもの。
last update 2006/08/31
|
戻る
|