Archive

Monthly Archives: September 2012

Randomness is hard to come to terms with. Humans have long sought explanations for all of the uncertainties in life. Typically these random events have been assigned either to the gods or to personal fortune. Even the great mathematician and all-round character Girolamo Cardano, who made some of the earliest advances with probability theory, put much of randomness in dice games down to the players’ luck.

The development of Newtonian physics and causality led inevitably to a deterministic explanation of these apparently random events. Determinism tells us that everything happens for a reason, that every event is caused by something, that there is no true randomness – just stochasticity generated by a set of fundamental rules.

We can find examples of this in mathematics. The decimal expansion of pi, which starts 3.141593… is infinite and its digits are (apparently) random. Here’s a random walk plotted using the digits of Pi:

These numbers look and feel random, as random as anything in nature, but they are far from it. We have the simple set of rules to calculate Pi and it always comes out the same!

This idea of a deterministic cause of apparent randomness is, of course, well acknowledged in ecology. It’s the basis for Bob May’s great work on chaotic behaviour in population dynamics. The core idea of this work is that given certain conditions even really simple population models can show apparently random fluctuations (code at the end):

So is this what happens in ecology and everything else; a set of simple rules generates a very complex, but fundamentally non-random, universe?

The next post in this series will take a look at quantum uncertainty and a potential source of true randomness in mathematics.

Here’s some R code for the logistic map:

logisticMap <- function(start = 0.4, n = 100) {
	result <- vector(length = n)
	result[1] <- start
	for (i in 2:n) {
		result[i] <- 4 * result[i - 1] * (1 - result[i - 1])
	}
	result
}

plot(logisticMap(), type = 'l', lwd = 3, bty = 'n')

Created by Pretty R at inside-R.org

Advertisements