Español | English 

Can the future be predicted?

At some point you may have heard the saying "future is already written" and you might have wondered what truth is on it. Determinism philosophy holds that all events, of any nature, are inevitably determined by previously existing occurrences in an unbroken chain of successions "cause-effect..."

Regarding this and being said chain of successions invulnerable, it is logic to think of the future as predictable. Sometimes, with just a little observation and common sense we can achieve true conclusions, though other times we need complex formulas with multiple parameters to reach a shallow approximation to the reality. Take the weather as an example-it is a phenomenon that can be predicted with high accuracy in short term, but long term predictions are irremediably imprecise. Why is that so? Let's find out with a simple example:

Imagine a planet with just two species: one animal and one vegetable. The vegetable specie serves as food to the animal one. As the animal specie has no predators, its growth rate would basically depend on the birth of new individuals, the death of old individuals and, in extreme, the lack of vegetable nourishment.

Suppose the initial population of animals is thirty individuals and, after one year studying the ecosystem we observe that the number grows up to thirty six. That makes the annual growth rate increase by twenty percent: (36 - 30) / 30 * 100 = 20%.

30 + 20% = 36 --> 30 * (1 + 20 / 100) = 36


Represented in a function we have Xn = qXn-1 where Xn is the population of a certain year which has been calculated with the population of the previous year Xn-1 which has the growth rate index q applied.

q = (1 + 20/100) = 1.2

X1 = qX0 --> X1 = 1.2*30 = 36


Supposing the growth rate is constant, we could calculate how the population would progress along the time and represent it in a diagram:

First year: X1 = 1.2*30 = 36

Second year: X2 = 1.2*36 = 43.20

Third year: X3 = 1.2*43.20 = 51.84...

Progress of a population

Relation between the poblation of a determinated year in the Xn axis in relation to the previous year in Xn-1 axis with a 20% growth index.


As we can see the population grows when the years go by, what indicates that the ecosistem model is not valid, because there would be a time when the food would start to run out and the animals' population would be resented. This situation is because the function we would use is lineal as we can see in the next graphic:

Lineal growth

Final population in X1 axis that comes when applying the 20% growth index to different values of initial population in axis X0. The steep line represents the rhythm of change given by the growth index.


In order to incorporate the problem with food in the function we have to create an index that reveals the possibilities that an animal will have to eat, therefore it regulates the population growth index.

From now on we will work with more handy values using fractions between 0 and 1. Value 1 represents the biggest number of individuals and value 0 represents the extinction of the specie.


Given that the animal population can reach a maximum were all vegetables are eaten, we can deduct that the quantity of available vegetables is proportional inverse to the number of animals that are fed from them.

We can represent this equilibrium as Y = 1 – X, where Y is the quantity of vegetables and X is the quantity of animals. If the number of animals rises to its maximum level X = 1, they will eat all the vegetables Y = 1 – 1 = 0, in the other hand, if the number of animals decreases till its extinction X = 0, vegetables will proliferate till their maximum level Y = 1 – 0 = 1.

Assuming that if there is no food the animals will extinct, we can incorporate the expression Y = 1 – X to the function as survival index: Xn = qXn-1(1 – Xn-1).

With this modification we will get a non-lineal function:

Non-lineal growth

The final population in the X1 axis that is obtained when applying the 20% growth index to different values of initial population in the axis X0.


In the graphic we can observe how the population only can grow to certain point. When it reaches the 50% there will be enough food in order to the 30% of the population to survive.

Now, with the function Xn = qXn-1(1 – Xn-1), we are going to calculate the progress of the population year a year. In order to do this we fix the initial value of the population in 0.1 and the growth index at 60%: q = (1 + 60 / 100) = 1.6.

table of progress with a stable value at 23 years


As we can see, after 23 years the final population reaches the stable value of 0.375. Is this casualty? Let's see what happens with different values of initial population, 0.3 and 0.5 for example:

table of progress with a stable value at 19 years  table of progress with a stable value at 18 years


The population reaches the same figure at the end! In the case of an initial population of the 0.3 is after 19 years, whereas in the case of the initial population of the 0.5 is after 18 years. This makes us believe that once stablished the growth index, the population has a "written future" independently of the number of subjects that belong.

Let's see now an example of the extinction of a specie. In order of this situation to happen the growth index has to be negative so the truth q < 1 applies. For example, if we fix it at -60%, we have q = (1 – 60/100) = 0.4. As we know, the initial value of the population only influences the time for the destiny to happen. For this example we will fix it at 0.3:

table of progress with extinction


After 20 years the population is extinct. But this function hides much more, let's see what happens if the population multiplies itself very fast with a 220% and a 250% growth index:

table of progress with period 2  table of progress with period 4


A periodic behaviour takes place! In the first case there are 2 values for the population that change year after year repeating every two years, and in the second case there are 4 values that change year after year every 4 years.

If we continue rising up the growth index we observe that periods of 8, 16,... years take place, so on till reach a special point where the function starts to behave in a chaotic way. For example, with a 260% index, the final values of the population are different every year without periodicity, actually they change in a sequence that seems aleatory.

As consequence of the no periodicity, the initial value of the population is determinant year after year for the calculi of the final population, so if we change only one decimal we will make the final sequence to change as well.

Let's see the differences in the final population when it changes from 0.5 to 0.5001:

table of chaotic progress with an initial population of 0.5  table of chaotic progress with an initial population of 0.5001  table of difference between chaotic progresses


We can represent the periodicity of a function in a graphic that relates the growth index with its possible values of a final population:

Bifurcation diagram

Final population in axis X1 that is obtained after applying different growth index in the axis q to the initial population.


Analysing the graphic we can see that:

  1. Extinction zone for values q between 0 and 1.
  2. Stationary zone for values q between 0 and 3
  3. Periodic zone for values q between 3 and 3.56.
  4. Chaotic zone for values q above 3.56.
  5. Interruptions in the chaotic zone by small periodic zones.


Let's zoom in one interruption in the chaotic zone:

Bifurcation diagram

Zoom in a bifurcation


As we can see in the image, the interruption is occasioned by a change of behaviour where the function starts over to its periodicity. At the same time we see small vertical zones in white that we couldn't see before and that also represent periodic zones. The chaotic zone is full of black and white spots because the function has iterated 512 times, but if we would rise the number of iterations we would see it completely black, due to all possible values for a final population for the same growth index will show after all.
As we appreciate, this graphic has a clear fractal structure, what reveals the relation between the order and the chaos: the bifurcations end in other bifurcations, smaller this time, and this so on till they disembogue in the chaos, what is a new origin for new bifurcations self-similar.


Now that we know the behaviour of a non-lineal function, let's go back and talk about the weather forecast: imagine that the weather index are in a chaotic region, and the temperature of the air is a parameter of the formula that we have to measure in order to introduce it. If the measurement has a small range of error (given by the own thermometer features) the weather forecast will be altered, more so in the long term where the range of error will rise up uncontrollably.

To finalise, imagine a system which index move in a periodic zone. Fpr example, suppose the average health of a person is an index that regulates the pumps of their heart. Meanwhile a person keeps a healthy life their health will keep their heart pumping at an adequate rhythm of ppm. If the subject experiments an extreme situation, the ppm will rise up, but the health index, which is not altered, will act as a regulator agent in order to correct the rhythm till its periodic level. If the health index hadn't been the appropriated, the heart could have gone into an arrhythmia or a chaotic behaviour.

cavernman marked

Add to favourites | Go to menu | Contact

What to see next?
If you want to view examples about how a parameter perturbation can produce big changes you can visit the gallery of random Julias.
Chaotic behavior
Fractal animation
Fractfinder TV
Fractal image
Hypnotic (Virginia CT)
Hypnotic (Virginia CT) (Steffensen - Inverso)
Gallery of users
« Algunas veces me considero un pescador. Los programas de ordenador y las ideas son mis herramientas, cañas y redes. Los gráficos que aparecen en mi pantalla son trofeos y deliciosas mieles »
Escritor en los campos de la ciencia y las matemáticas Clifford A. Pickover
Currently 5, today 336, total 570.076
Secure web site    HTML code validated    CSS code validated
Developed with Notepad ;)