Instructions for the software **DesparatelySeekingChaos** to accompany
*Chaos Under Control: The Art and Science of Complexity*, W. H. Freeman,
1994, by David Peak and Michael Frame

Hardware requirements: Macintosh, 1MB of free memory

System requirements: System 7.0 or higher

© David Peak and Michael Frame

With **DesparatelySeekingChaos** we explore data analysis through four tools:
Driven IFS, Close Pairs, Kelly Plots, and Music.

From the **Option** menu we select one of IFS, Close Pairs, Kelly, and Music.
For all three options, we are presented with

* | a Display window on the left of the screen, |

* | a Param box, |

* | a Seed box, |

* | an Iter box, |

* | a Drop box, |

* | Max and Min boxes, |

* | a Run box, and |

* | a Plot (or Play, in the Music Option) box. |

For data generated by the Logistic or Tent maps,

* the Param box displays the parameter value of the function being iterated. To change this value, double click in this box, type the new value, and press return. Recall the parameter range is 0 to 4 for Logistic and 0 to 2 for Tent.

* the Seed box displays the initial value of the variable being iterated. For both Logistic and Tent, the seed range is 0 to 1.

In all types of data,

* the Iter box displays the number of points to be stored for analysis, and

* the Drop box displays the number of points generated before storing the set to be analyzed.

* the Run button generates the data set and computes the bin boundaries.

* the Plot (Play) button displays the data according to the option selected.

From the **Data** menu we select one of seven types of data to analyze:

* | the Logistic map, L(x) = Param*x*(1 - x), |

* | the Tent map, T(x) = Param/2 - Param*|x - 1/2|, |

* | Uniform Random, random numbers evenly distributed between 0 and 1, |

* | Normal Random, random numbers normally distributed, with the width of the distribution determined by Param. |

* | 1/f, Voss' method for generating an approximately 1/f distribution |

* | Brownian, x(i+1) = x(i) + rn, where rn is uniformly distributed between -param/2 and param/2. |

* | Homemade, a data set read in from a file saved as Text Only. When Run is clicked, a dialog box appears in which to select the file to be opened. In the file numbers can be separated by spaces, commas, or carriage returns. |

**IFS**

With the **IFS** option we coarse-grain the data set into four bins. The default
bins are defined by letting Max and Min denote the maximum and minimum values of the
data (these are displayed in the max and min boxes), and setting

bin 1: values between Min and Min + 0.25*(Max - Min)

bin 2: values between Min + 0.25*(Max - Min) and Min + 0.5*(Max - Min)

bin 3: values between Min + 0.5*(Max - Min) and Min + 0.75*(Max - Min)

bin 4: values between Min + 0.75*(Max - Min) and Max.

The Bin Boundaries box displays the value between bin 1 and bin 2, between bin 2 and bin 3, and between bin 3 and bin 4.

The default coarse-graining can be changed by double clicking one of these boxes, typing a new value, and pressing return.

Plotting the Driven IFS picture: Begin with the point (x_{0}, y_{0}) =
(0.5, 0.5) and generate a sequence of points (x_{1}, y_{1}),
(x_{2}, y_{2}), ... in the unit square, obtaining
(x_{i+1}, y_{i+1}) by applying one of the transformations

T_{1}(x,y) = ((x + v_{1})/2, (y + w_{1})/2)

T_{2}(x,y) = ((x + v_{2})/2, (y + w_{2})/2)

T_{3}(x,y) = ((x + v_{3})/2, (y + w_{3})/2)

T_{4}(x,y) = ((x + v_{4})/2, (y + w_{4})/2)

to (x_{i}, y_{i}), where (v_{1},w_{1}),
(v_{2},w_{2}), (v_{3},w_{3}), and
(v_{4},w_{4}) are the corners of the unit square,
(v_{1},w_{1}) the corner with 1 in the CORNER NUMBER box, and so on.
The default setting is (v_{1},w_{1}) = (1,1),
(v_{2},w_{2}) = (1,0), (v_{3},w_{3}) = (0,0), and
(v_{4},w_{4}) = (0,1).

Once the bins are defined, the data string is read again. Whenever a value
falls in bin j, T_{j}(x, y) is applied.

To change the corner numbers, double click in a corner number box, type the new corner number, and press return. Integers 1, 2, 3, or 4 are accepted. Entering swaps the number in the current box with that of the previous box containing the new number.

**Close Pairs**

With the Close Pairs option, we look for approximately periodic behavior in the sequence
of data points. Given the data set x_{1}, x_{2}, x_{3}, ...,
x_{N}, and a Filter Size d, plot a point at the location (i,k) if
|x_{i} - x_{i+k}| < d. To see the relation between this type of plot
and approximately periodic behavior, note that if x_{i} is near a k-cycle, then
x_{i} is close to x_{i+k}, and x_{i+1} will be close to
x_{i+k+1}, x_{i+2} will be close to x_{i+k+2}, and so on,
for a while. (If the k-cycle is unstable, as it will be for chaotic systems,
then points near the cycle will eventually diverge from it.) This leaves a
recognizable signature in the Close Pairs plot: dots plotted at (i,k), (i+1,k),
(i+2,k), ... . That is, an approximate k-cycle reveals itself as a horizontal band
of dots.

Plotting is done in the Display window, a 200 x 200 pixel window on the left of the screen.

In addition to the standard features, this option includes

* | a Singletons/No Singletons button, |

* | a Filter Size box, and |

* | a Dot Size box. |

With the Singletons/NoSingletons button we select whether or not to plot isolated points. Some of the dots plotted have nothing to do with values landing close to a cycle, but rather occur because the values happen to land near one another and then immediately move away. The No Singletons option does not plot isolated points, but only those with other points adjoining. This makes easier the task of detecting the horizontal band signature of chaos.

The current value of the filter is displayed in the Filter Size box. After generating the data, the default setting of the filter size is (Max - Min)/10. To change this value, double click on the filter value, type the new number, and press return. Points can be plotted from the same data with different filter sizes: simply change the filter size and click the Plot button.

With the Dot Size Selection we can choose 1x1 or 2x2 dots to be plotted. With 1x1 a 200 point data set can be represented; with 2x2 a 100 point set can be represented.

**Kelly**

With the Kelly Option, we look for correlations as indicators of determinism.
Inspired by Ellsworth Kelly's series of paintings Spectrum Colors Arranged by Chance
we use colors or patterns to represent the data set. Given a data set x_{1},
x_{2}, x_{3}, ..., x_{N}, with N ² 400, we coarse-grain the data
into ten bins in this way. Denote by Max and Min the maximum and minimum values of
the data (these are displayed in the max and min boxes). The default bins are

bin 1: values between Min and Min + 0.1*(Max - Min)

bin 2: values between Min + 0.1*(Max - Min) and Min + 0.2*(Max - Min)

bin 3: values between Min + 0.2*(Max - Min) and Min + 0.3*(Max - Min)

...

bin 10: values between Min + 0.9*(Max - Min) and Max.

The Bin Boundaries box displays the value between bin 1 and bin2, between bin 2 and bin 3, ..., and between bin 9 and bin 10.

The default coarse-graining can be changed by double clicking one of these boxes, typing a new value, and pressing return.

Once the bins are defined, the data string is read again. Whenever a value falls
in bin j, color or pattern j is painted in a box, where these boxes fill the Display
window from left to right, top to bottom.
From the **Color** menu, we select whether the squares are to be painted in color
(on color monitors, of course), or in Black & White patterns.

**Music**

The **Music** Option is an auditory version of the Kelly Option. Data is divided
into bins in the same way, and a musical representation of the signal is produced.
The sequence generated from the seed gives the note, that generated from seed/2 gives the
duration (with transition between durations occurring at the even bin boundaries).

The additional feature is the Voices box. Radio buttons select one or two voices. (Here the seeds are seed/4 for the notes and seed/8 for the durations of the second voice.)

Return to Chaos Under Control