## Chaos Theory

Chaos theory is the study of dynamical systems that are highly sensitive to initial conditions. So, a chaotic system is one in which small changes in initial conditions result in large variations in outcomes. Weather is one example of a chaotic system. At the 139th meeting of the American Association for the Advancement of Science in 1972, Philip Merilees presented a talk titled *Does the flap of a butterfly’s wings in Brazil set off a tornado in Texas?* The hypothesis is that the beating of a butterfly’s wings could create tiny changes in atmospheric conditions that may alter the path of a tornado, or accelerate, delay or prevent a tornado elsewhere.

There are many more examples of chaotic systems:

- Lorenz Attractor;
- Weather Forecasting;
- Double Pendulum;
- Three Body Gravitational Problem;
- Randomly Oscillating Magnetic Pendulum;
- Game of Life;
- Billiards on an Oval Table (Bunimavich Stadium);
- Dripping Honey;
- A Dripping Faucet;
- Smale Horseshoe;
- Traffic Flow;
- Organizational Behaviour;
- Shifts in Public Opinion; and,
- Epidemics.

More information on chaotic systems and the butterfly effect are available on the following web pages and lectures:

## Fractals

Many chaotic systems display fractal behaviour. A fractal is an infinitely complex pattern that is self-similar at different scales of magnification. A fractal is created by repeating a simple process over and over in an ongoing feedback loop (*from What is Chaos Theory?*). There are many physical and mathematical examples of fractals; physical examples include:

- Snowflakes;
- Ferns;
- Ice crystals on a window;
- Romanesco Broccoli;
- Pine Cone Seeds;
- Tree Branches;
- Mountains;
- Rivers; and,
- Leaves

to mention but a few.

There are also many mathematical examples of fractals, a few of which we will explore in a program called ChaosExplorer and the next several posts. Note that many or all of the examples have been programmed elsewhere; the difference between ChaosExplorer and the other programs is that ChaosExplorer is an OpenGL program that performs the mathematics in the fragment shader in the GPU; most other programs perform the mathematics in the CPU.

There are both advantages and disadvantages to doing the calculations in the GPU. These will be discussed in the post on the Mandelbrot Set as it is easier to show examples than to simply list them.

Pingback: Multibrot Sets | Using C++