Chaos Game

Logistic    Controls

 Auto Place Targets Custom Number of Target Points: Scale (0, 1]: Step Size (0-1): Iterations: Quick Draw: Display 'X':

Enable 'Custom' Above

Clear Targets

Place Targets

Go!

Go to infinity

Stop run to infinity

Reset

Save PNG

HELP!?

Chaos

"Chaos" is a common word, used to describe a hectic day or a disorganized group. So what's so special? What is there to learn? With a basic mathmatical understanding of chaos and probability one can begin to understand chaos and predict patterns. A classic example of randomness is the two-faced coin. When a coin is tossed there is a 50% chance that it will land on either heads or tails. A coin is tossed one thousand times and the results are graphed such that each toss is one unit on the x-axis. If a head is tossed then a point is placed one unit above the previous point, a tails thrown is one below (Yn = Xn-1 + 1 for heads, Yn = Xn-1 - 1 for tails). This graph can not increase with a slope greater to 1 or less than -1. This means that if you toss a coin 100 times there is only one way to get to (100, 100) on the graph - to get all heads. There are, however, 100 ways to get to (100, 98) - A tails for any of the coin tosses would yeild this result. With this one can determine the probibility of any rate of increase/decrease from any point on the graph.
The x-intercepts are influeced by the above principle - if a trend yeilds an increase to 10 units above the y=0, the graph can not reach 0 for at least 10 more units. The the further a point on y=0 is from the current point, the higher the chance will be that it will be an intercept. Consequently, a point 2 units above y=0 is much more likely to hit y=0 again soon than the one 10 above. This leads to clusters of intercepts.
The textbook from which I learned about chaos was entitled "Fractals: The Patterns of Chaos". A fractal is self-symetric, that is to say the fractal contains itself, and each copy within that contains the entire fractal, and so on and so on. For example, take the Cantor Set (a particular fractal); the 'template' is a one-unit line, a one-unit break, then a one-unit line (- -). Now, each of those lines is replaced with the line-break-line pattern. This yeilds: line, break, line, break, break, break, line, break, line (- -   - -) Each of those four lines is again replaced with the pattern, and so on. This creates 'groups' of points if repeated infinate times. At the highest level, the locations of the origional lines constitute groups since no points exist where the break is. No matter from what level one looks, groups of points exist where a line does at a higher level. Now consider the coin toss graph - as stated before, intercepts are probable to occur in clusters. If a coin is tossed a large number of times then groups might appear within groups. The intercepts don't form a fractal because each the clusters don't form in self-symetric groups. The connection will be explored more later.

Chaosgame

To start using Chaosgame to explore the patterns of chaos, lets start with a simple chaotic system. On the top left hand side of the page is a large white square, or the canvas. The canvas will contain the chaotic system. To control the system, there is a pannel of tools to use. To start with, use the default settings but change "Step Size" to '.03' (without quotes). This .03 represents 3% in decimal form. This number affects how far the red X jumps towards the red dot on the canvas. After each jump a new red dot, or 'target', is selected. To make the first jump, press "Go!" in the control pannel. Sure enough, the X jumps 3% of the way to the red dot from its previous location and a new target is selected. Pressing 'Go!' again will perform the same action. The X leaves a black dot in every location it lands on. If 'Go!' is pressed multiple times, a group of dots forms. To automatically iterate, press 'Go to infinity'. When the pattern is clear, press 'Stop run to infinity'.
The pattern that emerges is a fairly small blob of dots. Its size is relatively small because the closer it gets to any of the three points of the triangle the further back it will be pulled by eitheir of the other two targets - these two targets have a higher probability of being randomly selected than the same corner multiple times in a row.
To try a different percent, press 'Reset', type .07 into 'Step Size', and press 'Run to infinity'. As is expected, a larger region of points is created. Now try a 10% step size. To increase the speed at which the points are put down, check 'Quick Draw'.
The larger the percentage step size, the more of the triangle is filled and more triangular the shape becomes. Because there is no point outside of the perimiter of the triangle the X will never leave the triangle, but a larger step size allows the X to get closer to any point in few jumps before it is pulled away.
Try a 50% step size (0.5) - WHAT?! This fractal that is created is called Sierpinski's Triangle. To understand where this fractal appaered from, you need to understand some aspects of this fractal. To craete it, an equilateral triangle is drawn and shaded in. Then, the midpoints of each triangle are connected to form a triangle inside the larger triangle. The insides triangle is removed, leaving three smaller triangles. Each of these three smaller triangles has its inside removed making the entire remaining shape nine small triangles. This process continues, creating the fractal. It can easily be shown that any point within the triangle is removed with enough iterations of removal of triangles unless it is the corner of a smaller triangle. (pick a corner of the entire fractal, represented with a red or blue dot. If you imagine the cutting-away process described earler, you can see how the cut away space gets closer to that point each time, but there is always shaded area on the top of the remaining triangle at the point)
How then were points placed by the Chaosgame? Well, the first point placed was half way between the center of the figure and one of the three corners. This means that one of the second largest removed triangles (of which there are three) contains a point. However, once a point is placed in that size triangle, there is no way to place another point in that size triangle. This applies to every size removed-triangle. A point may appear in any size only once. Each iteration brings the point closer to the set of points which make up the corner of every one of the infinate triangles. The apparent shading of the fractal is created by the fact that a point in the mathmatical sense has no area, but the Chaosgame shades a pixel to show the pattern which does indeed have area.

Other Fractals

Try setting 'Number of Target Points' to four (4) and iterating to infinity. The square begins to be shaded in. Now, reset and set step size to two thirds (type '2/3' with no quotes). Voila! A fractal! This one is known as Sierpinski's carpet. The pattern that is appearing is that copies of the origional shape appear at the target points. To test this, place targets between each of the existing targets by selecting 'Custom' instead of 'Auto Place Points'. Then choose 'Place Targets' and click where you want the new targets. Once placed, there should be 8 targets in total. Once you run to infinity for a while, the shape becomes apparent with a child at each of the points you placed. Any imperfections in the placement of the points is apparent at the hightest level, as well as in lower levels because this fractal is indeed self-symetrical.

Controls

The best way to learn with this program is to explore! Here is a list of all of the buttons in 'Controls' and what they do:
• Auto Place Targets/Custom - Switch between creating calculated targets or manually placing targets
• Number of Target Points - If target points are automatically generated, how many to make
• Scale - Change the proximity of the automatically placed target points
• Step Size - Jump size between current point and next target point in percent
• Iterations - How many points to calculate when you press Go!
• Quick Draw - Calculate infinate runs more quickly (by a lot)
• Display 'X' - Display the red X on the canvas and highlight the current target point
• Clear Targets - If set to 'custom', will remove all target points from the canvas
• Place Targets - Place target points on the canvas (inside the black box) by clicking
• Go! - Iterate as many times as are input with Iterations
• Go to infinity - Iterate until a manual stop
• Stop run to infinity - Stop a run to infinity
• Reset - Remove points on the canvas (target points are unaffected)