### Population Growth in Hyperbolic Space with Geometric Algebra

While looking for nails for my hammer (hyperbolic space with GA) I found population growth models and noticed they can be modeled exactly like Special Relativity.

#### Logistic Growth Model

Population growth is often modelled as logistic growth. The intuition is that a population denoted by$P$first grows exponentially over time. Eventually the population runs into constraints such as space or food, so it will approach some maximum population. The maximum population is called the carrying capacity and is denoted by$K$. Furthermore the population's growth rate is denoted by$r$. For an exponential function the growth rate would tell you over what timespan the population doubles. This is true here initially until the population runs into the constraints.
The usual formula for the population over time given the carrying capacity and growth rate is
$\begin{array}{}\text{(1)}& P\left(t\right)=\frac{K}{1+\frac{K-P\left(0\right)}{P\left(0\right)}{e}^{-rt}}\end{array}$
Figure 1 - Population growth modelled with the logistic function for K=1000, P(0)=500, r=2.

#### Rewriting the population equation

If we now define the population at$t=0$to be half the maximum carrying capacity, meaning$P\left(0\right)=\frac{K}{2}$, equation$\text{(1)}$simplifies to
$\begin{array}{}\text{(2)}& P\left(t\right)=\frac{K}{1+{e}^{-rt}}\end{array}$
Now the key part which is also the reason why I started looking at population growth in the first place: equation$\text{(2)}$contains the sigmoid function which is just an offset and rescaled version of the$\mathrm{tanh}$function. If you are into Machine-Learning you might already be familiar with this. The sigmoid function$\sigma \left(x\right)=\frac{1}{1+{e}^{-x}}=\frac{\mathrm{tanh}\left(x\right)+1}{2}$.
The$\mathrm{tanh}$function is interesting because it pops up in Special Relativity and Hyperbolic Space. With this, equation$\text{(2)}$can be rewritten to
$\begin{array}{}\text{(3)}& P\left(t\right)=\frac{K}{2}\left(\mathrm{tanh}\left(rt\right)+1\right)\end{array}$

#### Relation to Special Relativity and Hyperbolic Space

In the GA treatment of Special Relativity we convert relative spatial velocities$v$to hyperbolic angles$\phi$using the equation
$\begin{array}{}\text{(4)}& \mathrm{tanh}\left(\phi \right)=\frac{v}{c}\end{array}$
We can compare this to our population growth model. Let's solve equation$\text{(3)}$for the$\mathrm{tanh}$term.
$\begin{array}{}\text{(5)}& \mathrm{tanh}\left(rt\right)=\frac{2P}{K}-1\end{array}$
We can now define$\phi =rt$to get the analogue of equation$\text{(4)}$for logistic population growth.
$\begin{array}{}\text{(6)}& \mathrm{tanh}\left(\phi \right)=\frac{2P}{K}-1\end{array}$
From here on, we can do everything exactly like we did in Special Relativity. Instead of the four basis vectors${e}_{t}^{2}=+1,{e}_{x,y,z}^{2}=-1$we have two basis vectors${e}_{1}^{2}=+1,{e}_{2}^{2}=-1$. Instead of velocity vectors, we have population vectors.
In Special Relativity, the angle of the velocity vector was related to the spatial velocity. In Population Growth, the angle of the population vector is related to the population.
In Special Relativity, velocity vectors in the${e}_{t}$direction correspond to velocities at rest. In Population Growth, vectors in the${e}_{1}$direction correspond to the population at$t=0$which we defined to be$\frac{K}{2}$earlier.

#### Population Growth Rotors

In Special Relativity we had rotors to change our velocity vectors (ie. accelerate / decelerate the spatial velocity). In Population Growth we have rotors that can change our population vectors (ie. increase / decrease the population). Concretely, the rotor is
$\begin{array}{}\text{(7)}& R={e}^{-\phi /2{e}_{12}}\end{array}$
and applying such a rotor to${e}_{1}$yields
$\begin{array}{}\text{(8)}& v=R{e}_{1}\stackrel{~}{R}=\mathrm{cosh}\left(\phi \right){e}_{1}+\mathrm{sinh}\left(\phi \right){e}_{2}\end{array}$
In Special Relativity, the vector approaching a 45° angle means approaching the speed of light. Here, the vector approaching a 45° angle means approaching the carrying capacity (or zero in the negative direction).

#### Example

We use the following constants:
• Carrying capacity$K=2000$
• Growth rate$r=2$
Our initial population is then${P}_{1}\left(0\right)=\frac{{K}_{1}}{2}=1000$.
Let's say we apply a rotor that takes us from our initial population of$1000$to$500$more, that is, we apply the rotor${R}_{2}$
$\begin{array}{}\text{(9)}& {v}_{2}={R}_{2}{e}_{1}\stackrel{~}{{R}_{2}}=\mathrm{cosh}\left(\phi \right){e}_{1}+\mathrm{sinh}\left(\phi \right){e}_{2}=\mathrm{cosh}\left({\mathrm{tanh}}^{-1}\frac{2P}{K}-1\right){e}_{1}+\mathrm{sinh}\left({\mathrm{tanh}}^{-1}\frac{2P}{K}-1\right){e}_{2}\end{array}$
The resulting vector${v}_{2}$encodes the new second population of$1500$(from the point of view of the first population) which we could extract by solving for$P$.

#### Population is relative?

In relativity, if the vector were a velocity vector, we could think of it as the rest vector of another observer. We can do the same here! If we choose$v$as the "rest vector" of another population, this other population would have their own initial population equal to$1000$again, because the carrying capacity is a constant just like the speed of light is. Now if this second population sees a population growth of$900$, we apply the rotor${R}_{b}$to${e}_{1}$from the second population's view.
How does this "look like" (analogue to changing basis vectors / perspectives in Special Relativity) from the first population? We can't just add$900$on top of the second population$500$as that would exceed the carrying capacity of${K}_{1}=1000$of the first population. Instead, we compose the two rotors to get
$\begin{array}{}\text{(10)}& {v}_{3}={R}_{3}{R}_{2}{e}_{1}\stackrel{~}{{R}_{3}{R}_{2}}\end{array}$
Which will yield a vector closer to the first population's carrying capacity but still less than it. Instead of composing the rotors and dealing with the vectors we can also just deal with the angles of the rotors. The angles just add. So we get
$\begin{array}{}\text{(11)}& {\phi }_{2+3}={\phi }_{2}+{\phi }_{3}={\mathrm{tanh}}^{-1}\left(\frac{2{P}_{2}}{K}-1\right)+{\mathrm{tanh}}^{-1}\left(\frac{2{P}_{3}}{K}-1\right)\end{array}$
and solving the angle for the population with equation$\text{(6)}$finally yields
$\begin{array}{}\text{(12)}& {P}_{2+3}=\frac{K}{2}\mathrm{tanh}\left({\mathrm{tanh}}^{-1}\left(\frac{2{P}_{2}}{K}-1\right)+{\mathrm{tanh}}^{-1}\left(\frac{2{P}_{3}}{K}-1\right)+1\right)\approx 485\end{array}$
which, when added to our initial population of half the carrying capacity, results in$500+485=985$which is slightly less than the carrying capacity.

#### Population is not relative!

Of course instead of saying the carrying capacity is constant, we could have also viewed the carrying capacity as changing between points of view. Then we always keep around some absolute scale, but the math works out identically I believe. The rotors then provide a sort of mapping between different populations and population changes in them.

#### Conclusion

We saw how logistic population growth can be modelled almost identically to Special Relativity in Geometric Algebra. Carrying capacity is like the speed of light. A population always approaches the carrying capacity. We can shift our perspective to populations with a different carrying capacity just like we shift perspective in Special Relativity to observers with a different velocity relative to us. We can see how a population growth in a population with one carrying capacity transfers to another population with another carrying capacity using boost rotors.
Whether this is useful at all I have no idea. But the math works out the same as for Special Relativity.