Penny Growth
WHAT IS IT?
This model is a simple example of logistic growth.
HOW IT WORKS
Initially three pennies are randomly placed with in a circle. At each iteration every penny gives rise to a new generation of 8 pennies. The constraints are that only one penny can occupy a given spot and no pennies can be placed outside the circle.
HOW TO USE IT
Use the "setup" button to clear the screen and draw a new circle populated by three pennies.
Use the "generate" button to make a new generation of pennies.
The graph at the bottom of the screen shows a count of the number of new turtles at each generation (green) and the total number of turtles.
THINGS TO NOTICE
Notice that initially the total population grows exponentially, but eventually tails off to a constant value as the resources (screen space) is exhausted.
EXPLORATIONS
Does the circle size have an impact on the overall form of the growth curve ? What about the specific attributes of the curve,i.e., the rate of growth and the limiting population size.
THINGS TO TRY
Experiment with different circle sizes.
EXTENDING THE MODEL
Include a slider on for the initial population size.
Include a slider for the number of "offspring" at each generation.
Add a graph that show the percentage growth at each generation.
STARLOGO FEATURES
Graph and plot generation.
Drawing graphical objects (circles) using turtles.
Turtle procedures
turtles-own [new newheading]
to generation
setnewheading 0
if new = true
[repeat 8
[hatch [seth (newheading * 45) leap 1
if count-turtles-here > 1 [die]
if pc = white [die]
setc color + 10
]
setnewheading newheading + 1]
setnew false]
if count-turtles-here > 1 [die]
end
Observer procedures
to setup
ca
crt 1000
ask-turtles [
setc white
fd circle-size + 1
stamp color die
]
crt 3
ask-turtles [
setnew true
seth random 360
fd random circle-size
setxy int xcor int ycor seth 0
]
setup-graph
end
to generate
ask-turtles [
generation
if count-turtles-here > 1 [die]
]
graph
end
to setup-graph
pp1 ppreset setppc red
pp2 ppreset setppc green
setplot-title "Pennies"
setplot-yrange 0 20
setplot-xrange 0 20
end
to graph
pp1 ppu plot count-turtles
pp2 ppu plot count-turtles-with [new = true]
end
