ePlaice / For the Best Software on the Net

Mainly Free and Open Source Software

Graphics Navigation

Bezier Curves | Bifurcation Diagram | Lorenz Attractor |

Valid XHTML 1.1

Latest news

Sep 22: New beta version 4.0.2091 of Google Earth available which includes layer data for Japan.

Aug 28: Canon have released the latest EOS 400D digital SLR. I wish I had waited a bit before buying the EOS 300D!!

Links:

Bifurcation Diagram

Thumbnail example

he bifurcation diagram has its roots in biology when studying changes in population over a period of time. Instead of deriving equations and then making predictions about behaviour, the biologist had a wealth of data, but needed to derive equations that fitted the data. One way of achieving this objective was to look at equations over discrete time intervals (instead of trying to set up differential equations to describe a dynamic system) so that next years population was a function of last years population.

This can be described as :-
xnext = F(x) where F is some function of x (the population growth)
The simplest function is where the Function is a linear rate of growth, so that
xnext = rx where r represents the growth rate
However, it was soon realised that this took no account of the reasons why populations can decline, such as hunger and competition. What was needed was a term that caused the population to be self regulated. One way of achieving this is to to set up an equation thus :-
xnext = rx(1-x) which causes the population to stay within bounds since as x rises, the term (1-x) becomes smaller. This equation was quickly found to have uses and became known as the logistic differentiation equation. Biologists were impressed that it could produce a steady state solution after a number of iterations. One or two people noted that it could produce some strange results, but it had to await the invention of computers before the full properties of this very simplistic looking equation became known. See next paragraph as to how this equation can be plotted for different values of r.

Mathematical Basis

We have already discussed the simple function to plot for values of r
xnext = rx(1-x), which in Euler notation becomes :-

function f(x, r)
return r*x*(1-x)
endfunction

Then we can use a standard Euler function fwebplot to plot the results for various values of r. For example when r = 2.9, and in general for values of r less than 3 the function converges nicely.

Plotting


fwebplot("f(x,r)",0,1,0.5,20) plots an iteration of f(x, r) on [0,1] starting at 0.5 for 20 iterations. As you can see this converges quite nicely.

We can now use Euler to try to display all limit points for various values of r.
The function f is iterated, starting from 0.5, 1000 times, and we take the the last 500 iterations.
>r=2.5:0.005:4;
>x=0.5*ones(size(r));
Note: The niterate function is given an additional argument r.
>h=niterate("f",x,1000;r); h=h[500:1000];
>style("m.");
xmark is a bit slow for that many points.
>xmark(r,h); wait(20);

Some Interpretations

A good starting point is "Chaos" by James Gleick published in 1998 by Vintage paperbacks. There is a lengthy description of the history of the bifurcation diagram including the contribution of the biologist Robert May. Bifurcation or splitting shows that for some values of r up to about 3, the population reaches a steady state after a number of iterations (years). For values above 3 it oscillates between 2 values and then at 3.45 it splits again and oscillates between 4 values. Then at values above 3.53 chaos sets in and the population swings wildly, seemingly at random. Points to note, are that at even higher values there are some regions of stability. Despite the simplicity of the equations, the surprising thing is that this demonstrates quite well how actual populations rise and fall over the years. These equations also show how vaccines work on actual populations; where sometimes the disease grows at first following vaccination instead of declining in an ordered fashion.