MadonnaModel Arial!D(.2> B 6: - EV{Rosenzweig-MacArthur 1963 Resource/consumer or Prey/Predator model using Moore grid} {From Turchin, 2003, p. 46} {simulation control block} STARTTIME = 0 STOPTIME=100 DT = .50 DTOUT = 1.0 {define the size of the grid} begin = 1 end = 3 {read initial values of predators, prey, and carrying capacity from external csv files} init Pred[begin..end,begin..end] = #Pred_Moore(j,i) init Prey[begin..end,begin..end] = #Prey_Moore(j,i) CC[begin..end,begin..end] = #CC_Moore(j,i) {limit predators and prey to positive values} LIMIT Pred >= 0 LIMIT Prey>= 0 {number of Prey or resources} Prey[begin..end,begin..end](t) = Prey[i,j](t - dt) + (dPreydt[i,j]) * dt dPreydt[begin..end,begin..end] = brate_prey[i,j]-drate_prey[i,j] + inmigration_prey[i,j] - outmigration_prey[i,j] brate_prey[begin..end,begin..end] = r0*(1-Prey[i,j]/CC[i,j]) drate_prey[begin..end,begin..end] = Resource_use[i,j] outmigration_prey[begin..end,begin..end] = prey_out * (Prey[i,j] - drate_prey[i,j]) {migration of prey} inmigration_prey[begin..end,begin..end] = IF ((i = begin) AND (j = begin)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j+1] + outmigration_prey[i+1,j]) ELSE IF ((i = begin) AND (j = end)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j-1] + outmigration_prey[i+1,j]) ELSE IF ((i = end) AND (j = end)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j-1] + outmigration_prey[i-1,j]) ELSE IF ((i = end) AND (j = begin)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j+1] + outmigration_prey[i-1,j]) ELSE IF (i-1 < begin) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j+1] + outmigration_prey[i,j-1] + outmigration_prey[i+1,j]) ELSE IF (i+1 > end) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i,j+1] + outmigration_prey[i,j-1] + outmigration_prey[i-1,j]) ELSE IF (j-1 < begin) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i+1,j] + outmigration_prey[i-1,j] + outmigration_prey[i,j+1]) ELSE IF (j+1 > end) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i+1,j] + outmigration_prey[i-1,j] + outmigration_prey[i,j-1]) ELSE (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_prey[i+1,j] + outmigration_prey[i-1,j] + outmigration_prey[i,j+1] + outmigration_prey[i,j-1]) {number of predators or consumers} Pred[begin..end,begin..end](t) = Pred[i,j](t - dt) + (dPreddt[i,j]) * dt dPreddt[begin..end,begin..end] = brate_pred[i,j]-drate_pred[i,j] + inmigration_pred[i,j] - outmigration_pred[i,j] brate_pred[begin..end,begin..end] = chi*Resource_use[i,j] drate_pred[begin..end,begin..end] = gamma*Pred[i,j] outmigration_pred[begin..end,begin..end] = MIN(Pred[i,j] - drate_pred[i,j], pred_out*drate_pred[i,j]) {migration of predators} inmigration_pred[begin..end,begin..end] = IF ((i = begin) AND (j = begin)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j+1] + outmigration_pred[i+1,j]) ELSE IF ((i = begin) AND (j = end)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j-1] + outmigration_pred[i+1,j]) ELSE IF ((i = end) AND (j = end)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j-1] + outmigration_pred[i-1,j]) ELSE IF ((i = end) AND (j = begin)) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j+1] + outmigration_pred[i-1,j]) ELSE IF (i-1 < begin) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j+1] + outmigration_pred[i,j-1] + outmigration_pred[i+1,j]) ELSE IF (i+1 > end) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i,j+1] + outmigration_pred[i,j-1] + outmigration_pred[i-1,j]) ELSE IF (j-1 < begin) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i+1,j] + outmigration_pred[i-1,j] + outmigration_pred[i,j+1]) ELSE IF (j+1 > end) THEN (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i+1,j] + outmigration_pred[i-1,j] + outmigration_pred[i,j-1]) ELSE (Random(0,1) / (Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1) + Random(0,1))) * (outmigration_pred[i+1,j] + outmigration_pred[i-1,j] + outmigration_pred[i,j+1] + outmigration_pred[i,j-1]) {resource use -- number of Prey or resources consumed} Resource_use[begin..end,begin..end] = (c*Prey[i,j]*Pred[i,j])/(d+Prey[i,j]) {parameters} prey_out = .10 {out_migration rate of prey} pred_out = .50 {out_migration responsiveness of predators to predator deaths} r0 = 2 {fraction of Prey produced per capita in a limitless environment} c = .25 {fractions of Prey-predator interactions that result in consumption} d = 10 {scaling factor to show how per capita consumption decays with density} chi = 5 {number of predators produced per Prey consumed} gamma = .50 {death fraction for predators in the absence of Prey} Wu]I 9 #pred?@@@?@HB@@W XY #prey?@@@?@C@@MYiYuZ#CC?@@@?BBB@BBB@@BBBZZ[#CC_Moore?@@@?AAA@AAA@@AAA[)\5]#Pred_Moore?@@@?@ A@@i]]^#Prey_Moore?@@@?@HB@@^_` !Y}Z[=]^ %`@rk4DT{Gz? MbP?MbP?MbP? 5>?333??TIMEmPredPrey CCAQYa0AIQ i qy"$& (*1,E.Y09,TM.Fjnr z WW`vW}WiWQ`W W$f&f(f*f,`.`f