Population Growth in Hyperbolic Space with Geometric Algebra

This article is a quick introduction to population growth models. But what a strange title. What does population growth have to do with hyperbolic space?
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 byPfirst 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 byK. Furthermore the population's growth rate is denoted byr. 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
Figure 1 - Population growth modelled with the logistic function for K=1000, P(0)=500, r=2.
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 att=0to be half the maximum carrying capacity, meaningP(0)=K2, equation(1)simplifies to
Now the key part which is also the reason why I started looking at population growth in the first place: equation(2)contains the sigmoid function which is just an offset and rescaled version of thetanhfunction. If you are into Machine-Learning you might already be familiar with this. The sigmoid functionσ(x)=11+ex=tanh(x)+12.
Thetanhfunction is interesting because it pops up in Special Relativity and Hyperbolic Space. With this, equation(2)can be rewritten to

Relation to Special Relativity and Hyperbolic Space

In the GA treatment of Special Relativity we convert relative spatial velocitiesvto hyperbolic anglesφusing the equation
We can compare this to our population growth model. Let's solve equation(3)for thetanhterm.
We can now defineφ=rtto get the analogue of equation(4)for logistic population growth.
From here on, we can do everything exactly like we did in Special Relativity. Instead of the four basis vectorset2=+1,ex,y,z2=1we have two basis vectorse12=+1,e22=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 theetdirection correspond to velocities at rest. In Population Growth, vectors in thee1direction correspond to the population att=0which we defined to beK2earlier.

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
and applying such a rotor toe1yields
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).


We use the following constants:
  • Carrying capacityK=2000
  • Growth rater=2
Our initial population is thenP1(0)=K12=1000.
Let's say we apply a rotor that takes us from our initial population of1000to500more, that is, we apply the rotorR2
The resulting vectorv2encodes the new second population of1500(from the point of view of the first population) which we could extract by solving forP.

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 choosevas the "rest vector" of another population, this other population would have their own initial population equal to1000again, because the carrying capacity is a constant just like the speed of light is. Now if this second population sees a population growth of900, we apply the rotorRbtoe1from 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 add900on top of the second population500as that would exceed the carrying capacity ofK1=1000of the first population. Instead, we compose the two rotors to get
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
and solving the angle for the population with equation(6)finally yields
which, when added to our initial population of half the carrying capacity, results in500+485=985which 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.


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.