%matplotlib inline
from modsim import *
system = System(t0=0,
t_end=10,
adult_pop0=10,
birth_rate=0.9,
death_rate=0.5,
juvenile_pop0=0,
mature_rate=0.33)
system
def run_simulation(system):
"""Runs a proportional growth model.
Adds TimeSeries to `system` as `results`.
system: System object with t0, t_end, p0,
birth_rate and death_rate
"""
juveniles = TimeSeries()
juveniles[system.t0] = system.juvenile_pop0
adults = TimeSeries()
adults[system.t0] = system.adult_pop0
for t in linrange(system.t0, system.t_end):
births = system.birth_rate * adults[t]
deaths = system.death_rate * adults[t]
maturations = juveniles[t] * system.mature_rate
adults[t + 1] = adults[t] + maturations - deaths
juveniles[t + 1] = juveniles[t] + births - maturations
system.adults = adults
system.juveniles = juveniles
run_simulation(system)
system.adults
def plot_results(system, title=None):
"""Plot the estimates and the model.
system: System object with `results`
"""
newfig()
plot(system.adults, 'bo-', label='adults')
plot(system.juveniles, 'rs-', label='juveniles')
decorate(xlabel='Season',
ylabel='Rabbit population',
title=title)
plot_results(system, title='Proportional growth model')
