Thursday, November 19, 2009

Chaos from life

I really like the Logistic equation. It comes in a couple useful forms, the simplest is the iterative form that can be used to model a time discrete biological population.For instance if one has a population that produces new members at a rate “r” of the current population we can generate the new population by iterating the equation:

Where an+1 is the next years population, spawned from this years. “r” is obviously the fertility rate (or better the “fecundity” rate) . This equation just demonstrates an ever expanding population. Lets assume that there is an upper limit to the population given by some constant like “K”. Then one model of the population is given by the logistics equation:

In order to make it simpler I can define A=a/K or simply set K to 1 (which may appear weird, setting a population maximum to 1, but I can use units like “metric tones of wheat” or “boxcarloads of bunnies” so the maximum population of 1 represents more that one individual). This gives me the super simple equation:

This is the equation of a parabola. To show it is nothing special here is a plot of it. I choose a few different values for r to give a feel for what it does. It is no less elegant than any parabola.

We cannot get this equation to do interesting things until we begin using it iteratively.

What I mean by this is that we use the output of running the equation as the input of running the equation again. We do this over and over and see what happens. If we choose r-2.9 the iterations look like this:

If I clean off the first 500 iterations you can see that the oscillations shown in the fist graph have settled down to a single value. If I choose a value less than 2.d the iterations also settle down to a single number. With decreasing values for r this number decreases to 0 at r=0.

If I choose a value for r slightly higher than 3 this is what happens.

That’s right we get a stable oscillation between two values.

If I choose r=3.5 I get four values like in this graph:

If I choose an r=3.7 a bizarre thing happens here is the graph for the first 100 iterations:

It almost looks like there could be oscillations settling down to a pattern. If I just plot the iterations after say 100 you can see that they apparently do not.

This is cool. In fact there is an infinite level of complexity here. If I vary r from 0 to 4 and plot the values obtained for 100 iterations after iterating the function 1000 times I would get a picture like this.

I can stare at this picture for hours. Look at the areas where order appears to peek out of chaos. Is this a metaphor for life from the plot of an equation that rustically describes life? What about those apparent lines in chaos? I love to blow up the picture and look at the bits of it. The more it is enlarged the more complexity it reveals.

Part of the cool thing about this is that if people used the generally available computation methods available when I was born (slide rules!) then a person calculating this picture would only recently have finished. This is a pattern almost unknown to previous generations. Now one can buy a t-shirt with it printed on it.

No comments: