Predator-Prey Systems A predator-prey system is one type of system where populations of two species are coupled: an increase in the number of predators will cause a decrease in the number of prey (more die by being eaten) but an increase in the number of prey can cause the number of predators to increase (more food available, so fewer predators starve). The other two types of interaction are competition whereby an increase in numbers of either species causes a decrease in numbers of the other (for example because a limited and fixed food supply is needed by both) or mutualism, whereby an increase in numbers of either species causes an increase in numbers of the other (suggesting some kind of cooperation). We can solve such systems computationally, by including a variable representing the number of each species as a function of time. The rate of change of either species depends both on its own number and the number of the other species. Iteration allows us to solve for the dynamics of the two populations in just the same way as in a multiple species chemical system (see buffering). Lotka-Volterra Model The Lotka-Volterra model has historical significance as the first model demonstrating that oscillations can arise via predator-prey interactions. It was published in the 1920s (way before the use of computers) and designed to be analytically tractable. It is far too simple to be relevant, but as a starting approach for simulation is useful. Once we know what we are doing, we can include more realistic terms in the simulations. Giving the number of prey as N and the number of predators as P, the Lotka-Volterra model is: dN N(a bP) dt dP P(cN d) dt where a,b,c,d are constants with the following meanings: a is the growth rate of the prey population in the absence of predator (birth rate - natural death rate). bP is the probability per unit time of a prey being eaten by predator, increasing linearly with numbers of predators. d is the natural rate of decay of predator population in the absence of prey to eat (starvation rate –birth rate). cN is the reduction in starvation rate plus increase in birth rate if predators as more food is available, for simplicity assumed linear in number of prey. The code lotka_volterra.m implements these equations, plotting N and P against time, t, and also plots P against N (the latter is a phase-plane plot). You can investigate the system by changing parameters a-d or (importantly) trying different starting values N(0) or P(0). More Realistic Predator-Prey Systems The first simplification of the Lotka-Volterra model, easily to be corrected, is the growth without bound of the prey population in the absence of predators. Any environment has a carrying capacity, K, here denoting the number of prey that can exist before they run out of food. Including such a term, the rate of growth of prey without predator (the first term) becomes: N Na1 which approaches zero as N approached the carrying capacity, K. K Similarly, the rate of prey eaten by predators (NbP in the Lotka-Volterra model) is a simplification that (among other things) omits saturation of N at fixed P: eventually the predators get full, so adding more and more prey does not mean they eat more. This rate enters both dN/dt directly (each prey eaten reduces the number of prey) and dP/dt indirectly (each prey eaten extends the life of the predator). It is reasonable to assume the term increases linearly with the number of predators. One fix is to replace bNP with bP eN which is equal to bNP at small N but saturates at eP for large N, suggesting e is the bN e maximum number of prey a predator would eat per unit time. In the code, we define the variable eaten_rate_per_prey = (be)/(bN+e) which replaces b in the original model. A similar alteration to the predator’s term, cNP, leads to the replacement of c with (ce)/(bN+e): N bPe dN N a1 dt K bN e cNe dP P d bN e dt There are already 5 parameters a-e to be fixed in this model. Their values will determine the behavior of the system (see codes predator_prey.m and predator_prey_rand2DQB_Euler.m). Computationally this is still a simple problem, and functions such as the dependence of number of prey eaten per year on total number of predator and prey --- and how lifespan of predator depends on number of prey eaten could be made more realistic by including empirical data. One role of computer modeling in a system such as this is to test what parameters are important and how sensitive the outcome is to different changes in parameters or function. This would suggest what observations are most valuable “out in the field” to obtain more data. The second role is to “tune” the model to be more and more predictive as more detailed empirical data is made available. Predicting the future of ecosystems, environments and climate as a whole depends on these iterative refinements and improvements of models that always begin in a highly simplified manner. If you have time, you can try different functions for different qualitative features or phenomena that may occur in nature. Think about separating adults (who can reproduce) from children (who can’t). You could include two types of predators (or prey) with different attributes (such as need for food, natural longevity and reproduction rates, to see which one dominates). Feel free to implement any ideas you have!