In the course of the series of posts I've been writing on fractals, several people have either emailed or commented, saying something along the lines of "Yeah, that fractal stuff is cool - but what is it good for? Does it do anything other than make pretty pictures?"
That's a very good question. So today, I'm going to show you an example of a real fractal that
has meaningful applications as a model of real phenomena. It's called the logistic map.
The logistic map is a way of describing the expectations about the size of a population which
is primarily bounded by limited resources. In a population like this, there are two factors which determine the population size and the rate of population growth. The first is the rate of reproduction; the second is the rate of starvation due to lack of resources. There's a bit of complexity that I'll handwave past: the rates of reproduction and starvation are coded together into a parameter r; calculating A value for r is a complicated thing, which is dependent on a huge number of factors about the environment and the species being analyzed.
So suppose we've got an r value for some species in some environment. We can easily determine what the maximum population is, based on how much resources (food) are present. With that, we can describe the population at any time t by a value between PT between 0 and 1 which represents the saturation of the species - the percentage of the maximum population that exists at time T.
Given an r-value, the population saturation at time T is described by a iterated function system:
PT+1 = rPT(1-PT)
For such a simple relation, this describes a very complex behavior, dependent on the value of r:
- If rT as T increases is 0.
- If r>=1 and r<3, the population will converge on a single value, r-1/r.
- If r≥3 and r<sqrt(6), the population will be bimodal - it will oscillate between two values, dependent on the specific value of r.
- If r≥sqrt(6) and r< 3.54, the population will be quad-modal: it will oscillate between
4 different values of r.
- As r gets larger in the range slightly greater than 3.54, it will oscillate between 8 values, then 16, then 32. T r-value range for each power of 2 is smaller that the range for the preceeding value.
- When r reaches roughly 3.57, all semblance of order disappears, and the system becomes
highly chaotic. (This is in the formal sense of chaotic: deterministic, but incredibly sensitive
to initial conditions; with a fixed r, tiny changes in the initial value of P0 create huge changes in the behavior.) Within this chaotic
region, there are places where there are stable oscillations, but they appear in what seem to be
- When r>4, the equation diverges - which means that it's not applicable for this kind of
So, what does this have to do with fractals?
You can plot a graph of the logistical function, where one axis is P-values, and one
is R-values. This graph is called a bifurcation map, which shows the values in
the oscillation sets for the R-value. If you plot this, it looks like the following example (copied from the Wikipedia entry on bifurcation diagrams):
It's a fractal. Plow down at progressively smaller regions, and it always maintains
near-perfect self-similarity. And even better - when you cross the line into the chaotic region,
fractals can be used to describe the chaotic behavior, which is pretty much intractable by
other methods. This is typical of many of the real applications of fractals: many natural dynamical
systems that diverge into chaotic behavior can be described using fractals.
Another excellent writeup. A while ago I got bored and wrote a Java applet to generate bifurcation diagrams.
And then I got really bored and made it generate audio from the same function.
Do fractals do anything other than generate pretty pictures?
Yes, they generate horrible noise as well!
You can try it yourself here:
Firstly, a big thankyou Mark for maintaining this blog.
Secondly, are you planning on extending this post on bifurcation to talk about period-doubling and Feigenbaum's constants? To me, that is the most amazing thing in all the study of chaotic systems: all* systems bifurcate at the same rate! Why on earth should that be so? Fascinating.
*at least, in a hand-wavy only-the-interesting-ones sort of way.
Andrew, that sounds absolutely amazing. I can't get the applet to work, though. When I open that link I just get a big white area with a little icon of a file with a red X on it in the upper left hand corner. I'm running firefox on a mac-- do you have any idea what might be happening?
what version of MacOS are you using? It was a while ago, but I think the applet requires Java 1.4, which may not be available on all versions of MacOS. Also, older versions of Firefox could not use the most up-to-date version of Java available, try using Safari to view the page to see if that helps.
Let me know if this suggestion fails to help; my email address is on the front page of my site.
Andrew, I tried it in Safari and it worked. That is really neat!
I'd be a little curious what some of these would sound like at a "higher resolution", i.e., stretched out longer than 30 seconds. If you don't mind me asking: how exactly did you generate the audio? Is the idea just that the image up top is directly interpreted as a spectrogram? What technique did you use to perform the conversion? (I've seen a handful of programs that converted audio samples to or from grayscale spectograms, but have never been quite clear on how they work.)
Glad you liked it. I should really improve the writeup on the page - basically you are right in guessing that the audio is generated by treating the image as a spectrogram (ie: the y axis is treated as frequency, the waveform at time x is the sum of all the waveforms generated by the function for x). The one complication is that the audio is generated from a much higher resolution plotting of the function than the one displayed on screen.
Also, the resulting audio is filtered slightly to make is sound a bit smoother. I do not have a background in audio engineering and used a very naive method of adding the waveforms together. This results in a lot of high frequency noise (even with the filtering) that is not in the original image, so the audio is technically only an approximation.
It is easy to generate a longer piece of audio, the image is fractal so there is more than enough data. I have tried it and it doesn't sound any better.
I believe that better audio synthesis techniques would produce a better sound, but not by very much. I had somehow got the notion that listening to a fractal would produce a wondrously melodic tone unlike anything heard before. When that stopped looking likely I basically gave up :)
Andrew, interesting, thanks.
I think the problem is that with that particular fractal, certain portions of the graph inherently will more or less "look" in the spectogram like uniform gray. By definition these portions will sound like white noise, which doesn't sound all that interesting... :) This might be a problem more with how the fractal is interpreted though than the idea of using the fractal to create a sound in the first place. I'd have to think about it...
Why on earth should that be so?
I'm not exactly sure, but organization from selfsimilar processes is connected to universal behavior for phase transitions.
Another specific example is the critical temperature for ordered magnet materials (ferromagnets, ferrimagnets, antiferromagnets), which < href="http://terrytao.wordpress.com/2007/08/20/math-doesnt-suck-and-the-chayes-mckellar-winn-theorem/">Terrence Tao discusses here.
It turns out that this critical behavior for simple model systems are connected to the critical behavior of site percolation which is easier to describe. And lo and behold, Tao notes that the system organizes in a a fractal structure close to this critical point.
This brings me back to my mathematical modeling class. Basically anything worth modeling exhibited chaotic behaviour. There were some very fascinated projects done in that class.
I just saw an interesting post on the mathematica blog:
It looks like, to increase the performance of the multiplication algorithm using the Karatsuba method, you do a what looks like fractal subset of the number of multiplications that you would in the naive method.
Dave: All systems bifurcate at the same rate? Not really. Some systems don't bifurcate at all and even if they do, most don't exhibit chaotic dynamics. Now there is some ambiguity as to the definition of chaos (I use Bob Devaney's) but it is still a special kind of behavior. Moreover we should be clear we are talking about discrete non-linear systems here. The continuous logistic equation behaves perfectly nicely.