ルードヴィッヒモデル
検索してもあまりいいページ出てこなかったですが式は以下の通り
library(deSolve)# 微分方程式の数値解法パッケージ #n:個体数 k:飽和数 s:食傷捕食数 r:再生産率 parameters <- c(k = 100, s = 1, r=0.1)# パラメータのセット initial <- c(n=5)# 初期条件 times <- seq(0, 100, 1)# 差分刻み Ludwig <- function(t,state, parameters) { with(as.list(c(state, parameters)), { dn <- r*n*(1-n/k)-s*n^2/(1+n^2) return(list(c(dn))) }) } # deSolveを使った数値積分を out に出力 out1 <- ode(y = initial, times = times, func = Ludwig, parms = parameters) parameters <- c(k = 100, s = 1, r=0.2) out2 <- ode(y = initial, times = times, func = Ludwig, parms = parameters) parameters <- c(k = 100, s = 1, r=0.3) out3 <- ode(y = initial, times = times, func = Ludwig, parms = parameters) parameters <- c(k = 100, s = 1, r=0.4) out4 <- ode(y = initial, times = times, func = Ludwig, parms = parameters) parameters <- c(k = 100, s = 1, r=0.5) out5 <- ode(y = initial, times = times, func = Ludwig, parms = parameters) out<-cbind(out1,out2[,2],out3[,2],out4[,2],out5[,2]) matplot(out,type="l")
r=0.202前後でカタストロフィー変化が生じる
このモデルでは初期状態と再生産率rでの値が決まる