Last updated: 05.11.2000


This applet plots the output of a function called the Verhulst function. This function was originally developed to model the growth of a population (i.e. of animals), where the size of the population at any given point in time depends on two factors: the previous size of the population, and a constant called 'r'. The function itself is very simple. It is:

x = (x + (r * x * (1.0 - x)))

The applet shows a graph derived from repeatedly applying the function and plotting the results using different values of 'r'. The population size 'x' is shown on the vertical axis, and the value of 'r' is shown on the horizontal axis.

For small values of 'r', the function is relatively well-behaved - the population size remains constant. As 'r' increases, the population size starts to oscillate first between two values, then between four, then eight and shortly thereafter it explodes into chaos, with the population size changing unpredictably. For slightly higher values of 'r', the range of variation may once again oscillate between a small number of values, before returning to chaos again at slightly higher values. These 'stable periods' in the range of 'r' show as white 'windows' in the noisy black mass of the function: an interesting feature of the system is that if the chaotic regions are inspected closely (i.e. by examining values of 'r' in a narrow range), they are found to have non-chaotic regions within them. In other words, the pattern formed exhibits self-similarity, a characteristic property of fractals.

Java Applet

The applet is designed to permit interactive exploration of the Verhulst function. To plot the function, click the 'Run' button. You can specify the range of values of 'r' that you want by typing numbers in the top two number fields, 'start' and 'end'. In this way you can inspect different parts of the range in greater detail.

The lower number fields determine the number of iterations of the function that should be plotted. When a plot is made, the function is called a few times to allow the population to settle down; a specified number of population values are then calculated and plotted. The number fields 'settle' and 'plot' determine the number of times the function is called without plotting ('settle') and then the number of times the function is called with results plotted ('plot'). Setting both of these values to low numbers and then progressively increasing the values for one or the other produces some interesting results.

The 'shade' checkbox colors the output according to the number of values plotted at each population size. This can sometimes help to make structure clearer.

I don't know what it all means, but it's certainly pretty ...

* Documentation and Sources

Note: because of bugs in the Java implementation in some recent versions of Explorer, this applet may not display correctly on this page. Try viewing it through the applet tester instead. Note also that as it is a Java 1.1 applet, it will not run at all on some Netscape browsers, which only implement Java 1.0. See the note on compatibility.