R语言约束优化:捕食者-猎物模型中求b的最小值
捕食者-猎物模型参数求解问题
模型方程组
建立的捕食者(人类)-猎物(鱼类)模型方程组如下:
- 猎物(鱼类)种群变化率:$\frac{dx}{dt} = a x - g x^2 - b x y$
- 捕食者(人类)种群变化率:$\frac{dy}{dt} = -c y + d x y$
求解需求
需要通过R代码找到使人类种群消亡($y < 1$)的参数$b$的最小值,搜索范围为$[0.2, 0.4]$。
现有尝试与疑问
我尝试了以下R代码,但不确定是否正确设置了$y \in [0,1]$的约束,也不确定是否应该使用不含$b$的第二个方程:
Objb<-function(b,a,x,g,y) (a*x-g*x^2-b*x*y) optimize(Objb, a=5,x=20,g=0.0001,y=0, lower=0.2, upper=0.4,maximum = FALSE) optimize(Objb, a=5,x=20,g=0.0001,y=0.5, lower=0.2, upper=0.4,maximum = FALSE) optimize(Objb, a=5,x=20,g=0.0001,y=1, lower=0.2, upper=0.4,maximum = FALSE)
运行得到的结果:
optimize(Objb, a=5,x=20,g=0.0001,y=0, lower=0.2, upper=0.4,maximum = FALSE) # $minimum # [1] 0.3999501 # # $objective # [1] 99.96 # optimize(Objb, a=5,x=20,g=0.0001,y=0.5, lower=0.2, upper=0.4,maximum = FALSE) # $minimum # [1] 0.3999501 # # $objective # [1] 95.9605 optimize(Objb, a=5,x=20,g=0.0001,y=1, lower=0.2, upper=0.4,maximum = FALSE) # $minimum # [1] 0.3999501 # # $objective # [1] 91.961
内容的提问来源于stack exchange,提问作者PVB
相关产品推荐
相关产品推荐

