This lab is designed to have you discover a population model of logistic growth from observing the output of an agent-based simulation. The resulting model, by simply rewriting the equation in Exercise 4, should be of the form \[P_{t+1} = P_{t} + F(P_{t}),\] which deterministically determines the population size in the next generation as a function of the current population size. This is known as a discrete map, which will be the focus of our future investigations.
First, start by reading the ODD description below of an agent-based model of logistic population growth. Second, play with the resulting NetLogo model LOGROWTH.nlogo
and work through the exercises at the end of this lab. Turn in your work as a knitted HTML file from your R-Markdown.
To create equations in R-Markdown, place your symbols/equation between the $$
characters. For example $$P_{t+1} = P_{t} + F(P_{t})$$
creates the above equation. Note that _
denotes subscript, ^
denotes superscript, and placing {}
around text makes sure that everything in between is superscripted or subscripted. Also note that $$
makes the equation show centered on its own line. If you want to have math inline (i.e. on the same line), you can use one $
, such as $P_{t+1} = P_{t}$
, which gives \(P_{t+1} = P_{t}\). You can go greek as well if you want (but not necessary) with, for example, $$\alpha$$
, which makes \(\alpha\).
Essentially, R-Markdown is using the \(\LaTeX\) document typesetting system. It seems that culturally, biologists mainly use Microsoft Word to format documents, while mathematicians mainly use \(\LaTeX\). If you are interested in all the fun symbols that can be created, check this page out!
https://artofproblemsolving.com/wiki/index.php?title=LaTeX:Symbols
This file describes a model of logistic growth. The initial idea came from Glenn Ledder at the October 2016 NIMBioS Quantitative Biology Working Group.
The model was designed to explore questions about logistic growth - in particular, to understand the growth of individuals in an environment with limited resources and size. The purpose is mainly for classroom use as an experiential model whereby students run simluations, visualize output, and then construct the discrete logistic growth map from the results.
The model has two kinds of entities: turtles and patches of empty land. The patches make up a square grid landscape of patches in a checkerboard pattern. Turtles are characterized only by their location, described as the patch they are on. Therefore, turtle locations are in discrete units, the x- and y- coordinates of the center of their patch. Patch size and the length of one time step in the simulation are not specified because the model is generic. Simulations go until the entire board is full; the length of one time step is not specified.
There is only one process in the model: birth and spread of the turtles to neighboring patches. On each time step, each turtle spreads to neighboring patches. The order in which the turtles execute this action is unimportant.
The model does not include direct interaction among turtles. Instead, interaction is implicit in that turtles are unable to spread to occupied neighboring patches.
Stochasticity is used to represent random birth and spreading into neighboring patches.
To observe the population dynamics, two plots are updated: (1) a plot of number of turtles as a function of time (ticks), and (2) a plot of the population change as a function of current population size.
The grid-size is initialized to 8 x 8 upon startup. The prob-grow is initialized to 0.1 upon startup. The turtles are initialized by creating four of them in the center of the region.
The environment is assumed to be constant, so the model has no input data.
The birth and spreading submodel defines exactly how turtles give birth and spread to neighboring patches. “Give birth and spread” corresponds to the simple creation of a new turtle in a neighboring patch. “Neighboring patches” are the four patches surrounding the turtle’s current patch (N, S, E, and W).
On each time step, each unoccupied neighbor patch of a turtle is colonized with probability prob-grow. A random number from a uniform distribution between 0.0 and 1.0 . If this random number is less than prob-grow, that neighbor patch is colonized.
The code appears to generally match the ODD description. I am curious to know why we only ask specifically 4 surrounding neighbors on whether their patch is full or not when expanding.
grid-size
is increased, describe what you see in plot (A) and (B). Explain the patterns that you see.The curves begin to look more like a logistic curve. The second plot appears to show an upside down parabola, however it is not very symmetric. There appears to be less variation in the plot as the grid size increases.
The curve in plot B is an upside down parabola.
\[ P_{t+1} = P_{t} + aP^2_{t} - as^2P_{t} \]
The curve goes through the points \((0,0)\) and \((s^2,0)\), when the world is empty and when the world is full respectively.