A population of \(n\) parthenogenic cats increases from one generation \(g\) to the next \(g+1\) by a factor determined by the cats’ friskiness \(z\):

\begin{equation*}
n_{g+1} = z n_g
\end{equation*}

\begin{equation*}
n_{g} = z^t n_0
\end{equation*}

Unfortunately for the cats, the world can only support a total of \(C\) cats, and as the number of cats \(n\) closer to the cat carrying capacity \(C\), cats begin to die . Thus, the equation above is only true when cats are very rare, otherwise:

\begin{equation*}
n_{g+1} = z n_g - o n_g (C - n_g)
\end{equation*}

Let \(r =\)

\begin{equation*}
x_{t+1} = r x_t ( 1 - x_t )
\end{equation*}

where \(x\) is the density of the cats and \(r\) is their friskiness.

We’ll start the program with a big loop to try a bunch of different friskinesses to see how the population of cats does:

r = 2.5 while r < 4: r = r + 0.001

On year 0, the cats will only be at 1% of their maximum density:

year = 0 x = 0.1

The cat population model:

while (year < 101) and (x > 0): year = year + 1 x = r * x * (1 - x) print (str(r) + " " + str(x))