Strange Attractors Creating Patterns in Chaos
Strange Attractors Creating Patterns in Chaos
net/publication/236269007
CITATIONS READS
83 16,012
1 author:
SEE PROFILE
All content following this page was uploaded by Julien Clinton Sprott on 15 June 2014.
by
Julien C. Sprott
Art and science sometimes appear in juxtaposition, one aesthetic, the other
analytical. This book bridges the two cultures. I have written it for the artist who is
willing to devote a modicum of effort to understanding the mathematical world of
the scientist and for the scientist who often overlooks the beauty that lurks just
beneath even the simplest equations.
If you are neither artist nor scientist, but own a personal computer for which
you would like to find an exciting new use, this book is also for you. Fractals
generated by computer represent a new art form that anyone can appreciate and
appropriate. You don’t have to know mathematics beyond elementary algebra,
and you don’t have to be an expert programmer. This book explains a simple, new
technique for generating a class of fractals called strange attractors. Unlike other
books about fractals that teach you to reproduce well-known patterns, this one will
let you produce your own unlimited variety of displays and musical sounds with a
single program. Almost none of the patterns you produce will ever have been seen
before.
To get the most out of this book, you will need a personal computer, though
it need not be a fancy one. It should have a monitor capable of displaying graphics,
preferably in color. Some knowledge of BASIC is useful, although you can just type
in the listings even if you don’t understand them completely. For those of you who
are C programmers, I have provided an appendix with an equivalent version in C.
You may find the exercises in this book an enjoyable way to hone your program-
ming skills. As you progress through the book, you will gradually develop a very
sophisticated computer program. Each step is relatively simple and brings exciting
new things to see and explore. Alternately, you can use the accompanying disk
immediately to begin making your own collection of strange attractors.
4
Strange Attractors
How to find them, those regions
Of space where the equation traces
Over and over a kind of path,
Like the moth that batters its way
Back toward the light
Or, hearing the high cry of the bat,
Folds its wings in a rolling dive?
—Robin S. Chapman
5
Chapter 1
Order and Chaos
This chapter lays the groundwork for everything that follows in the book.
Nearly all the essential ideas, mathematical techniques, and programming tools
you need are developed here. Once you’ve mastered the material in this chapter,
the rest of the book is smooth sailing.
One possible resolution was advanced in the early decades of the 20th
century when it was discovered that the quantum mechanical laws that govern the
behavior of atoms and their constituents are apparently probabilistic, which means
they allow us to predict only the probability that something will happen. Quantum
mechanics has been extremely successful in explaining the submicroscopic world,
but it was never fully embraced by some scientists, including Albert Einstein, who
until his dying day insisted that he did not believe that God plays dice with the
Universe.
Since the 1970s science has been undergoing an intellectual revolution that
may be as significant as the development of quantum mechanics. It is now widely
understood that deterministic is not the same as predictable. An example is the
weather. The weather is governed by the atmosphere, and the atmosphere obeys
6
deterministic physical laws. However, long-term weather predictions have im-
proved very little as a result of careful, detailed observations and the unleashing of
vast computer resources.
The reason for this unpredictability is that the weather exhibits extreme
sensitivity to initial conditions. A tiny change in today’s weather (the initial condi-
tions) causes a larger change in tomorrow’s weather and an even larger change
in the next day’s weather. This sensitivity to initial conditions has been dubbed the
butterfly effect, because it is hypothetically possible for a butterfly flapping its wings
in Brazil to set off tornadoes in Texas. Since we can never know the initial conditions
with perfect precision, long-term prediction is impossible, even when the physical
laws are deterministic and exactly known. It has been shown that the predictability
horizon in weather forecasting cannot be more than two or three weeks.
It’s not hard to imagine that if a system is complicated (with many springs and
wheels and so forth) and hence governed by complicated mathematical equa-
tions, then its behavior might be complicated and unpredictable. What has come
as a surprise to most scientists is that even very simple systems, described by simple
equations, can have chaotic solutions. However, everything is not chaotic. After all,
we can make accurate predictions of eclipses and many other things. An even
more curious fact is that the same system can behave either predictably or
chaotically, depending on small changes in a single term of the equations that
describe the system. For this reason, chaos theory holds promise for explaining many
natural processes. A stream of water, for example, exhibits smooth (laminar) flow
when moving slowly and irregular (turbulent) flow when moving more rapidly. The
transition between the two can be very abrupt. If two sticks are dropped side-by-
side into a stream with laminar flow, they stay close together, but if they are
dropped into a turbulent stream, they quickly separate.
Chaotic processes are not random; they follow rules, but even simple rules
can produce extreme complexity. This blend of simplicity and unpredictability also
occurs in music and art. A piece of music that consists of random notes or of an
endless repetition of the same sequence of notes would be either disastrously
7
discordant or unbearably boring. Likewise, a work of art produced by throwing
paint at a canvas from a distance or by endlessly replicating a pattern, as in
wallpaper, is unlikely to have aesthetic appeal. Nature is full of visual objects, such
as clouds and trees and mountains, as well as sounds, like the cacophony of excited
birds, that have both structure and variety. The mathematics of chaos provides the
tools for creating and describing such objects and sounds.
Chaos theory reconciles our intuitive sense of free will with the deterministic
laws of nature. However, it has an even deeper philosophical ramification. Not only
do we have freedom to control our actions, but also the sensitivity to initial
conditions implies that even our smallest act can drastically alter the course of
history, for better or for worse. Like the butterfly flapping its wings, the results of our
behavior are amplified with each day that passes, eventually producing a com-
pletely different world than would have existed in our absence!
Suppose you have some money in a bank account that provides interest,
compounded yearly, and that you don’t make any deposits or withdrawals. Let’s
let X represent the amount of money in your account. When the time comes for the
bank to credit your interest, its computer does so by multiplying X by some number.
With an interest rate of 10%, the number is 1.1, and your new balance is 1.1 X. If your
balance in the nth year is Xn (where n is 1 after the first year, 2 after the second, and
so forth), your balance in the year n +1 is
Xn +1 = R Xn (Equation 1A)
where R is equal to 1.0 plus your interest rate. (R is 1.1 in this example.)
After 50 years at 10% yearly interest, you will have $117.39 for every dollar you
initially invested. The bank can afford to do this only because of inflation and
8
because money is loaned at an even higher interest rate.
Now you’re going to get your first homework assignment. Take your pocket
calculator and start with a small value of X, say 0.1. To reduce the amount of work
you have to do, use a fairly large value of R, say 2, corresponding to a doubling
every year. Run X through Equation 1C a few times and see what happens. This
process is called iteration, and the successive values are called iterates. If you did
it right, you should see that X grows rapidly for the first couple of steps, and then it
levels off at a value of 0.5. The first few values should be approximately 0.1, 0.18,
0.2952, 0.4161, 0.4859, 0.4996, and 0.5. Compare your results with the unbounded
growth of Equation 1A.
You might have predicted the above result, if you had thought to set Xn+1
equal to Xn in Equation 1C and solved for Xn. This value is called a fixed-point
solution of the equation, because if X ever has that value, it remains fixed there
forever. Such a fixed-point solution is sometimes called a point attractor, because
every initial value of X between 0 and 1 is attracted to the fixed point upon repeated
iteration of Equation 1C. Try initial values of X = 0.2 and X = 0.8. A fixed point is also
9
called a critical point, a singular point, or a singularity.
If you’re curious, you might wonder what happens if you start with a value of
X less than 0, such as -0.1, or greater than 1, such as 1.1. You should verify that the
iterates are negative and that they get larger and larger, eventually approaching
minus infinity. We say that the solution is unbounded and that it attracts to infinity.
Thus the values of X = 0 and X = 1 are like a watershed. Between these values the
solution is bounded, and outside these values it is unbounded.
Equations that exhibit chaos have solutions that are unstable but bounded;
the solution never settles down to a fixed value or even to a repeating pattern, but
neither does it move off to infinity. Sometimes we say that such equations are linearly
unstable but nonlinearly stable. Small perturbations to the system grow, but the
growth ceases when the nonlinear terms become important, as eventually they
must. Another way to say it is that the fixed points are locally unstable, but the system
is globally stable. In this case initial conditions are drawn to a special type of
attractor called a strange attractor, which is not a point or even a finite set of points
but rather a complicated geometrical object whose properties constitute the
subject of this book.
Table 1-1. Iterates of the logistic equation for various initial values of X with R=2
n = 0 n = 1 n = 2 n = 3 n = 4 n = 5 n = 6
10
An equation, such as the logistic equation, that predicts the next value of a
quantity from the previous value is called an iterated map because it is like a road
map in which each point on the earth is mapped to a corresponding point on a
piece of paper. The logistic equation is a one-dimensional map because the
various X values can be thought of as lying along a straight line that stretches from
minus infinity to plus infinity. Each iteration of the map moves every point along the
line to a new position on the line. For the example above with R = 2, all the points
between X = 0 and X = 1 walk toward X = 0.5, where they stop and remain. Other
points run faster and faster toward the end of the line that stretches to minus infinity.
The first surprising result occurs if you iterate Equation 1C with R = 3.2 and an
initial value of X in the range of 0 to 1. After a few iterations the solution will alternate
between two values of approximately 0.5130 and 0.7995. This is called a period-2
limit cycle. Like the fixed point, the limit cycle is another type of simple attractor. It
is sometimes called a periodic or cyclic attractor.
It’s not hard to see how cyclic behavior might arise in nature. If the population
of beetles grows too large, they deplete the plants on whom they depend for food.
With too few plants, the beetles die out, allowing the number of plants to recover,
leading to the next cycle of beetle growth, and so forth.
Increase R a bit more to 3.5, and repeat the calculation. The result is a period-
4 limit cycle with four values of approximately 0.5009, 0.8750, 0.3828, and 0.8269. If
you keep increasing R by ever smaller amounts, the period of the limit cycle doubles
repeatedly, finally reaching chaotic behavior (an infinite period) at about R =
3.5699456. This value is sometimes called the Feigenbaum point, after Mitchell J.
Feigenbaum, a contemporary mathamatician who discovered many of the inter-
esting properties of one-dimensional maps.
11
When chaos occurs, the successive iterates fluctuate in an apparently
random and irreproducible manner. The chaotic behavior persists up to R = 4
except for an infinite number of small periodic windows. For R greater than 4, the
solution is unbounded, and the iterates attract rapidly to minus infinity.
Figure 1-1. Bifurcation diagram for the logistic equation, Xn+1 = RXn (1 - Xn)
12
Each period doubling is called a bifurcation because a single solution splits
into a pair of solutions. These splittings are called pitchfork bifurcations for obvious
reasons. Note the period-3 window at about R = 3.84. The period-3 region begins
abruptly when R is increased slightly from within the chaotic region to its left in what
is called a tangent or saddle-node bifurcation. Careful inspection of the period-3
window shows that it also undergoes a period-doubling sequence at about R = 3.85.
Solutions with every period can be found somewhere between R = 3 and R = 4.
Even though there are infinitely many nonchaotic initial values between zero
and one, the chance that you will find one by randomly guessing is negligible. For
every such value, there are infinitely many others that produce chaos. Such a
seemingly paradoxical entity is an example of a Cantor set, named after the 19th-
century Russian-born German mathematician Georg Cantor who is often credited
with developing a mathematically rigorous concept of infinity.
A Cantor set contains infinitely many members (in fact, uncountably infinitely
many), but its members represent a zero fraction of the total! For example, infinitely
many points are required to cover completely the circumference of a circle, but this
number of points doesn’t even begin to cover its interior. Such a collection (or set)
of points, although infinite in number, is said to comprise a set of measure zero,
because the points fill a negligible portion of the plane. An attractor is a set of
measure zero, but its basin of attraction has a nonzero measure.
Few people would have guessed that such complexity could arise from such
underlying simplicity. Furthermore, the logistic equation is only the simplest of an
endless variety of equations that can exhibit chaos. It is this dichotomy of simplicity
13
and complexity that makes chaos beautiful to the mathematician and artist alike.
In the bifurcation diagram of the logistic equation, we have something with
aesthetic appeal, and it came from a simple quadratic equation!
Suppose we iterate the logistic equation with two initial values of X that differ
by only a tiny amount. Think of these values as representing two states of the
atmosphere that differ only by the flapping of the wings of a butterfly. If successive
iterates are attracted to a fixed point as they are for R = 2, the difference between
the two solutions must get smaller and smaller as the fixed point is approached. A
similar thing happens for a limit cycle. The difference between the two solutions will
on average decrease exponentially.
You can think of the Lyapunov exponent as the power of 2 by which the
difference between two nearly equal X values changes on average for each
iteration. Thus the difference between the values changes by an average of 2L for
each iteration. If L is negative, the solutions approach one another; if L is positive,
we have sensitivity to initial conditions and hence chaos.
One way to detect chaos is to iterate the equation with two nearly equal
initial values and see if, after many iterations, the values are closer together or
farther apart. Another way is to make use of a principle of calculus that says that the
difference in the solutions after one iteration divided by the difference before the
iteration, provided the difference is small, is equal to the derivative of the equation
for the map, which for the logistic equation is
14
∆Xn+1 / ∆Xn = R(1 - 2Xn) (Equation 1D)
where ∆X is the difference between the two values of X. In Equation 1D, ∆Xn is the
difference in the X values after n iterations, and ∆Xn+1 is the difference after n+1
iterations.
Since ∆X increases by the factor on the right of Equation 1D for each iteration,
the proper way to calculate the average is to start with a value of 1 and multiply it
repeatedly by the right-hand side of Equation 1D at each iteration, then divide the
result by the number of iterations, and finally take the logarithm to the base 2 of the
absolute value of the result to get the Lyapunov exponent. If you prefer an
equation, the preceding description is equivalent to
where the vertical bars mean that you are to disregard the sign of the quantity
inside, and ∑ means to sum the quantity to its right from a value of n = 1 to a value
of n = N , where N is some large number. The larger the value of N, the more accurate
the estimate of L.
Suppose you knew the value of X to within 0.01 for an iterated map with L =
1. After one iteration the uncertainty would be about 0.02, and after two iterations
the uncertainty would be about 0.04, and so forth. After about seven iterations, the
error would exceed 1, and your prediction would be totally worthless. If the X values
are expressed as binary numbers, each iteration would result in throwing away the
rightmost (least significant) binary digit (bit). Thus the units of L are bits per iteration.
Sometimes L is expressed in terms of the natural logarithm (base e) rather than log2.
The Lyapunov exponent is the rate at which information is lost when a map is
iterated.
15
Figure 1-2. Lyapunov exponent for the logistic equation
Figure 1-2 shows the Lyapunov exponent for the logistic equation using values
of R from 2 to 4. The Lyapunov exponent is 1.0 at R = 4 because that value causes
the interval of X from 0 to 1 to be mapped backed onto itself with a single fold at
X = 0.5. Thus information is lost at a rate of 1 bit per iteration, because each iterate
has two possible predecessors. You can also see some of the periodic windows
where L dips below zero toward the right edge of the plot. Also note that L is zero
wherever a bifurcation occurs, for example at R=2. At these points the solution is
fraught with indecision over which branch to take, and the initial uncertainty persists
forever, neither increasing nor decreasing.
16
1.4 The Computer Artist
By now you have probably surmised that the operations we have described
are best carried out by a computer. The equations are simple, but they must be
applied repeatedly. This is precisely the kind of task at which computers excel.
If you follow sequentially through this book, you will need to add and change
a only few lines of the program as you meet each new idea. Your program will
gradually grow more versatile as you work through the book. In the end you will
have a powerful program that can reproduce all the examples in this book as well
as an endless variety of new ones. Hence you should avoid the temptation to
17
eliminate or to change the line numbers, at least until you have a fully functional
program. You may prefer to jump to Appendix B where you will find the complete
final program, which is also provided on the accompanying disk along with source
listings in BASIC, Microsoft QuickC, Borland Turbo C++ and a ready-to-run execut-
able version of the program.
If you are an experienced programmer, you might ridicule some of the quaint
program listings. Many powerful programming structures such as block IF state-
ments, DO LOOPs, and callable subroutines with local variables that produce
beautifully structured programs are now standard, but they have been avoided to
allow backwards compatibility with more primitive versions of BASIC. They also often
impose a small speed penalty. The dreaded GOTO statement has been used
primarily to bypass blocks of code in deference to BASIC versions that don’t support
block IF statements. Lines of the program that are bypassed by a GOTO are usually
indented. Blocks of the program contained within FOR...NEXT loops have also been
indented. In the interest of structure and simplicity, the programs have been written
using numerous small modular subroutines, each with a single entry point beginning
with a comment line, and a single exit point containing a RETURN statement, albeit
with global variables. The individual subroutines are separated with blank lines. It
should be relatively easy for an experienced programmer to rewrite the program
in a more modern format.
The program listing PROG01 iterates the logistic equation for R = 4 with an
initial value of X = 0.05 and makes a graph of each iterate versus its predecessor. The
program looks more complicated than it actually is because the various operations
have been relegated to subroutines to provide a template for the more versatile
cases to follow.
18
1220 GOSUB 2100 'Display results
1250 CLS
1260 END
1360 CLS
1420 RETURN
1570 T% = 3
1630 RETURN
1720 XNEW = R * X * (1 - X)
2030 RETURN
19
2100 REM Display results
2320 RETURN
2550 RETURN
If, when you first run the program, your computer reports an error, it is probably
in one of the following lines:
Line 1320: Either your version of BASIC doesn’t require this command or your
computer or compiler doesn’t support VGA graphics. Try reducing the 12 in line 1030
to a lower number until you find one that works. If none works, try eliminating line
1320 altogether.
Line 1350: The WINDOW command defines the coordinates of the lower-left
and upper-right corners of the graphics window for subsequent PSET and LINE
commands. If your version of BASIC doesn’t support this command, you must delete
this line and convert all the parameters in the PSET and LINE commands to address
screen pixels. In this case try replacing line 2300 with PSET (200 * X, 200 - 200 * XNEW).
One advantage of using the WINDOW command is that when a version of BASIC
comes along that supports higher screen resolutions, the program can be easily
recompiled to take advantage of it.
20
Other errors: Look carefully for typographical errors, or consult your BASIC
manual to determine compatibility.
The correct program should produce a plot of the logistic parabola, as shown
in Figure 1-3. Try different initial values of X (line 1510) and different values of R (line
1560) to confirm the behavior predicted for the logistic equation.
The logistic parabola comes from a chaotic solution, but it doesn’t look very
complicated, and it would hardly qualify as art. With one small change we can
make things more interesting and, at the same time, illustrate sensitivity to initial
conditions. Instead of plotting each iterate versus its immediate predecessor, we
could plot it versus its second or third or fourth predecessor. Let’s save the last 500
iterates and provide the option to plot X versus any one of them.
21
The changes that you need to make in the program PROG01 to accomplish
this are shown in the listing PROG02. You can either go through the program and
change or add lines as necessary or type the listing and save it in ASCII format and
then use the MERGE command supported by many (mostly old) versions of BASIC
to update the previous version of the program.
1580 P% = 0
2210 XS(P%) = X
If you set PREV% = 1 in line 1040, the result is the same as for PROG01. However,
if you set PREV% equal to 2, you see the logistic parabola change into a curve with
two humps. Each time you increase PREV% by 1, you double the number of humps
in the curve. Thus PREV% = 5 results in 16 oscillations, as shown in Figure 1-4.
22
Figure 1-4. The logistic parabola after five iterations from PROG02
This exercise provides a good insight into the way a strange attractor is
formed geometrically. The logistic parabola, which began as a line (a one-
dimensional object), is stretched and folded with each iteration, eventually filling
the entire plane (a two-dimensional object) after many iterations. Perhaps it
reminds you of those taffy machines that repeatedly stretch and fold the taffy,
causing two nearby specks in the taffy after a while to be nowhere near one
23
another. On average the distance between the specks initially increases at an
exponential rate.
24
Chapter 2
Wiggly Lines
In this chapter we will teach the computer to search for chaotic solutions of
simple equations with a single variable. The solutions are segments of lines, but the
lines can wiggle in an incredibly complicated manner.
Usually a dynamical system has more than one knob. Your kitchen faucet
probably has independent control of the flow rate and the temperature of the
water. With more knobs, you might expect to increase the variety of ways the
system can behave. Such knobs are called control parameters.
The formula for the most general one-dimensional quadratic iterated map is
where a1, a2, and a3 are three control parameters. By exploring all combinations
of their values, we expect eventually to observe every possible peculiar solution
that the equation can have.
25
You might think that the initial condition X0 is a fourth knob, but if the system
is chaotic, the solution is generally a strange attractor, and all initial conditions within
the basin of attraction look the same after many iterations. Of course there is no
guarantee that a particular choice of X0 lies within the basin, but values of X0 close
to zero are within the basin about half the time, and there are so many chaotic
solutions over the range of the other three parameters that we can well afford to
discard half of them.
The search for strange attractors proceeds as follows. Choose values for a1,
a2, and a3 arbitrarily. Start with a value of X0 near zero. Iterate Equation 2A
repeatedly until the solution either exceeds some large number, in which case it is
presumably unbounded, or until the Lyapunov exponent becomes small or nega-
tive, in which case the solution is probably a fixed point or limit cycle. In either event,
choose a different combination of a1, a2, and a3, and start over. If, after a few
thousand iterations, the solution is bounded (X is not enormous) and the Lyapunov
exponent is positive, then it is likely that you have found a strange attractor.
To choose values of a1, a2, and a3, we can use the random-number
generator provided with most computer languages. The random numbers thus
produced are usually uniformly distributed between zero and one. You may
wonder how a computer, the epitome of determinism, could ever produce a
random number. This question deserves a digression because the answer provides
yet another example of the very issues we have been discussing.
One way to produce a random number is to start with a value of X (the seed)
between zero and one and iterate the logistic equation with R = 4 a few dozen
times. The result is a new number in the range of zero to one that is related to the
seed in a complicated and sensitive way. This number is then used as the seed for
the next random number, which is produced in the same way. A given seed will
produce the same sequence of random numbers, but the sequence may not be
the same on different computers or with different languages or even with different
versions of the same language because of the way the numbers are rounded.
However, this method of producing random numbers is not optimal. First, the
numbers are not uniformly distributed over the range. They tend to cluster near zero
and one as the darkness of the right-hand side of Figure 1-1 suggests. Also,
multiplying a non-integer number by itself many times is a relatively slow process on
a computer.
26
Instead, computers usually get their random numbers using the linear
congruential method:
In the mod (modulus) operation, the quantity to the left of the mod (aXn + b)
is divided by the quantity to its right (c), and the remainder is kept rather than the
quotient. All the quantities in Equation 2B are integers. The constants a, b, and c are
carefully chosen to maximize the number of steps required for the sequence to
repeat, which in any case can never exceed c. The numbers are uniformly
distributed from zero to c - 1, but they can be transformed to the range zero to one
by simply dividing Xn+1 by c. The numbers appear to be random, but since they are
produced using a deterministic procedure, they are often called pseudorandom.
Equation 2B is another example of a one-dimensional chaotic map, which is related
to the shift map.
Truly random numbers should satisfy infinitely many conditions. Not only must
the numbers be uniform over the interval, but there should be no detectable
relation between the numbers and any of their predecessors. In particular, the
sequence should repeat only after a very large number of steps. Most random-
number generators are deficient in certain ways. For example, the random num-
bers produced by Microsoft QBASIC 1.0, QuickBASIC 4.5, and VisualBASIC for DOS
1.0 repeat after 16,777,216 steps, and this number is too small for some of our
purposes.
You should always remember that the sequence of random numbers gener-
ated by a digital computer will eventually repeat. You must take care to ensure that
over the duration of a calculation, such a repetition does not occur. You must also
reseed the random-number generator using a truly random seed, such as one
based on the time of day the program is started, if you are to avoid repeating the
same sequence each time you run the program.
27
2.3 What’s in a Name?
When we begin to choose random values for the coefficients a1, a2, and a3,
we are immediately confronted with two issues. The first is the range of values that
the coefficients may have, and the second is the amount by which two values of
a coefficient must differ to produce attractors that are visibly different.
We can address the first issue by referring to the logistic equation (Equation
1C). When the value of R is too small (less than about 3.5), there are no chaotic
solutions, and when the value of R is too large (greater than 4), all the solutions are
unbounded. A similar situation occurs for the more general one-dimensional
quadratic map in Equation 2A. Thus we want to limit the coefficients to values
whose magnitudes (positive or negative) are of order unity. That is, 0.1 is probably
too small a value and 10 is probably unnecessarily large. This assumption can be
verified by numerical experiment.
28
Char Dec Coeff Char Dec Coeff Char Dec Coeff
29
Char Dec Coeff Char Dec Coeff Char Dec Coeff
ASCII codes from 0 to 31 are reserved for control codes—things like back-
space, carriage return, and line feed. Codes from 128 to 255 can also be used, but
there is no universal character set associated with them. By making use of all the
ASCII characters from 0 to 255, we can accommodate coefficients in the range of
-7.7 to 17.8. The characters listed in the table will suffice for most of our needs,
however.
30
L = ∑ log2 |a2 + 2a3Xn| / N (Equation 2C)
The program changes that are required to perform a search for strange
attractors in one-dimensional quadratic iterated maps are given in the listing
PROG03.
PROG03. Changes required in PROG02 to search for strange attractors in one-dimensional qua-
dratic maps
1580 P% = 0: LSUM = 0: N = 0: NL = 0
2020 N = N + 1
31
2140 YMIN = XMIN: YMAX = XMAX
2250 IF N < 1000 OR XS(I%) <= XL OR XS(I%) >= XH OR XNEW <= XL OR XNEW >= XH THEN
GOTO 2320
2680 M% = 3
2720 NEXT I%
2750 NEXT I%
2760 RETURN
32
2810 IF V(0) = 0 THEN FOR J% = 0 TO 99: V(J%) = RND: NEXT J%
2850 RETURN
3070 RETURN
3120 IF XMAX - XMIN < .000001 THEN XMIN = XMIN - .0000005: XMAX = XMAX + .0000005
3130 IF YMAX - YMIN < .000001 THEN YMIN = YMIN - .0000005: YMAX = YMAX + .0000005
3460 RETURN
1. The maximum number of iterations (NMAX in line 1050) has been set
33
arbitrarily to 11,000. This is the number of iterations after which a strange
attractor is assumed to have been found if the magnitude of X never
exceeded one million and the Lyapunov exponent is positive (actually
greater than 0.005). You can decrease NMAX to speed the rate at which
attractors are found, or you can increase NMAX if you have a very fast
computer or want to give the displays more time to develop. The number of
iterations is a parameter that you can adjust for the most visually appealing
result. Most of the figures in this book were made with NMAX set at between
about 500,000 and 10 million, and they required between about a minute
and an hour to produce.
2. The seed for the random-number generator is taken in line 1160 as the
number of seconds lapsed since midnight (TIMER). This choice ensures that a
new sequence of random numbers is produced each time the program is
run, except in the unlikely event that it is run at exactly the same time each
day.
3. After 1000 iterations (line 2200), the screen is resized and erased by the
subroutine in lines 3100 through 3460 using the minimum and maximum
values of X between the 100th and 1000th iteration, allowing a 10% border
around the attractor.
4. To save time, the difference between each value of X and its predecessor
is evaluated in line 2470, and if the difference is less than one millionth, the
solution is assumed to be a fixed point even if the Lyapunov exponent is still
positive.
5. The Lyapunov exponent is not used as a criterion until after 100 iterations
(line 2480) to ensure that its value is reasonably accurate.
6. The coefficients of the equation are chosen in line 2710 using random
numbers that have been shuffled by the subroutine in lines 2800 through 2850
to minimize the chance of repeating the same search sequence.
34
Of the 15,625 combinations of coefficients, exactly 364 (2.3%) are chaotic by
these criteria. Some of the more visually interesting ones are shown in Figures 2-1
through 2-4, in which the values are plotted versus their fifth previous iterate. For
each case, the code and the Lyapunov exponent are shown at the top of the
graph.
35
Figure 2-2. One-dimensional quadratic map
36
Figure 2-3. One-dimensional quadratic map
37
Figure 2-4. One-dimensional quadratic map
38
to consider the alternatives.
Table 2-2 lists the average number of strange attractors found by PROG03 per
hour using various versions of BASIC on a 33-MHz 80486DX-based computer with
and without a math coprocessor. The exact numbers are less important than the
relative values. They provide a good indication of how the various versions of BASIC
compare on calculations of the type that are used throughout this book.
Table 2-2. Strange attractors found per hour by PROG03 with various versions of BASIC
No copro Coproc
QuickBASIC and VisualBASIC for MS-DOS can be run from the editor environ-
ment, where they function much like an interpreter, or they can be used to compile
a stand-alone executable program. VisualBASIC can be compiled with either of
two floating point math packages; the alternate package is faster for machines
without a coprocessor, and the emulate package is faster for machines with a
coprocessor. Turbo BASIC is now obsolete and has been replaced by PowerBASIC.
39
PowerBASIC, like VisualBASIC, can be compiled with either of two floating point
math packages; the procedure package is similar to the VisualBASIC alternate
package. A third math package, NPX (87) is the same as emulate, except it cannot
work on a machine without a math coprocessor. The tests were done with all error
trapping turned off, which is inadvisable until you have a thoroughly debugged
program.
If you launch the program from Microsoft Windows, you might find the
computation speeds considerably different from those in Table 2.2. In one test, the
PowerBASIC speeds were cut in half, and the QuickBASIC speeds were increased
slightly from the values obtained when the program was run directly from DOS. You
should do your own speed tests to see what configuration provides the optimum
performance on your computer and operating system.
The executable program on the disk that accompanies this book was
compiled with PowerBASIC using the procedure package. If you have PowerBASIC
and a math coprocessor, you can recompile the program using the emulate or NPX
(87) package to achieve a slight improvement in speed.
The preceding figures consist of segments of wiggly lines, so they are not very
artistic. To make things more interesting, we can consider one-dimensional maps of
higher order. By this we mean that we will not stop with quadratic (X2) maps, but we
will consider equations containing cubic (X3), quartic (X4), quintic (X5), and even
higher terms.
A simpler and more general procedure is to allow each term in the polyno-
mial to have its own coefficient, which for fifth order gives
40
Xn+1 = a1 + a2Xn + a3Xn2 + a4Xn3 + a5Xn4 + a6Xn5 (Equation 2E)
With six coefficients, each with 25 possible values, there are 256 or about 244
million different combinations. Even if only a small percentage of them is chaotic,
we would have to look at one every second for about a year before we would see
them all.
The generalization of the expression for the Lyapunov exponent for a fifth-
order map is given by
With these equations in hand, we can easily modify the program in PROG04
to search for one-dimensional attractors of up to fifth order. In our coding scheme,
a first letter of B represents third order, C represents fourth order, and D represents
fifth order. The program is written so that even higher orders can be produced by
changing the quantity OMAX% in line 1060.
PROG04. Changes required in PROG03 to search for strange attractors in one-dimensional maps of
order up to OMAX%
1930 NEXT I%
2680 M% = O% + 1
41
2910 DF = 0
2940 DF = I% * A(I% + 1) + DF * X
2970 NEXT I%
3000 DF = ABS(DF)
42
Figure 2-6. One-dimensional quartic map
43
Figure 2-7. One-dimensional quartic map
44
Figure 2-8. One-dimensional quintic map
45
Figure 2-9. One-dimensional quintic map
46
Figure 2-10. One-dimensional quintic map
47
2.6 Making Music
If the preceding figures don’t qualify as art, perhaps they qualify as music.
Since the quantity X behaves in a deterministic yet unpredictable way, it may be
that a sequence of musical notes determined by X will mimic the order and
unpredictability that characterize music. It’s easy to test.
Suppose we allow the notes to span three octaves from A-220 to A-1760. The
letter refers to the musical note, and the numbers refer to the frequency in cycles
per second (called Hertz). We’ll allow the notes to take one of twelve distinct values
corresponding to the even-tempered scale, and for simplicity we’ll assume all the
notes to be of the same duration. Thus the range of possible values of X is divided
into 36 intervals, and each successive iterate of X is converted into the correspond-
ing musical note. PROG05 shows the changes necessary to accomplish this.
3520 DUR = 1
3550 RETURN
48
3600 REM Respond to user command
3610 T% = 0
3800 RETURN
The program allows you to toggle the sound on and off by pressing the S key.
Pressing any other key exits the program. You might wish to experiment with the
duration DUR of the SOUND statement in line 3520. Increasing its value from 1
(corresponding to approximately 0.055 seconds) makes the sounds more musical,
but then the calculation takes longer.
49
Chapter 3
Pieces of Planes
In the discussion so far, the maps have involved a single variable X whose
value changes with each iteration of the equation. Such maps are said to be one-
dimensional because the values of X can be thought of as lying along a line, and
a line is a one-dimensional object. By plotting each value of X versus a previous
value of X, the line can be made to wiggle with considerable complexity; but it
always remains a line, and lines are of limited interest and beauty.
The situation is more interesting when you consider iterated maps that involve
two variables, X and Y. In such a case, each iterate produces a point in a plane,
where X, by convention, represents the horizontal coordinate of the point, and Y
represents the vertical coordinate. With successive iteration, the points fill in some
portion of the plane. The visually interesting cases, as usual, are the chaotic ones.
50
Perhaps the best known chaotic two-dimensional map is the Hénon map
(proposed by the French astronomer Michel Hénon in 1976), whose equations are
The quantities a and b are the control parameters, analogous to R in the logistic
equation. Hénon used the values a = -1.4 and b = 0.3. The necessary nonlinearity is
provided by the X2 term in the first equation. The Hénon map is special because the
net contraction of a set of initial points covering an area of the XY plane is constant
with each iteration. The area occupied by the points is 30% of the area at the
previous iteration (from the bYn term). Other values of b can be used, but not all
values produce chaotic solutions. Unlike the logistic map, the Hénon map is
invertable; there is a unique value for Xn and Yn corresponding to each Xn+1 and
Yn+1. You may have seen an alternate form of the Hénon equations in which the
factor b appears instead in the second equation and the sign preceding the X2
term is negative. The result of repeated iteration of Equation 3A is shown in Figure
3-1.
51
Figure 3-1. The Hénon map
The resulting graph is more than a line but less than a surface. What resembles
a single line is a pair of lines, each of which is, in turn, another pair of lines, and so
forth to however close you look or whatever magnification you choose. This self-
similarity is a common characteristic of a class of objects that are called fractals.
52
they were widely appreciated by mathematicians and scientists.
Some fractals are exactly self-similar, which means that they look the same
no matter how much you magnify them. Others, such as most of the ones in this
book, only have regions that are self-similar. There is no part of the Hénon map
where you can zoom in and find a miniature replica of the entire map. Other fractals
are only statistically self-similar, which means that a magnified portion of the object
has the same amount of detail as the whole, but it is not an exact replica of it. Nearly
all strange attractors are fractals, but not all fractals arise from strange attractors.
The Hénon map produces an object with a fractal dimension that is a fraction
intermediate between one and two. The fractal dimension is a useful quantity for
characterizing strange attractors. Isolated points have dimension zero, line seg-
ments have dimension one, surfaces have dimension two, and solids have dimen-
sion three. Strange attractors generally have noninteger dimensions.
Since the Hénon map has X2 as its highest-order term, it is a quadratic map.
The most general two-dimensional iterated quadratic map is
The two equations in Equation 3B have 12 coefficients. For the Hénon map, a1 = 1,
a3 = -1.4, a5 = 0.3, a8 = 1, and the other coefficients are zero. If we use the initial letter
E to represent two-dimensional quadratic maps, the code for the Hénon map
according to Table 2-1 is EWM?MPM2WM4, where we have introduced the short-
hand M2 for MM and M4 for MMMM.
53
collection would cover nearly the entire land mass of Earth.
Note that not all the cases are strictly distinct. For example, if you replace X
with Y and Y with -X in Equation 3B, you produce an attractor rotated 90 degrees
counterclockwise from the original. When you do this, be sure to change Xn+1 and
Yn+1 as well as Xn and Yn. Thus the code EM4CMWJM3? produces a rotated version
of the Hénon map. In the same fashion, you can rotate an attractor through 180
degrees by replacing X with -X and Y with -Y and through 270 degrees by replacing
X with -Y and Y with X. Perhaps it’s easier just to rotate your computer monitor!
These degeneracies show that there are many ways to code a particular
attractor. Although this is true, there are so many different possible combinations of
coefficients that it is very unlikely that two degenerate cases will be found sponta-
neously. Thus the examples displayed in this chapter represent but a tiny fraction of
the possibilities, and you will be generating many other cases, almost none of which
have been seen before.
54
After one iteration, the points have moved to a new position in the plane, but they
now occupy an elongated region called an ellipse. The circle has contracted in
one direction and expanded in the other. With each iteration, the ellipse gets
longer and narrower, eventually stretching out into a long filament. The orientation
of the filament also changes with each iteration, and it wraps up like a ball of taffy.
There is a proper way to calculate both of the Lyapunov exponents. For the
mathematically inclined, the procedure involves summing the logarithms of the
eigenvalues of the Jacobian matrix of the linearized transformation with occasional
Gram-Schmidt reorthonormalization. This method is slightly complicated, so we will
instead devise a simpler procedure sufficient for determining the largest Lyapunov
exponent, which is all we need in order to test for chaos.
Suppose we take two arbitrary but nearby initial conditions. The first few
iterations of the map may cause the points to get closer together or farther apart,
depending on the initial orientation of the two points. Eventually, the points will
come arbitrarily close in the direction of the contraction, but they will continue to
separate in the direction of the expansion. Thus if we wait long enough, the rate of
separation will be governed only by the largest Lyapunov exponent. Fortunately,
this usually takes just a few iterations.
where the sum is taken over all iterations from n = 0 to n = N-1. After each iteration,
55
the value of one of the iterates is changed to make dn+1 = dn. For the cases here,
dn equals 10-6. This procedure also allows us to deal with maps of three and even
higher dimensions in which there are more than two Lyapunov exponents.
We now have all the tools in hand to conduct a computer search for
attractors in two dimensions. The procedure is the same as for one-dimensional
maps, except the Lyapunov exponent calculation is done differently and the X and
Y variables are plotted as a point in the plane after each iteration. PROG06 shows
the changes needed to accomplish such a search.
PROG06. Changes required in PROG05 to search for two-dimensional quadratic strange attractors
1520 Y = .05
1550 XE = X + .000001: YE = Y
56
2140 IF Y < YMIN THEN YMIN = Y
2250 IF N < 1000 OR XP <= XL OR XP >= XH OR YP <= YL OR YP >= YH THEN GOTO 2320
2520 Y = YNEW
2990 RS = 1 / SQR(DF)
57
3030 IF DF > 0 THEN LSUM = LSUM + LOG(DF): NL = NL + 1
58
Figure 3-3. Two-dimensional quadratic map
59
Figure 3-4. Two-dimensional quadratic map
60
Figure 3-5. Two-dimensional quadratic map
61
Figure 3-6. Two-dimensional quadratic map
62
Figure 3-7. Two-dimensional quadratic map
63
Figure 3-8. Two-dimensional quadratic map
64
Figure 3-9. Two-dimensional quadratic map
65
Figure 3-10. Two-dimensional quadratic map
66
Figure 3-11. Two-dimensional quadratic map
67
Figure 3-12. Two-dimensional quadratic map
68
Figure 3-13. Two-dimensional quadratic map
69
Figure 3-14. Two-dimensional quadratic map
70
Figure 3-15. Two-dimensional quadratic map
71
Figure 3-16. Two-dimensional quadratic map
72
Figure 3-17. Two-dimensional quadratic map
73
If you are an experienced programmer, you might consider writing a screen-
saver program based on PROG06. Such a terminate-and-stay-resident (TSR) pro-
gram is run once when the computer is turned on and leaves a portion of itself in
memory, constantly monitoring keyboard and mouse activity. When there is no user
activity for, say, five minutes, it blanks the screen and begins displaying a succession
of unique strange attractors to prevent screen burn-in. The original screen is restored
whenever a key is pressed or the mouse is moved. PowerBASIC version 3.0 allows
you to do this easily by inserting the program between POPUP statements.
The previous figures differ considerably in how densely they fill the plane.
Some are very thin, others are thick. A good contrast is provided by Figures 3-16 and
3-17. Figure 3-16 resembles a piece of string that has been laid down in a
complicated shape on the page, whereas Figure 3-17 looks like a twisted piece of
paper with many holes in it. Thus the object in Figure 3-16 has a fractal dimension
close to 1, and the object in Figure 3-17 has a fractal dimension closer to 2.
One method is to draw a small circle somewhere on the plane that surrounds
at least one of the points. We then draw a second circle with the same center but
with twice the radius. Now we count the number of points inside each circle. Let’s
say the smaller circle encloses N1 points and the larger circle encloses N2 points.
Obviously N2 is greater than or equal to N1 because all the points inside the inner
circle are also inside the outer circle.
If the points are widely separated, then N2 equals N1. If the points are part of
a straight line, the larger circle on average encloses twice as many points as the
smaller circle, but if the points are part of a plane, the larger circle on average
encloses four times as many points as the smaller circle, because the area of a circle
is proportional to the square of its radius. Thus for these simple cases the dimension
is given by
74
F = log2 (N2 / N1) (Equation 3D)
It is hardly surprising that if you do this operation for the cases shown in the figures,
the quantity F is neither 0 nor 1 nor 2 but rather a fraction.
3. Is doubling the size of the circle optimal, or would some other factor be
better?
4. Where should the circles be placed, and how many circles are required to
obtain a representative average?
There is nothing special about circles. A rectangle, triangle, or any other two-
dimensional figure would suffice, because the area scales as the square of the
linear dimension in each case. However, a circle is convenient because it is easy to
tell whether a given point is in its interior by comparing the radius of the circle with
the distance of the point from its center.
The optimum size of the circle represents a compromise. Ideally, the circles
should be invisibly small, because the dimension is defined in the limit of infinite
resolution. However, if the circles are too small, they contain too few points to
produce a statistically meaningful result, unless an unreasonably large number of
iterations is performed. We somewhat arbitrarily use circles with a radius equal to
about 2% of the diagonal of the smallest rectangle that contains the attractor.
Similarly, doubling the radius of the circle is arbitrary. Small values degrade
the statistics, and large values miss too much of the fine-scale structure. We will use
a value of ten, with the smaller circle about 0.6% the size of the attractor and the
larger circle about 6% the size of the attractor. Thus in Equation 3D we will use
logarithms of base 10 (log10) instead of base 2 (log2).
75
Ideally, the circles should be placed uniformly or randomly over the plane.
However, if we were to do this, most of the circles would be empty, and a very long
calculation would be required to obtain an accurate estimate of the dimension.
Instead, we center the circles on the data points themselves. In this way the circles
tend to enclose many points. However, it represents a different type of average
because it weighs more heavily the portions of the attractor where the points are
most dense. Technically, what we are calculating is called the correlation dimen-
sion, because it involves the number of other points that are correlated with each
point in the data set. The correlation dimension is never greater than the fractal
dimension, but it tends not to be much smaller either.
The correlation dimension is only one of many ways to define the dimension
of an attractor. The various methods differ in how the regions of the attractor are
weighed in the average. It is probably the easiest method to implement, and it gives
more reliable results than the fractal dimension when the dimension of the attractor
is greater than about two. The fractal dimension is also called the capacity
dimension, and it is closely related to the Hausdorff-Besicovitch dimension. Further-
more, the correlation dimension is probably a more meaningful measure of the
strangeness of the attractor, because it includes information about its formation as
well as its final appearance.
PROG07. Changes required in PROG06 to calculate and display the fractal dimension
76
1000 REM TWO-D MAP SEARCH (With Fractal Dimension)
1580 P% = 0: LSUM = 0: N = 0: NL = 0: N1 = 0: N2 = 0
1620 TWOD% = 2 ^ D%
3060 IF N > 1000 AND N MOD 10 = 0 THEN LOCATE 1, 76: PRINT USING "##.##"; L;
3190 YH = YH - .5 * MY
3420 LOCATE 1, 63: PRINT "F =": LOCATE 1, 73: PRINT "L ="
3910 IF N < 1000 THEN GOTO 4010 'Wait for transient to settle
77
3950 D2 = DX * DX + DY * DY
3980 N1 = N1 + 1
4010 RETURN
At this point you might want to examine the fractal dimension of the various
figures in this book as well as the dimension of those you create with PROG07. One
thing you will notice is that the dimension of objects that resemble lines is often less
than 1.0. One reason is that the points that make up the line are seldom uniformly
distributed along its length. Remember that the correlation dimension is usually
smaller than the fractal dimension. They are equal if the points are uniformly
distributed over the attractor. The correlation dimension of a line consisting of a
uniform distribution of points along its length would be exactly 1.0.
Also note that the dimension of most attractors varies considerably from one
part of the attractor to another. Figure 3-11 is a good example of one in which parts
of the attractor resemble thin lines and other parts resemble filled-in planes. It
obviously is simplistic to characterize such an object by a single average dimension.
The dimension also depends on scale. It is properly defined in the limit where
one zooms in very tightly on the attractor to observe its finest detail. However, a
calculation in this limit would take forever because an infinite number of iterations
would be required to collect enough points to reveal the detail. Figure 3-13 is an
example of an attractor that is nearly one-dimensional on a large scale but closer
to two-dimensional on a fine scale. Our calculation provides what might be called
a visual dimension because it is taken on a scale close to what the eye can visually
resolve. In any case, you should not ascribe undue significance to the calculated
dimension.
Also note that we are using the word "dimension" to mean several different
things. The maps that we are looking at are two-dimensional because they have
two variables, X and Y. However, the attractor has a smaller dimension. We say the
78
attractor is embedded in a two-dimensional space or that the embedding dimen-
sion is 2. A point or a line can be embedded in a plane, but a ball cannot.
It is also interesting that the fractal dimension and the Lyapunov exponents
are not entirely independent. It has been conjectured that the fractal dimension is
related to the two Lyapunov exponents by
F = 1 - L1 / L2 (Equation 3E)
where L1 is the more positive of the two exponents and is the one we denote by L
in the figures. If both Lyapunov exponents are known, Equation 3E can be used to
define a dimension of the attractor, called the Lyapunov dimension. The Lyapunov
dimension is also called the Kaplan-Yorke dimension after the scientists who
proposed an extension of Equation 3E to higher dimensions.
This relation is reasonable because, if the two exponents are equal but of
opposite signs (L2 = - L1), the contraction in one direction is just offset by expansion
in the other. A set of initial conditions spread out over a two-dimensional region thus
maintains its area upon successive iteration. Such a mapping is said to be area-
preserving, symplectic, or Hamiltonian, after the 19th-century Irish astronomer,
William Rowan Hamilton. On the other hand, if the contraction is very rapid (L2 is
large and negative), the initial conditions quickly collapse to a very elongated
ellipse whose dimension is close to 1. Such a contraction is sometimes called
filamentation.
Armed with information about the fractal dimension, you can program the
computer to be even more selective. For example, the visually appealing attractors
tend to have fractal dimensions slightly greater than 1, and thus you could reject
those with smaller dimensions or those with dimensions close to 2. We return to this
intriguing possibility in Chapter 8.
79
3.5 Higher-Order Disorder
Note that there are 20 coefficients, which vastly increases the number of
possible cases. The fourth-order case would have 30 coefficients, and the fifth-order
case would have 42 coefficients. If you prefer an equation, a two-dimensional map
of order O has (O + 1)(O + 2) coefficients. We will code the cubic, quartic, and
quintic cases with the letters F, G, and H, respectively.
The changes that must be made to the program to generate attractors in two
dimensions up to fifth order are given in PROG08.
PROG08. Changes required in PROG07 to generate attractors in two dimensions up to fifth order
1730 FOR I% = 1 TO D%
1750 M% = M% + 1
80
1760 FOR I1% = 1 TO D%
1780 M% = M% + 1
1810 M% = M% + 1
1850 M% = M% + 1
1890 M% = M% + 1
1930 M% = M% + 1
81
2000 NEXT I%
PROG08 could have been written more compactly, but it is done this way to
simplify its extension to even higher dimensions. Examples of attractors produced by
this program are shown in Figures 3-18 through 3-41.
82
Figure 3-19. Two-dimensional cubic map
83
Figure 3-20. Two-dimensional cubic map
84
Figure 3-21. Two-dimensional cubic map
85
Figure 3-22. Two-dimensional cubic map
86
Figure 3-23. Two-dimensional cubic map
87
Figure 3-24. Two-dimensional cubic map
88
Figure 3-25. Two-dimensional cubic map
89
Figure 3-26. Two-dimensional quartic map
90
Figure 3-27. Two-dimensional quartic map
91
Figure 3-28. Two-dimensional quartic map
92
Figure 3-29. Two-dimensional quartic map
93
Figure 3-30. Two-dimensional quartic map
94
Figure 3-31. Two-dimensional quartic map
95
Figure 3-32. Two-dimensional quartic map
96
Figure 3-33. Two-dimensional quartic map
97
Figure 3-34. Two-dimensional quintic map
98
Figure 3-35. Two-dimensional quintic map
99
Figure 3-36. Two-dimensional quintic map
100
Figure 3-37. Two-dimensional quintic map
101
Figure 3-38. Two-dimensional quintic map
102
Figure 3-39. Two-dimensional quintic map
103
Figure 3-40. Two-dimensional quintic map
104
Figure 3-41. Two-dimensional quintic map
Perhaps this is a good point to pause and reiterate in what sense these
objects are attractors. If you choose initial values of X and Y somewhere near the
attractor, within its basin of attraction, and substitute these values into the equa-
tions that describe the attractor, the new values of X and Y represent a point in the
plane that is closer to the attractor. After a number of iterations, the point works its
way to the attractor, and thereafter it moves around on the attractor in some
complicated manner, eventually visiting every part of the attractor. The next
position can always be simply and accurately predicted from the current position,
but the small, inevitable uncertainty in position continually increases so that a long-
term prediction is impossible, except to say that the point is somewhere on the
attractor. You can think of the attractor as the set of all possible long-term solutions
of the equations that produced it.
Besides the error in knowing perfectly the initial conditions, there are also
105
computer round-off errors at each iteration. Given the extreme sensitivity to small
errors, you may wonder whether any computer is capable of calculating correctly
such a chaotic process. It is true that if the same chaotic equations are iterated on
two computers using different precision or round-off methods, the sequence of
iterates is almost certainly completely different after a few dozen iterations.
However, the appearance of the attractor is probably the same. In such a case, we
say that the solution is structurally stable or robust. Furthermore, according to the
shadowing lemma, an appropriate small change in initial conditions produces a
chaotic sequence that follows arbitrarily close to the computed one.
Every point on the attractor is arbitrarily close to such a periodic orbit, but the
chance that a randomly chosen point on the attractor lies on such an orbit is
infinitesimal. We say that the periodic orbits are dense on the attractor. These orbits,
though infinite in number, constitute a Cantor set of measure zero. The periodic
orbits are unstable in the sense that if you get just slightly off the orbit, you continue
to get farther away with each iteration.
The strange attractors exhibited in this book are examples of orbital fractals.
They should be distinguished from escape-time fractals, which show the basin of
106
attraction and typically display with color the number of iterations required for
points outside the basin to escape beyond some predefined region. The Mandelbrot
and Julia sets are perhaps the best-known escape-time fractals. Escape-time
fractals require much longer computing times to develop but provide dazzling
displays with exotic fine-scale structures.
The previous figures have obvious beauty, but they generally lack symmetry.
Nature mixes symmetry with disorder, and our sense of beauty has developed
accordingly. The Earth viewed from outer space is beautiful in part because the
irregular features of the clouds and continents are superimposed on a nearly
perfect sphere.
There are many ways to do the same with our attractors. Suppose, for
example, X and Y are not the horizontal and vertical positions in a plane but rather
the longitude and latitude on the surface of the Earth. The result is an object that
might resemble a strange planet with swirling clouds, oceans, canals, craters, and
other features.
If θ is the longitude (measured from zero at the right edge) and φ is the latitude
(measured from zero at the top), the X and Y coordinates of the projection of a
sphere onto the screen are given by
Xp = cos _ sin _
107
toggle back and forth between the two types of projection by pressing the P key.
3750 IF Q$ = "P" THEN PJT% = (PJT% + 1) MOD 2: T% = 3: IF N > 999 THEN N = 999
4150 RETURN
108
projected onto a sphere. Note that the features on the attractors tend to converge
at the poles at the tops and bottoms of the figures. This convergence could be
suppressed by using an area-preserving transformation that stretches the Y values
near the poles by the same factor that the X values are compressed. The simplest
way to produce this effect is to delete line 4140.
109
Figure 3-43. Two-dimensional quadratic map projected onto a sphere
110
Figure 3-44. Two-dimensional quadratic map projected onto a sphere
111
Figure 3-45. Two-dimensional quadratic map projected onto a sphere
112
Figure 3-46. Two-dimensional cubic map projected onto a sphere
113
Figure 3-47. Two-dimensional cubic map projected onto a sphere
114
Figure 3-48. Two-dimensional cubic map projected onto a sphere
115
Figure 3-49. Two-dimensional cubic map projected onto a sphere
116
Figure 3-50. Two-dimensional quartic map projected onto a sphere
117
Figure 3-51. Two-dimensional quartic map projected onto a sphere
118
Figure 3-52. Two-dimensional quartic map projected onto a sphere
119
Figure 3-53. Two-dimensional quartic map projected onto a sphere
120
Figure 3-54. Two-dimensional quintic map projected onto a sphere
121
Figure 3-55. Two-dimensional quintic map projected onto a sphere
122
Figure 3-56. Two-dimensional quintic map projected onto a sphere
123
Figure 3-57. Two-dimensional quintic map projected onto a sphere
If you are using PowerBASIC or its predecessor, Turbo BASIC, and VGA
graphics, you will notice a slight incompatibility with the CIRCLE command that
causes the size of the circle that surrounds the attractor to vary from case to case.
In these dialects of BASIC, the radius of the circle in SCREEN modes 11 and 12 is
specified in units of the screen height rather than its width. If you encounter this
problem, try replacing .36 * (XH - XL) in line 3320 with .5 * (YH - YL).
Planes and spheres are not the only two-dimensional surfaces onto which
attractors can be projected. A cylinder is another possibility. The cylinder can be
oriented with its axis either horizontal or vertical or tilted at some arbitrary angle. A
torus is another possibility. You may be able to think of other more exotic surfaces
onto which the attractors can be projected.
124
3.7 Designer Plaids
To display the logistic parabola, we need to replace X with the next iterate
of X and Y with the second next iterate of X. Two successive iterations of a quadratic
map requires a fourth-order equation. A code that accomplishes this is
GMu%M13NHUIM10.
There are other examples of two-dimensional maps that are really one-
dimensional maps in disguise. Suppose Xn+1 depends only on Yn and Yn+1
depends only on Xn. Then Xn+2 depends only on Xn, and we have a one-
dimensional map for X in which Y is merely an intermediate value of X. The most
general fifth-order polynomial example of such a case is
Figures 3-58 through 3-61 show sample attractors obtained in this way. Notice
that they fill in rectangular regions resembling a plaid tartan, in sharp contrast to all
the previous cases. These attractors are especially appropriate for projecting onto
spheres because the features line up east-west along parallels and north-south
along meridians. Figures 3-62 and 3-63 show some examples of plaid planetary
attractors.
125
Figure 3-58. Two-dimensional quadratic plaid map
126
Figure 3-59. Two-dimensional cubic plaid map
127
Figure 3-60. Two-dimensional quartic plaid map
128
Figure 3-61. Two-dimensional quintic plaid map
129
Figure 3-62. Two-dimensional quadratic plaid map on a sphere
130
Figure 3-63. Two-dimensional quintic plaid map on a sphere
You might want to try adding colors to emulate a decorative cloth pattern.
One way to do this is to color the pixels according to the number of times they are
visited by the orbit. This is easily done by changing line 2300 in the program to
which causes the color of the existing point at (XP, YP) to be tested and then plotted
with the next color in the palette of 16 colors. In Chapter 4, we discuss other ways
to produce colorful attractors.
131
3.8 Strange Attractors that Don’t
From the foregoing discussion, you might conclude that all chaotic equa-
tions produce strange attractors. Such is not the case. Under certain conditions, the
successive iterates of an equation wanders chaotically throughout a region of the
plane. There is no basin of attraction, and initial conditions near but outside the
chaotic region are not drawn to the region but rather lie on closed curves. Although
the chaotic region is not a strange attractor, it may have considerable beauty.
For a chaotic solution not to attract, the area occupied by a cluster of nearby
initial conditions must remain the same with successive iterations. The cluster
generally contracts in one direction and expands in the other, but the contraction
and expansion just cancel, producing a long, thin filament of constant area. A
characteristic of such a case is that the two Lyapunov exponents are equal in
magnitude but of opposite signs. Such a system is area-preserving. An important
class of area-preserving systems are Hamiltonian systems with their corresponding
symplectic maps.
You might think that Hamiltonian systems are relatively rare in nature, be-
cause they require a special condition. However, there are many important
examples of Hamiltonian chaos. They arise because there are quantities in nature
such as energy and angular momentum that, in the absence of friction, remain
accurately constant no matter how complicated the behavior of the system. We
say these quantities are conserved or that they are constants of the motion. The
motion of a planet orbiting a binary-star system or the motion of an electron near
the null in a magnetic field exhibits Hamiltonian chaos. A more familiar example is
the filamentation of milk when it is stirred into coffee, in which case the volume of
the milk is conserved because liquids are nearly incompressible.
With equations such as those we have been using with randomly chosen
coefficients, the chance of inadvertently finding an area-preserving solution is
essentially zero. However, by placing appropriate conditions on the coefficients,
we can guarantee such solutions. The following is an example of an area-preserv-
ing, two-dimensional polynomial map:
This map is fifth order to provide seven arbitrary coefficients that ensure a
large number of solutions. The coefficient labels are consistent with the general two-
dimensional fifth-order map, in which 33 of the coefficients have been set to zero.
132
The two terms preceded with ± have coefficients (a17 and a23) of either +1 or -1,
and this feature guarantees an area-preserving solution. If the signs are the same
(both plus or both minus), chaotic solutions are not found. Hamiltonian chaos can
occur when the signs are opposite. The negative product of these two coefficients
is the Jacobian of the map (J = -a17a23). The Jacobian is a measure of the net
contraction, and it must equal 1.0 for a Hamiltonian system.
Sample chaotic symplectic maps are shown in Figures 3-64 through 3-71.
Most of the cases resemble chains of islands in which each island contains a fixed
point surrounded by closed contours that are not shown. These cases were
produced using initial values of X = Y = 0.05. Other initial conditions would produce
completely different pictures because there is no attractor.
133
Figure 3-64. Two-dimensional quintic symplectic map
134
Figure 3-65. Two-dimensional quintic symplectic map
135
Figure 3-66. Two-dimensional quintic symplectic map
136
Figure 3-67. Two-dimensional quintic symplectic map
137
Figure 3-68. Two-dimensional quintic symplectic map
138
Figure 3-69. Two-dimensional quintic symplectic map
139
Figure 3-70. Two-dimensional quintic symplectic map
140
Figure 3-71. Two-dimensional quintic symplectic map
The different time behavior of these cases raises an important issue. When
you view any of the figures in this book, you are seeing a static object. However, it
was produced by a dynamic process. Information about the sequence in which the
points accumulated has been lost. This additional information is recovered when
141
you watch the attractors develop on your computer screen. Most of the attractors
fill in uniformly. Their contrast gets progressively greater, much like a photographic
print being developed.
However, the symplectic maps develop more slowly and in stages. If your
computer has a color monitor, you might try exhibiting this sequence by plotting the
points in color and changing the color every few thousand iterations. Some
examples using this technique are shown in Section 7.5. If you try this for the non-
symplectic attractors, the colors overlap and merge into a uniform gray, or you just
see the most recent color. For the symplectic maps, beautiful color patterns can be
produced. Otherwise, continue on to the next chapter, where various color
techniques are discussed.
The program modification PROG10 uses the X value to control the pitch and
the Y value to control the duration of the notes. For convenience, we assume that
the longest note is a whole note and the shortest note is a sixteenth note. Dotted
notes and rests are not allowed.
PROG10 also adds to the program a menu screen that reminds you of the S
command, which toggles the sound on and off, and the P command, which
toggles the projection between planar and spherical. We also introduce an A
command to initiate the search for attractors, a D command to toggle between
one-dimensional and two-dimensional maps, an I command to let you input the
code of an attractor that you know, and an X command to exit the program.
Pressing any other key displays the menu screen.
142
PROG10. Changes required in PROG09 to produce chaotic music and provide a menu screen
1000 REM TWO-D MAP SEARCH (With Music and Menu Screen)
2450 IF QM% > 0 THEN GOTO 2490 'Skip tests when not in search mode
3730 IF Q$ = "I" THEN IF T% <> 1 THEN SCREEN 0: WIDTH 80: COLOR 15, 1: CLS : LINE
INPUT "Code? "; CODE$: IF CODE$ = "" THEN Q$ = " ": CLS : ELSE T% = 1: QM% = 1:
GOSUB 4700
143
4200 REM Display menu screen
4300 PRINT TAB(27); "D: System is"; STR$(D%); "-D polynomial map"
4610 Q$ = INKEY$
4630 WEND
4640 RETURN
144
4740 O% = 2 + (ASC(LEFT$(CODE$, 1)) - 65) MOD 4
4810 RETURN
As you listen to the music produced by the various attractors, you may
discover relations between the quality of the music and the appearance of the
attractor. The cases that seem most musical tend to have certain visual character-
istics, which are left for you to discover. Do attractors that appeal to the eye also
appeal to the ear?
After you have generated some music of your own, you may want to try some
of the cases in Table 3-1 using the I command to input them to the program. These
cases have been selected for their musical quality and are limited to quadratic
maps to simplify typing their codes. An interesting study would be to accumulate
your own longer list of musical attractors and to see if they preferentially have
certain fractal dimensions and Lyapunov exponents. If so, then it should be possible
to program the computer to be a music critic as well as an art critic.
145
Table 3-1. List of some musical attractors and their characteristics
Code F L Code F L
146
Chapter 4
Attractors of Depth
4.1 Projections
147
+ a27Yn2 + a28YnZn + a29Zn + a30Zn2 (Equation 4A)
Note that 168 coefficients allows 25168 or about 10234 combinations. This is
a truly astronomical number. Even if only a small fraction of them correspond to
distinct strange attractors, their number enormously exceeds the number of elec-
trons, protons, and neutrons in the entire universe—a mere 1079. Thus the number
of fifth-order three-dimensional strange attractors is essentially infinite. You can
have a large collection of your own, none of which are likely to be reproduced by
anyone else unless you give them the code you used to produce them. The code
is like a combination lock with 168 settings that all must be entered correctly and in
the proper order.
Now we must confront the issue of how best to display an object composed
of points in a three-dimensional space. Such problems are in the domain of a new
specialty called visualization, which we may define as the use of computer imagery
to gain insight into complex phenomena. The need for improved visualization
techniques has emerged from the rapidly growing use of computers as the primary
tool for scientific calculation and modeling. As computers become more powerful,
it is increasingly important to devise methods of dealing with large quantities of
data. The eye and brain are very efficient at discerning visual patterns, and these
patterns permit an intuitive understanding of complicated processes in a way that
equations often cannot. Scientists have recently developed impressive visualiza-
tion techniques, simple versions of which are presented here.
The simplest method is to ignore one of the coordinates and to plot the points
in the remaining two dimensions. This method is equivalent to looking at the shadow
cast by an object when illuminated from directly above by a point-source of light
a large distance away. If the light source is on the Z-axis, we say the attractor is
projected onto the XY plane. The screen used in conjunction with a slide projector
is such a plane. Of course, considerable information about the attractor is lost in
such a projection, but the method is a convenient starting point, and it is simple to
program.
PROG11 provides the changes that must be made in PROG10 to extend the
148
attractor search to three dimensions with order up to five. Since the search slows
down considerably in three dimensions with such a large number of coefficients,
especially if you don’t have a compiled version of BASIC and a fast computer, the
program saves, for each case found, the code, fractal dimension, and Lyapunov
exponent in a disk file with the name SA.DIC (Strange Attractor DICtionary). This
feature allows you to run the program unattended and to collect the attractors it
finds. We will later modify the program to let you examine the cases that you collect.
PROG11. Changes required in PROG10 to search for strange attractors in three dimensions
1530 Z = .05
1550 XE = X + .000001: YE = Y: ZE = Z
149
2460 IF N >= NMAX THEN T% = 2: GOSUB 4900 'Strange attractor found
2530 Z = ZNEW
3140 IF ZMAX - ZMIN < .000001 THEN ZMIN = ZMIN - .0000005: ZMAX = ZMAX + .0000005
3920 IF N = 1000 THEN D2MAX = (XMAX - XMIN) ^ 2 + (YMAX - YMIN) ^ 2 + (ZMAX - ZMIN)
^ 2
3950 D2 = DX * DX + DY * DY + DZ * DZ
4760 IF D% = 3 THEN M% = M% / 2
150
4900 REM Save attractor to disk file SA.DIC
4930 CLOSE #1
4940 RETURN
151
Figure 4-1. Projection of three-dimensional quadratic map
152
Figure 4-2. Projection of three-dimensional quadratic map
153
Figure 4-3. Projection of three-dimensional quadratic map
154
Figure 4-4. Projection of three-dimensional quadratic map
155
Figure 4-5. Projection of three-dimensional quadratic map
156
Figure 4-6. Projection of three-dimensional quadratic map
157
Figure 4-7. Projection of three-dimensional quadratic map
158
Figure 4-8. Projection of three-dimensional quadratic map
159
Figure 4-9. Projection of three-dimensional cubic map
160
Figure 4-10. Projection of three-dimensional cubic map
161
Figure 4-11. Projection of three-dimensional cubic map
162
Figure 4-12. Projection of three-dimensional quartic map
163
Figure 4-13. Projection of three-dimensional quartic map
164
Figure 4-14. Projection of three-dimensional quartic map
165
Figure 4-15. Projection of three-dimensional quintic map
166
Figure 4-16. Projection of three-dimensional quintic map
On the whole, attractors in three dimensions projected onto a plane are not
particularly different or better than the two-dimensional examples of the previous
chapter. Ones with high fractal dimensions (near and above 2) tend to be
uninteresting when projected onto two dimensions because they are too filled-in.
Note also that all the two-dimensional cases are included as special cases of the
three-dimen sional ones and that they can be recovered by setting the appropri-
ate coefficients to zero. For example, the Hénon map can be reproduced in three
dimensions using the code IWM?M 2PM5WM18. You may want to try entering this
case into the program using the I command. Be sure to count the number of Ms very
carefully and to use capital letters.
The attractors displayed in the previous figures are projected onto the XY
plane. They could equally well be projected onto the YZ or ZX plane. With a bit more
effort it would be possible to project them onto a plane inclined at an arbitrary
angle. Attractors are most visually appealing when viewed from a particular
167
direction. The formulas that transform a point with coordinates (X, Y, Z) into a two-
dimensional projection (Xp, Yp) with viewing angles (θ, φ) in spherical coordinates
are
Xp = - X sin _ + Y cos _
With a sufficiently powerful computer, you could rotate the attractor to produce an
animated display. You may want to experiment with these ideas.
168
Figure 4-17. Attractor in Figure 4-4 projected onto the YZ plane
169
Figure 4-18. Attractor in Figure 4-4 projected onto the ZX plane
170
4.2 Shadows
Table 4-1. Default EGA and VGA colors for SCREEN modes 7 to 13
0 Black 8 Gray
6 Brown 14 Yellow
171
If you have CGA graphics, you might try plotting the points in white (COLOR
3) and their shadow in black (COLOR 0) on a magenta (COLOR 2) background
using SCREEN 1 (320 by 200 resolution) and PALETTE 1. In any case, it may help to
adjust the intensity control on the monitor for an easily visible shadow.
Since we have another shade of gray available, we can use it to control the
brightness of the points plotted. The first time a screen pixel is illuminated by a point
on the attractor, we will use low-intensity white (COLOR 7), and subsequent times
we will use high-intensity white (COLOR 15). If your computer has a monochrome
graphics monitor that maps the other colors to various shades of gray, you can
extend this technique to provide additional gray levels, producing an attractor
whose brightness corresponds to the frequency its various regions are visited. This
trick helps to compensate for the limited spatial resolution of the computer screen.
It also helps to draw a grid on the background to make it more obvious that
the attractor is sitting above the screen. The grid is drawn in black (COLOR 0), the
same as the shadow.
If your computer has at least EGA capability, PROG12 produces the desired
shadow display. It allows you to toggle between projections and shadows by
pressing the R key.
1020 DIM XS(499), YS(499), ZS(499), A(504), V(99), XY(4), XN(4), COLR%(15)
172
3230 IF TRD% = 1 THEN LINE (XL, YL)-(XH, YH), COLR%(1), BF: GOSUB 5400
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 2: T% = 3: IF N > 999 THEN N = 999
5100 IF C% = COLR%(2) THEN PSET (XP, YP), COLR%(3) ELSE IF C% <> COLR%(3) THEN
PSET (XP, YP), COLR%(2)
5130 RETURN
173
5420 XP = XMIN + I% * (XMAX - XMIN) / 15
5440 NEXT I%
5480 NEXT I%
5490 RETURN
5720 RETURN
The angle of illumination is determined by the .05 in line 3430. You might try
different values. The value of .05 is the tangent of both the horizontal and vertical
angle that the source of illumination makes with the perpendicular to the plane. The
angle is about 3 degrees toward the left and 3 degrees toward the top of the figure.
Sample attractors produced by PROG12 are shown in Figures 4-19 through 4-34.
174
Figure 4-19. Three-dimensional quadratic map with shadows
175
Figure 4-20. Three-dimensional quadratic map with shadows
176
Figure 4-21. Three-dimensional quadratic map with shadows
177
Figure 4-22. Three-dimensional quadratic map with shadows
178
Figure 4-23. Three-dimensional quadratic map with shadows
179
Figure 4-24. Three-dimensional quadratic map with shadows
180
Figure 4-25. Three-dimensional quadratic map with shadows
181
Figure 4-26. Three-dimensional quadratic map with shadows
182
Figure 4-27. Three-dimensional quadratic map with shadows
183
Figure 4-28. Three-dimensional quadratic map with shadows
184
Figure 4-29. Three-dimensional quadratic map with shadows
185
Figure 4-30. Three-dimensional cubic map with shadows
186
Figure 4-31. Three-dimensional quartic map with shadows
187
Figure 4-32. Three-dimensional quartic map with shadows
188
Figure 4-33. Three-dimensional quintic map with shadows
189
Figure 4-34. Three-dimensional quintic map with shadows
Look closely at the figures with shadows and you can see that it is hard to tell
whether one portion of the attractor lies above or below another portion. One
reason for this is that we have not allowed the closer portion of the attractor to cast
a shadow on the more distant portion. To do so requires a complicated program,
which will be left as a challenge for you.
If you attempt to improve the shadow display in this way, you must store in an
array the largest Z value corresponding to each screen pixel. With VGA (640 by 480),
you need 600 kilobytes (K), even if you convert the Z values into integers. Most
versions of BASIC limit the size of arrays to 64 K, and the disk operating system usually
limits the total program size to about 600 K. Thus you probably need to use a lower
screen resolution or devise a more compact coding scheme. For example, if you
use only 16 values of Z, you can store two screen pixels per byte, which is four times
better than storing the Z value of each pixel as a two-byte integer. Alternately, you
190
might store the Z values of only those pixels that are illuminated, but then you must
devise a quick way to locate the proper element in the array corresponding to
each pair of screen coordinates.
Before each point on the attractor is plotted, you must be sure it doesn’t fall
in the shadow of a previously plotted point. If it doesn’t, then it can be plotted, but
then you have to determine whether it occludes any previously plotted point.
Alternatively, you can first plot all the points and then scan the image starting from
the side toward the illumination, blocking out any points that fall in the shadow of
another point.
4.3 Bands
Another way to display the third dimension is with elevation contours such as
those found on topographic maps. With enough points, you could plot only those
that have specific values of Z. Of course the chance that a point has any particular
exact value of Z is negligibly small, and so the points would accumulate on the
screen very slowly. To make the method work, you have to plot all the points that
lie within bands centered on the desired values.
You have freedom to choose the width of the bands. With narrow bands, the
contours resemble distinct lines, but they form very slowly. With wide bands, the
gaps between the bands are hard to see. By making the bands half as wide as the
spacing between the contours, the bright and dark spaces are equal in width, and
they form rapidly and are easy to see.
You also need to decide how many contours to use. You need at least several
to make the method work, but if you use too many, they begin to run together at
modest screen resolution and number of iterations. For the cases shown here, we
use 15 bands as a reasonable compromise.
Since we used a four-level gray scale to produce the shadows in the previous
displays, we will also use it here to give the bands a softer shading. Of course, this
requires a computer with at least EGA graphics. If your computer has CGA graphics,
you will see only two shades (black and white) with 30 bands in SCREEN mode 2.
The changes required in the program to produce contour bands are shown
in PROG13.
191
PROG13. Changes required in PROG12 to display contour bands
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 3: T% = 3: IF N > 999 THEN N = 999
5130 IF TRD% = 2 THEN PSET (XP, YP), COLR%(INT(60 * (Z - ZMIN) / (ZMAX - ZMIN)
+ 4) MOD 4)
5240 RETURN
Some sample attractors with contour bands produced by PROG13 are shown
in Figures 4-35 through 4-50.
192
Figure 4-35. Three-dimensional quadratic map with contour bands
193
Figure 4-36. Three-dimensional quadratic map with contour bands
194
Figure 4-37. Three-dimensional quadratic map with contour bands
195
Figure 4-38. Three-dimensional quadratic map with contour bands
196
Figure 4-39. Three-dimensional quadratic map with contour bands
197
Figure 4-40. Three-dimensional quadratic map with contour bands
198
Figure 4-41. Three-dimensional quadratic map with contour bands
199
Figure 4-42. Three-dimensional cubic map with contour bands
200
Figure 4-43. Three-dimensional cubic map with contour bands
201
Figure 4-44. Three-dimensional cubic map with contour bands
202
Figure 4-45. Three-dimensional quartic map with contour bands
203
Figure 4-46. Three-dimensional quartic map with contour bands
204
Figure 4-47. Three-dimensional quartic map with contour bands
205
Figure 4-48. Three-dimensional quintic map with contour bands
206
Figure 4-49. Three-dimensional quintic map with contour bands
207
Figure 4-50. Three-dimensional quintic map with contour bands
4.4 Colors
It’s not hard to guess that the next logical step is to use the full array of colors
available on a computer with a color monitor. In SCREEN mode 9 (EGA) and SCREEN
mode 12 (VGA), 16 colors can be displayed simultaneously from a palette of 64
(EGA) or 262,144 (VGA). SCREEN mode 13 (VGA), which is supported by some BASIC
versions, allows 256 colors, but the screen resolution of 320 by 200 is inadequate for
our purposes, and thus it will not be used. In SCREEN mode 1 (CGA) only four colors
can be displayed from one of two palettes. We assume your computer has EGA or
VGA capabilities, but the program also works with CGA if you use SM% = 1 in line
1030. The program is written to simplify extending the technique to future new
graphics modes with more colors and higher resolution, provided they are sup-
ported by your BASIC compiler.
208
We will convert the Z values into 15 different colors (COLOR 1 through COLOR
15). The 16th (COLOR 0) is the background color and will not be used. The default
values of the colors are given in Table 4-1. The changes required to the program are
shown in PROG14.
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 4: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
5160 IF TRD% = 3 THEN PSET (XP, YP), COLR%(INT(NC% * (Z - ZMIN) / (ZMAX - ZMIN)
+ NC%) MOD NC%)
Notice that, where one part of the attractor lies behind another, you can see
209
the more distant portion through the closer portion. Thus the attractor appears
transparent, which enables you to see its interior but tends to diminish the percep-
tion of depth. You might want to modify the program so that the closer portion
occludes the region behind it. It is relatively easy to do so using the BASIC POINT
function to test the existing color of the pixel before plotting the new point and
plotting it only if its color is higher in the sequence than the existing one. Thus each
pixel eventually is colored according to the closest part of the attractor. This effect
can be accomplished by changing line 5160 of PROG14 to
5160 IF TRD% = 3 THEN C% = INT(NC% * (Z - ZMIN) / (ZMAX - ZMIN) + NC%) MOD NC%:
IF POINT(XP, YP) < C% THEN PSET (XP, YP), C%
You can also alter the sequence of colors by changing the values stored in
the array COLR% in line 5630. For example, a sequence that mimics the rainbow
would advance from red (12) through yellow (14), green (10), cyan (11), and blue
(9) to magenta (13). With aerial perspective, brilliant, warm colors such as red
appear closer to the viewer than lighter, less brilliant, cool colors such as blue, which
we associate with the distant sky. Thus assigning red to the large Z values and blue
to the small Z values enhances the illusion of depth.
You may also want to experiment with combining the various display tech-
niques. Clearly there is nothing to preclude displaying a color attractor with
shadows and contour bands. Such combinations offer interesting possibilities that
are exploited for the four-dimensional cases in the next chapter.
210
4.5 Characters
Perhaps the simplest method is to map the Z values into consecutive ASCII
characters, thereby producing a type of gray scale with bands whose darkness
depends on the density of the character. A more reasonable approach is to order
the characters so that the more dense ones correspond to larger values of Z. The
ordering depends on the font, typeface, and size of the characters. For example,
10-point Letter Gothic bold can be ordered as shown in Table 4-2. The table uses 32
characters, which is about the maximum for this technique because many of the
characters have the same density. The eye can distinguish about 500 levels of gray.
This sequence is only one of many that are equally good. To see the gray scale, you
should view the table from at least six feet away. Squinting and removing your
glasses, if you wear them, might also help.
Table 4-2. Gray scale produced by ordering 10-point Letter Gothic bold characters
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
211
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
.:,;"=>!/+?icl7IjvJL64VOASUDXEBM
The character densities for this table were determined by writing each of the
ASCII characters from 33 to 127 (see Table 2-1) to the screen of a Macintosh
computer and then counting the illuminated pixels using the POINT command in
BASIC. Bold characters are chosen for their increased density. Avoid lowercase
characters whenever possible because they often don’t extend the full height and
thus leave a wide blank band between their top and the bottom of the row above.
Be sure to use a monospaced font rather than a proportional one. For the default
font on most IBM computers in VGA SCREEN mode 12, a better sequence is
.-,;=+>i%lI?v7zuCjTFSVGAEUDHBWQ
At such a low resolution, much of the detail is lost. However, if you have a
printer or plotter capable of printing small fonts on a large piece of paper, you can
recover the resolution and produce figures of considerable artistic quality. You can
divide the text into many segments on separate pages and tape them together, or
print them on a paper roll or fanfold paper to make a very skinny attractor many feet
long. With ordinary objects such as the text in this book, extreme stretching in one
dimension just produces sticklike figures. However, strange attractors are fractals,
212
and they have detail on all scales, which ensures that they look interesting however
much they are stretched.
::::..
; ::::
;;;;;;;
""""""""""""";
================
>>>==>>>>>>>!!!!!!
!>>>>!!!!////////////
JJ !!!!!!///++++++++++++++++
J //////++++++??iiiiiiiii??????
JJ +///++???? icccccccciccciiiiiiii
LLvjjI77lllcll777 vvvvvvvJJJJJJJJJJJJJJJJJvvvvvvvvvvvvjjjjjjjIIIII777
LLvvjjI77llll77I7 vJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJvvvvvvvvjjjjjjIIIII7
213
JLLvjjII77lll7III JJJJJJJJJJLLLLLLLLLLLLLLLLLJJJJJJJJJJJJJvvvvvvvjjjjjIIII7
LLvvjjII77777IjI JJJJJLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLJJJJJJJJJvvvvvvjjjjjII
JJJJJJ 66 ASSSSSSSSSSSSSSSUUUUUUUUUUUUUUUUUUUU
JJJJJJ 66 SSSSSSSSSSUUUUUUUUUUUUUUUUUUUUUUUU
214
LJJJJLL 6 SSSSSSUUUUUUUUUUUUUUUUUUUUUUUUUUU
LJJJLLL SSUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDD
LLJLLLLL SUUUUUUUUUUUUUUDDDDDDDDDDDDDDDDD
LLJLLLLL UUUUUUUUUUDDDDDDDDDDDDDDDDDDDDD
LLLLLLLL UUUUUUDDDDDDDDDDDDDDDDDDDDDDDD
LLLLLLLLL UUUDDDDDDDDDDDDDDDDDXXXXXXXXXX
LLLLLLLLL UDDDDDDDDDDDDDDXXXXXXXXXXXXXX
LLLLLLLLL DDDDDDDDDDDXXXXXXXXXXXXXXXXXX
LLLLLLLL66 SS DDDDDDDDXXXXXXXXXXXXXXXXXXXX
LLLL6666666444444VVVVVVOOSSUUUUUUUDDDDDDDDXXXXXXXXEEEEEEEEEBBBBBBBBBBMMMMMMMMM
215
LLLLL666666444444VVVVVVOO SSSUUUUUUUDDDDDDDDXXXXXXXXEEEEEEEEEBBBBBBBBBMMMMMMMM
LLLL666666444444VVVVVVOOO SSSSUUUUUUUDDDDDDDDXXXXXXXEEEEEEEEEBBBBBBBBBBMMMMM
LL666666444444VVVVVVOOO SSSSUUUUUUUDDDDDDDXXXXXXXXEEEEEEEEBBBBBBBBBB
L66666644444VVVVVVOOOO SSSSSUUUUUUUDDDDDDDXXXXXXXXEEEEEEEEBBB
6666444444VVVVVVOOOO SSSSSSUUUUUUUDDDDDDDXXXXXXXXEEEEEEE
444444VVVVVVOOOOO ASSSSSSUUUUUUUDDDDDDDXXXXXXXEEEE
4VVVVVVOOOOOO AAASSSSSSUUUUUUUDDDDDDDXXXXXXXX
VVVOOOOOOOAAAAAASSSSSSUUUUUUUDDDDDDDXXXXX
VOOOOOOAAAAAASSSSSSUUUUUUUDDDDDDDXXX
OOOAAAAAASSSSSSSUUUUUUDDDDDDDD
AAAAAASSSSSSSUUUUUUDDDDD
AAASSSSSSSUUUUUUDDD
SSSSSUUUUUU
4.6 Anaglyphs
216
glasses), the programming is surprisingly simple, and the results can be impressive.
The main drawback is that the images produced are usually monochromatic,
although a gray scale and some limited coloration are possible.
217
Figure 4-51. Line of sight of each eye when viewing anaglyphs
Now suppose you are to perceive the point to be at a distance D - Z from your
eyes (a distance Z in front of the computer screen) as shown in Figure 4-51 (b). We
must then plot two points on the computer screen separated horizontally by a
distance d. From the similarity of the two triangles, we calculate
To achieve the proper linear perspective, we should plot the closer points a
218
little farther apart than the more distant points, but with unfamiliar objects such as
strange attractors, there is little reason to do so. Usually D is much greater that Z, and
we can approximate the right-hand side of Equation 4C by e Z / D. This approxima-
tion causes some expansion of the image for negative Z (behind the screen) and
compression of the image for positive Z (in front of the screen). This compression can
be desirable to keep the image always in front of your face rather than to let it pass
behind your head.
The length of most people’s arms is almost exactly ten times the distance
between their eyes. Therefore, a value of D / e = 10 is appropriate for a computer
screen viewed at arm’s length. In practice, the viewing distance is not very critical.
The perceived depth of the image is enhanced by viewing from a greater distance,
but it usually takes longer for the brain to accommodate, so it is often best to view
first from close up. It sometimes speeds the adjustment to move your head from side
to side.
The computational task, therefore, is to plot each point that makes up the
attractor twice, with a horizontal separation proportional to the distance the point
is to appear in front of or behind the screen, and to arrange that one set of points
be visible only to the left eye and the other only to the right eye. In the anaglyphic
process, this is done by plotting one set of points in red and the other in the
complementary cyan (blue-green) and viewing through appropriate color-filtered
glasses. By convention, the left eye should only respond to the red and the right eye
only to the cyan.
219
Note that individuals who are color blind should experience no difficulty
because it is unnecessary (and indeed undesirable) to perceive the individual
colors; it is only necessary that the eyes be sensitive to them. Certain other eye
defects, particularly those resulting in ocular asymmetry, are more problematic.
You can plot the points on either a black or a white background. With a black
background, the images fuse into white (additive process), and with a white
background, the images fuse into black (subtractive process). The sense of Z is
reversed with the choice of background. With a black background, the red is seen
through the red filter on the left eye, while for a white background, red is seen
through the cyan filter on the right eye. In practice the white background is usually
more satisfactory, but you may want to try it both ways to see which works best for
you. Wherever a red and cyan point overlap, they should be plotted as a single
black point if the background is white or as a single white point if the background
is black. The changes required to the program to produce such anaglyphs are
shown in PROG15.
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 5: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
220
5180 XRT = XP + XZ * (Z - ZA): C% = POINT(XRT, YP)
PROG15 assumes EGA or VGA graphics and a color monitor. If you have CGA
graphics, you can obtain satisfactory results in SCREEN mode 1, PALETTE 1 by
changing the colors in line 5640 to WH% = 3: BK% = 0: RD% = 2: CY% = 1.
Some sample anaglyphs are shown in Plates 9 through 16. Use the special
glasses included with the book. If these glasses are missing, you can probably find
a suitable pair at a comic book store. If you have difficulty acclimating to the
anaglyphs, try viewing them from close-up and then back away once you see the
effect. You may need some practice, especially because the attractors you are
viewing are unfamiliar objects and they lack other depth clues. You might also try
reversing the glasses (red over right eye), which reverses in and out.
221
4.7 Stereo Pairs | Stereo Pairs
Believe it or not, with a bit of practice, you can learn to view attractors in
stereoscopic 3-D without special glasses. For this purpose, we print the two images
side-by-side in the same color instead of superimposed on one another in different
colors as we did with the anaglyphs. This technique permits full-color displays, and
we will exploit this capability in the next chapter. For the moment, let’s consider only
monochrome images.
3320 IF PJT% = 1 AND TRD% < 5 THEN CIRCLE (XA, YA), .36 * (XH - XL)
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 6: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
222
4520 IF TRD% = 5 THEN PRINT "stereogram"
5280 RETURN
If you want to shrink the image for direct viewing from the computer screen,
change the horizontal scale factor (HSF) in line 5250 from 2 to a larger value that
separates the images by about 6.5 centimeters, or less if you are having trouble
adapting to them.
Sample stereo pairs produced by this technique are shown in Figures 4-52
through 4-67. You should hold them exactly horizontally, directly in front of your face
at a normal reading distance, and gaze into the distance until you see three
images. The one in the middle should appear in 3-D, and the ones on each side,
which you must train yourself to ignore, should be in 2-D.
223
Figure 4-52. Stereo pair of three-dimensional quadratic map
224
Figure 4-53. Stereo pair of three-dimensional quadratic map
225
Figure 4-54. Stereo pair of three-dimensional quadratic map
226
Figure 4-55. Stereo pair of three-dimensional quadratic map
227
Figure 4-56. Stereo pair of three-dimensional quadratic map
228
Figure 4-57. Stereo pair of three-dimensional quadratic map
229
Figure 4-58. Stereo pair of three-dimensional quadratic map
230
Figure 4-59. Stereo pair of three-dimensional quadratic map
231
Figure 4-60. Stereo pair of three-dimensional quadratic map
232
Figure 4-61. Stereo pair of three-dimensional quadratic map
233
Figure 4-62. Stereo pair of three-dimensional quadratic map
234
Figure 4-63. Stereo pair of three-dimensional cubic map
235
Figure 4-64. Stereo pair of three-dimensional cubic map
236
Figure 4-65. Stereo pair of three-dimensional quartic map
237
Figure 4-66. Stereo pair of three-dimensional quartic map
238
Figure 4-67. Stereo pair of three-dimensional quintic map
You may find it difficult to adjust to the images at first, but with practice you
should be able to see them almost instantly. Viewing them should be relaxing, with
a sensation resembling a blank stare. Effort is required to return to normal viewing,
much like returning to the words on this page after gazing into the distance.
It might help to close your eyes momentarily and then reopen them if you are
having trouble adapting. You can also buy an inexpensive hand stereoscope
containing prisms that separate and magnify the images so that you can view them
from a closer distance. Such viewing forces the side images out of your field of view
and eases the adjustment to the middle image.
In the 1950s, the View-Master stereo viewer was very popular for home use,
and many stereoscopic photographs were produced. Their popularity has waned,
and the View-Master is no longer made, but similar inexpensive models can still be
239
found in toy stores, often with images of cartoon characters. Stereo images are
usually photographed with a dual camera whose separation can be increased
beyond the normal eye separation to enhance the depth sensation in what is
called hyperstereo.
Some people find short-focus viewing easier than free viewing. If you are
instinctively short-foucus viewing, you will find that the right side of Figure 4-67 is
farther from you than the left side. With free viewing, it will be closer.
Note that with free viewing, the left image disappears when you close your
right eye and the right image disappears when you close your left eye. With short-
focus viewing, the opposite occurs. However, it is incorrect to assume that each eye
sees only one of the images. Both eyes see both images, and the images fuse into
one when your eyes are aimed in the proper direction.
240
4.8 Slices
We will discuss one final way to view attractors resulting from three-dimen-
sional maps. Low-dimensional attractors are like loosely wound balls of string,
whereas high-dimensional ones are more like loaves of bread filled with holes.
Anaglyphs and stereo pairs are effective for cases of low dimension, but as the
dimension increases, the attractor becomes too opaque, and the illusion of depth
is lost.
Carrying the loaf-of-bread analogy a bit further, you could imagine slicing
the loaf into a large number of very thin slices. The result is to decrease the dimension
of the object by one. For example, an object with a fractal dimension of 2.5 would
become an object of dimension of 1.5 in each slice. This is an example of what is
called a Poincaré section (as in "cross section").
Perhaps it’s easier to consider a specific case. Suppose the attractor were a
loosely wound ball of very thin string. The attractor would then be essentially one-
dimensional. The string would cross the slices at a number of points. Thus the slices
would contain dots wherever the string pierced them. A set of a finite number of
dots is an object of zero dimension.
If the attractor were a loosely crumpled piece of paper, its dimension would
be close to two. If you were to cut a thin slice through the crumpled paper, you
would be left with a handful of wormlike paper strings, which are one-dimensional
objects. You should now set the book down, get a piece of paper and a pair of
scissors, and try it for yourself. Be sure to make the slice as thin as possible.
With our maps, which contain only a finite number of points, we cannot make
the slices too thin, lest they contain so few points as to be invisible. Furthermore, it
is impractical to look at all the slices if they are very thin because there are too many
of them. As always, we have to compromise. We’ll use 16 slices and lay them out
in a 4 by 4 array so that we can see them all at once. On the computer screen, this
method entails a serious sacrifice in resolution, but it does illustrate the principle. You
might want to experiment with using a larger number of slices but displaying only a
fraction of them. For example, try using 64 slices, and display every fourth one.
The modifications that are required to make the program produce a sliced
display are shown in PROG17.
241
PROG17. Changes required in PROG16 to produce slices
3270 FOR I% = 1 TO 3
3300 NEXT I%
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 7: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
5330 RETURN
242
way you read (in most Western languages, at least). In these cases attractors with
dimensions greater than two have been chosen; otherwise, the dimension of the
slices would be too small to be interesting.
243
Figure 4-69. Slices of a three-dimensional quadratic map
244
Figure 4-70. Slices of a three-dimensional quadratic map
245
Figure 4-71. Slices of a three-dimensional quadratic map
246
Figure 4-72. Slices of a three-dimensional cubic map
247
Figure 4-73. Slices of a three-dimensional cubic map
248
Figure 4-74. Slices of a three-dimensional cubic map
249
Figure 4-75. Slices of a three-dimensional cubic map
250
Figure 4-76. Slices of a three-dimensional quartic map
251
Figure 4-77. Slices of a three-dimensional quartic map
252
Figure 4-78. Slices of a three-dimensional quartic map
253
Figure 4-79. Slices of a three-dimensional quartic map
254
Figure 4-80. Slices of a three-dimensional quintic map
255
Figure 4-81. Slices of a three-dimensional quintic map
256
Figure 4-82. Slices of a three-dimensional quintic map
257
Figure 4-83. Slices of a three-dimensional quintic map
258
Chapter 5
The Fourth Dimension
5.1 Hyperspace
Before discussing the fourth dimension, it is useful to clarify and refine some
familiar terms. Perhaps the best example of a one-dimensional object is a straight
line. The line may stretch to infinity in both directions, or it may have ends. A line
remains one-dimensional even if it bends, in which case we call it a curve.
259
A special and important example of a curve is a circle—a curve of finite
length but without ends, every segment of which lies at a constant distance from
a point at the center. Every circle lies in a plane, which is a flat, two-dimensional
entity. Like a line, the plane may stretch to infinity in all directions, or it may have
edges. If a plane has an edge, we call it a disk. Note the distinction between a circle,
which is a one-dimensional object that does not include its interior, and a circular
disk, which is a two-dimensional object that includes the interior.
Just as not all lines are straight, not all two-dimensional objects are flat. A
sheet of paper of negligible thickness remains two-dimensional if it is curled or even
crumpled up, in which case it is no longer a plane but is still a surface. A curved
surface has a Euclidean dimension of at least three. A surface can be finite but
without edges. An example is a sphere, every segment of which is at a constant
distance from its center.
Note that just as a circle doesn’t include its interior, neither does a sphere.
When we want to refer to the three-dimensional region bounded by a sphere, we
call it a ball. This terminology is universal among mathematicians, but not among
physicists, who sometimes consider the dimension of circles and spheres to be the
minimum Euclidean dimension of the space in which they can be embedded (two
and three, respectively).
If you have two spinning balls that move independently, you need a phase
space with twice as many (24) dimensions, and so forth. Contemplate the phase-
space dimension required to specify the motion of more than 1025 molecules in
every cubic meter of air! Sometimes physicists even find it useful to perform
calculations in an infinite-dimensional space, called Hilbert space.
260
You might also be interested in other properties of the balls, such as their
temperature, color, or radius. Thus the state of the balls as time advances can be
described by a curve, or trajectory, in some high-dimensional space called state
space, in which the various perpendicular directions correspond to the quantities
that describe the balls. The trajectory is a curve connecting temporally successive
points in state space.
You have probably heard of time referred to as the fourth dimension and
associate the idea with the theory of relativity. Long before Einstein, it was obvious
that to specify an event, as opposed to a location, it is necessary to specify not only
where the event occurred (X, Y, and Z) but also when (T). We can consider events
to be points in this four-dimensional space.
Note that the spatial coordinates of a point are not unique. An object four
feet in front of one observer might be six feet to the right of a second and two feet
above a third. The values of X, Y, and Z of the position depend on where the
coordinate system is located and how it is oriented. However, we would expect the
various observers to agree on the separation between any two locations. Similarly
we expect all observers to agree on the time interval between two events.
The special theory of relativity asserts that observers usually do not agree on
either the separation or the time interval between two events. Events that are
simultaneous for one observer will not be simultaneous for a second moving relative
to the first. Similarly, two successive events at the same position as seen by one
observer will be seen at different positions by the other.
You have probably heard that, according to the special theory of relativity,
moving clocks run slow and moving meter sticks are shortened. (It is also true that
the effective mass of an object increases when it moves, leading to the famous
E = mc2, but that’s another story.) These discrepancies remain even after the
observers correct for their motion and for the time required for the information
about the events to reach them traveling at the speed of light. It is important to
understand that these facts have nothing to do with the properties of clocks and
meter sticks and that they are not illusions; they are properties of space and time,
neither of which possess the absolute qualities we normally ascribe to them.
What is remarkable is that all observers agree on the separation between the
events in four-dimensional space-time. This separation is called the proper length,
and it is calculated from the Pythagorean theorem by taking the square root of the
sum of the squares of the four components after converting the time interval (∆T) to
a distance by multiplying it by the speed of light (c). The only subtlety is that the
square of the time enters as a negative quantity:
261
Proper length = [_X2 + _Y2 + _Z2 - c2_T2]1/2 (Equation 5A)
The minus sign also means that proper length, unlike ordinary length, may be
imaginary. If the proper length is imaginary, we say the events are separated in a
timelike, as opposed to a spacelike, manner. Timelike events can be causally
related (one event can influence the other), but spacelike events cannot, because
information about one would have to travel faster than the speed of light to reach
the other, which is impossible. Events separated in a timelike manner are more
conveniently characterized by a proper time:
In this case, time is real, but space is imaginary. Proper length is the length of an
object as measured by an observer moving with the same velocity as the object,
and proper time is the time measured by a clock moving with the same velocity as
the observer.
Quantities such as proper length and proper time on which all observers
agree, independent of their motion, are called invariants. The speed of light itself
is an invariant. There are many others, and they all involve four components that
combine by the Pythagorean theorem.
Thus the theory of relativity ties space and time together in a very fundamen-
tal way. One person’s space is another person’s time. Since space and time can be
traded back and forth, there is no reason to call time the fourth dimension any more
than we call width the second dimension. It is better just to say that space-time is
262
four-dimensional, with each dimension on an equal footing. The apparent asym-
metry between space and time comes from the large value of c (3 x 108 meters per
second, or about a billion miles per hour) and the fact that time moves in only one
direction (past to future). It is also important to understand that, although special
relativity is called a "theory," it has been extensively verified to high accuracy by
many experiments, most of which involve particle accelerators.
A hypersphere consists of all points at a given distance from its center in four-
dimensional space. Its hypersurface is three-dimensional and consists of an infinite
family of spheres, just as the surface of an ordinary sphere is two-dimensional and
consists of an infinite family of circles. We have reason to believe that our Universe
might be a hypersurface of a very large hypersphere, in which case we could see
ourselves if we peered far enough into space, except for the fact that we are also
looking backward to a time before Earth existed. We would also need an incredibly
powerful telescope to see Earth in this way. Thus our perception that space is three-
dimensional could be analogous to the ancient view that Earth was flat, a
consequence of experience limited to a small portion of its surface.
5.2 Projections
263
equal footing. We use the first letters M, N, O, and P to code 4-D attractors of second
through fifth orders, respectively. The number of coefficients for these cases is 60,
140, 280, and 504, respectively. The number of coefficients for order O is (O + 1)(O
+ 2)(O + 3)(O + 4) / 6. The number of four-dimensional fifth-order codes is 25504, a
number too large to compare to anything meaningful; it might as well be infinite.
1020 DIM XS(499), YS(499), ZS(499), WS(499), A(504), V(99), XY(4), XN(4), COLR%(15)
1540 W = .05
1550 XE = X + .000001: YE = Y: ZE = Z: WE = W
264
2410 IF ABS(XNEW) + ABS(YNEW) + ABS(ZNEW) + ABS(WNEW) > 1000000! THEN T% = 2
2540 W = WNEW
2960 DL2 = DLX * DLX + DLY * DLY + DLZ * DLZ + DLW * DLW
3150 IF WMAX - WMIN < .000001 THEN WMIN = WMIN - .0000005: WMAX = WMAX + .0000005
3920 IF N = 1000 THEN D2MAX = (XMAX - XMIN) ^ 2 + (YMAX - YMIN) ^ 2 + (ZMAX - ZMIN)
^ 2 + (WMAX - WMIN) ^ 2
3950 D2 = DX * DX + DY * DY + DZ * DZ + DW * DW
If you run PROG18 under certain old versions of BASIC, such as BASICA and
GW-BASIC, you are likely to get an error in line 2710 when the program attempts to
construct a code for the fourth-order and fifth-order maps as a result of the string-
length limit of 255 characters. In such a case, you may need to restrict the search
265
to second and third orders by setting OMAX% = 3 in line 1060. Alternatively, it’s not
difficult to modify the program to store the code in a pair of strings or to replace the
string with a one-dimensional array of integers containing the numeric equivalents
of each character in the string, perhaps with a terminating zero to signify the end
of the string. For example, after dimensioning CODE%(504) in line 1020, line 2710
would become
Also notice that the search for attractors is painfully slow unless you have a
very fast computer and a good compiler. Refer back to Table 2-2, which lists some
options for increasing the speed. The search can be made faster by limiting it to
second order by setting OMAX% = 2 in line 1060.
We have another trick we can use to increase dramatically the rate at which
four-dimensional strange attractors are found without sacrificing variety. It turns out
that most of these attractors have their constant terms near zero. The reason
presumably has to do with the fact that the origin (X = Y = Z = W = 0) is then a fixed
point, and the initial condition is chosen near the origin (X0 = Y0 = Z0 = W0 = 0.05).
If the fixed point is unstable, then we have one of the conditions necessary for
chaos. It is easy to accomplish this by adding after line 2730 a statement such as
This increases the rate of finding attractors by about a factor of 50. Many of the
attractors illustrated in this chapter were produced in this way. This change also
increases the rate for lower-dimensional maps, but by a much smaller factor. This
266
improvement suggests that there is yet room to optimize the search routine by a
more intelligent choice of the values of the other coefficients.
Note that PROG18 does not attempt to display the fourth dimension but
projects it onto the other three, for which all the visualization techniques of the last
chapter are available. Don’t waste too much time trying to understand what it
means to project a four-dimensional object onto a three-dimensional space. It is just
a generalization of projecting a three-dimensional object onto a two-dimensional
surface. In the program, it simply involves plotting X, Y, and Z and ignoring the
variable W.
267
Figure 5-1. Projection of four-dimensional quadratic map
268
Figure 5-2. Projection of four-dimensional quadratic map
269
Figure 5-3. Projection of four-dimensional quadratic map
270
Figure 5-4. Projection of four-dimensional quadratic map
271
Figure 5-5. Projection of four-dimensional quadratic map
272
Figure 5-6. Projection of four-dimensional quadratic map
273
Figure 5-7. Projection of four-dimensional quadratic map
274
Figure 5-8. Projection of four-dimensional quadratic map
275
Figure 5-9. Projection of four-dimensional quadratic map
276
Figure 5-10. Projection of four-dimensional quadratic map
277
Figure 5-11. Projection of four-dimensional quadratic map
278
Figure 5-12. Projection of four-dimensional quadratic map
279
Figure 5-13. Projection of four-dimensional quadratic map
280
Figure 5-14. Projection of four-dimensional quadratic map
281
Figure 5-15. Projection of four-dimensional quadratic map
282
Figure 5-16. Projection of four-dimensional quadratic map
283
Figure 5-17. Projection of four-dimensional quadratic map
284
Figure 5-18. Projection of four-dimensional cubic map
285
Figure 5-19. Projection of four-dimensional cubic map
286
Figure 5-20. Projection of four-dimensional quartic map
287
5.3 Other Display Techniques
Projecting two of the four dimensions onto the remaining two is akin to buying
a Ferrari to make trips to the grocery store. Much of our effort is wasted. We need
to use the techniques developed in the last chapter to display three dimensions and
devise additional methods to display simultaneously the fourth dimension.
Table 5-1. Combinations of display techniques and the number of dimensions that can be visualized
with each
Third Dimension
Fourth Project Shadow Bands Color Anaglyph Stereo Slices
Dimension
Project 2D 3D 3D 3D 3D 3D 3D
Shadow 3D - 4D 4D ? ? 4D
Bands 3D 4D ? 4D 4D 4D 4D
Color 3D 4D 4D - - 4D 4D
Anaglyph 3D ? 4D - - ? 4D
Stereo 3D ? 4D 4D ? - 4D
Slices 3D 4D 4D 4D 4D 4D -
In Table 5-1, the entries in boldface are the ones we will implement in the
program. They were chosen because of their visual effectiveness, ease of program-
ming, and lack of redundancy with other combinations. Cases below and to the left
of the diagonal duplicate those above and to the right. The changes needed in the
program to produce such four-dimensional displays are shown in PROG19.
288
PROG19. Changes required in PROG18 to display the fourth dimension
3720 IF Q$ = "H" THEN FTH% = (FTH% + 1) MOD 3: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
5030 IF FTH% = 1 THEN IF INT(30 * (W - WMIN) / (WMAX - WMIN)) MOD 2 THEN GOTO
5330
5050 IF D% < 3 THEN PSET (XP, YP): GOTO 5330 'Skip 3-D stuff
5080 IF D% > 3 AND FTH% = 2 THEN PSET (XP, YP), C4%: GOTO 5110
289
5140 IF D% > 3 AND FTH% = 2 AND (INT(15 * (Z - ZMIN) / (ZMAX - ZMIN) + 2) MOD
2) = 1 THEN PSET (XP, YP), C4%
5260 XRT = XA + (XP + XZ * (Z - ZA) - XL) / HSF: PSET (XRT, YP), C4%
5270 XLT = XA + (XP - XZ * (Z - ZA) - XH) / HSF: PSET (XLT, YP), C4%
5630 IF TRD% = 3 OR (D% > 3 AND FTH% = 2 AND TRD% <> 1) THEN FOR I% = 0 TO NC%:
COLR%(I%) = I% + 1: NEXT I%
290
Figure 5-21. Four-dimensional quadratic map with shadow bands
291
Figure 5-22. Four-dimensional quadratic map with shadow bands
292
Figure 5-23. Four-dimensional quadratic map with shadow bands
293
Figure 5-24. Four-dimensional quadratic map with shadow bands
294
Figure 5-25. Four-dimensional quadratic map with shadow bands
295
Figure 5-26. Four-dimensional quadratic map with shadow bands
296
Figure 5-27. Four-dimensional quadratic map with shadow bands
297
Figure 5-28. Four-dimensional cubic map with shadow bands
298
Figure 5-29. Four-dimensional quadratic map with stereo bands
299
Figure 5-30. Four-dimensional quadratic map with stereo bands
300
Figure 5-31. Four-dimensional quadratic map with stereo bands
301
Figure 5-32. Four-dimensional cubic map with stereo bands
302
Figure 5-33. Four-dimensional cubic map with stereo bands
303
Figure 5-34. Four-dimensional cubic map with stereo bands
304
Figure 5-35. Four-dimensional quartic map with stereo bands
305
Figure 5-36. Four-dimensional quartic map with stereo bands
306
Figure 5-37. Four-dimensional quadratic map with sliced bands
307
Figure 5-38. Four-dimensional quadratic map with sliced bands
308
Figure 5-39. Four-dimensional quadratic map with sliced bands
309
Figure 5-40. Four-dimensional quadratic map with sliced bands
310
Figure 5-41. Four-dimensional cubic map with sliced bands
311
Figure 5-42. Four-dimensional quartic map with sliced bands
312
Figure 5-43. Four-dimensional quartic map with sliced bands
313
Figure 5-44. Four-dimensional quintic map with sliced bands
The simplest display technique is to project the fifth dimension onto the other
four. This is what the program does automatically if you don’t do anything special.
Several combinations of techniques, which we have already developed, are
capable of displaying five dimensions. You might try combining shadows, bands,
314
and color, for example. Table 5-2 lists the seven possible combinations of five-
dimensional display techniques that don’t lead to visual contradictions.
Table 5-2. Combinations of display techniques that can be used in five dimensions
315
traditional pen plotters because they are faster and quieter and don’t require
special paper. They can also print gray scales. With care, you can piece together
smaller segments printed by more conventional means.
Inks are available in only a limited number of colors, and pen plotters are
usually capable of accommodating only a small number of pens. The pens can be
sequenced to place compatible colors next to one another. With eight pens and
commonly available inks, a good sequence is magenta, red, orange (or yellow),
brown, black, green, turquoise, and blue. The closest color sequence for viewing on
the computer screen from Table 4-1 is 13, 12, 4 (or 14), 6, 8, 2, 3, and 9, with a white
(15) background. With upwards of 20 characters producing different color intensi-
ties, the limitation of eight colors of ink is not a serious one. With eight colors and ASCII
codes from 32 to 255, you can have 28 different intensities for each color. The inks
can be mixed to produce different shades of the colors. Pencils are less expensive
and don’t clog or dry out as pens often do, but pencil plots have a tendency to
smudge. Ink, of course, also smudges until it is thoroughly dry. Plotters are relatively
slow, and attractors produced by this method typically require a few hours to a full
day to produce.
Common paper types are tracing bond, which is the most economical,
vellum, which is smooth and translucent, and polyester film, which is highly translu-
cent, dimensionally stable, and relatively expensive. The translucent papers offer
the interesting possibility of backing the print with a monochrome or color copy of
itself to enhance the contrast or to produce a shadow effect if the two are
displaced slightly. Other interesting effects can be achieved by backing one
316
translucent attractor with a print of another or by back-lighting the print. Some
papers stretch slightly and thus have a tendency to wrinkle. Paper with significant
acid content should be avoided because it turns yellow and becomes brittle with
age.
Some of the most artistic examples of strange attractors have been pro-
duced by these techniques, but they cannot be adequately illustrated in this book.
No computer program is offered, since it is so dependent on your hardware. You will
want to experiment to find the technique that works best for you and that makes
the most effective use of your printer or plotter.
To produce a mural, you need to start with a large number of plots, each
showing a small section of the attractor. A property of fractals is that they have
detail on all scales, and thus a large mural should look interesting when viewed
either from a distance or close up.
You might also photograph the computer screen or a high-quality print and
produce slides that can be projected onto a large surface or screen with a slide
projector. Equipment is available commercially for producing slides directly from
digital computer output. A sequence of such slides makes a very compelling
presentation or visual accompaniment to a lecture or musical production.
The color slices shown in Plate 22 suggest the possibility of making color
movies by extending the technique to a very large number of slices and using each
one as a frame of a movie. The effect is to cause the attractor to emerge at a point
in an empty field and to grow slowly, bending and wiggling until fully developed,
and then to disappear slowly into a different point. If the technology for doing this
is not available to you, try printing a large number of attractor slices on small cards
and fanning through them to produce a semblance of animation. This technique,
using the attractors described in Section 7.6, was used to produce the animation
in the upper-right corner of the odd pages of this book.
317
If the idea of making strange-attractor movies appeals to you, another
technique is to take one of your favorite attractors and slowly change one or more
of the coefficients in successive frames of the movie. A good way to start is to
multiply all the coefficients by a factor that varies from slightly less than 1.0 to slightly
greater than 1.0. You must determine the range over which the coefficients can be
changed without the solutions becoming unbounded or nonchaotic. The ends of
this range then become the beginning and end of the movie.
Sometimes the attractor slowly and continuously alters its shape. The changes
can involve bifurcations, such as the period-doubling sequence in the logistic
equation described in Chapter 1. Such bifurcations are called subtle. At other times,
the attractor and its basin abruptly disappear at a critical value of the control
parameter. Such discontinuous bifurcations are called catastrophes.
If the control parameter is changed in the opposite direction, the result may
be different from simply running the movie backward. This is an example of
hysteresis, which is a form of memory in a dynamical system. It serves to limit the
occurrence of catastrophes. The thermostat that controls your heat probably uses
hysteresis to keep the furnace from cycling on and off too frequently. Catastrophic
bifurcations usually exhibit hysteresis, whereas subtle bifurcations do not.
These four-dimensional maps are also well suited for color holographic
display or for experimentation with virtual reality, in which the view is controlled by
the motion of your head and hands to give the sensation of moving through the
object. The technology is complicated, but the results are visually and mentally
stimulating.
If you have worked carefully through the text, your program has created a
disk file SA.DIC containing the codes of all the attractors generated since you ran
the PROG11 program. We now develop the capability to examine these attractors
and save the interesting ones in a file FAVORITE.DIC, while discarding the others. This
feature allows you to run the program overnight and collect attractors for rapid
viewing the next day. This capability is especially useful if you have a slow computer.
The required program changes are shown in PROG20.
PROG20. Changes required in PROG19 to evaluate the attractors in SA.DIC and save the best of
318
them in FAVORITE.DIC
1390 NE = 0: CLOSE
2630 IF EOF(1) = 0 THEN LINE INPUT #1, CODE$: GOSUB 4700: GOSUB 5600
3380 LOCATE 1, 69: PRINT CINT((LOF(1) - 128 * LOC(1)) / 1024); "K left";
319
4220 WHILE Q$ = "" OR INSTR("AEIX", Q$) = 0
5830 IF Q$ = CHR$(27) THEN CLS : GOSUB 6000: Q$ = " ": QM% = 0: GOTO 5850
5850 RETURN
5930 CLOSE #2
5940 RETURN
6050 WHILE NOT EOF(1): LINE INPUT #1, CODE$: PRINT #2, CODE$: WEND
320
6060 CLOSE
6090 RETURN
The program uses the E key to enter the evaluation mode. When in this mode,
the attractors in SA.DIC are displayed one by one. Each case remains on the screen
and continues to iterate until you press the spacebar, which deletes it, the Enter key,
which saves it in the file FAVORITE.DIC, the Esc key, which exits the evaluation mode,
or, in rare cases, until the solution becomes unbounded, whereupon it is deleted.
While an attractor is being displayed, you can press the H, R, P, and S keys to change
the way it is displayed without returning to the menu screen. The upper-right corner
of the screen shows the number of kilobytes left to be evaluated in the SA.DIC file.
When in the evaluation mode, the program bypasses the calculation of the fractal
dimension and Lyapunov exponent so that each case is displayed more quickly.
321
Chapter 6
Fields and Flows
Successive iterates of the maps in the previous chapters are usually at widely
different positions on the attractors. The points dance around like fleas jumping on
the back of a dog, eventually, but gradually, visiting every allowed location. Most
processes in nature don’t occur that way but progress slowly and continuously from
some initial condition through a succession of nearby intermediate states to the
final condition.
If you take a trip across the country, your trajectory through three-dimen-
sional space (or even in four-dimensional space-time) is a continuous one-dimen-
sional curve. Only in science fiction is Captain Kirk able to dematerialize at one
position and rematerialize somewhere else, without occupying a succession of
intermediate positions. Most substances in nature obey a continuity equation,
which guarantees that if their quantity decreases at some position, the decrease
must be accompanied by a flow of the substance away from the position. Note that
this is a stronger condition than a conservation law, which requires only that the total
quantity of the substance remains the same.
There is a relation between flows and maps. Imagine a fly trapped in a room
and moving in a complicated, random manner. Its trajectory is a one-dimensional
curve that eventually fills the entire room. However, if you observe the fly with a
strobe lamp that flashes periodically, the trajectory is a succession of dots, with
each dot separated from the previous dot by a significant distance. The dots also
eventually fill the entire three-dimensional region, but it takes longer for this to occur.
However, if the fly’s motion is chaotic rather than random, neither the curve
322
nor the dots fill the room; rather, they lie on a strange attractor that occupies a
negligible portion of the room. The attractor consisting of all the possible dots often
has a lower dimension than the attractor consisting of all the possible curves. Thus
a map can be thought of as a crude description of a flow, in which the intervening
details of the motion are ignored.
The equations that describe flows are of a different type than those that
describe maps. They are called differential equations, and they involve the rate of
change of a quantity. We will consider only ordinary differential equations (ODEs),
as distinguished from the partial differential equations (PDEs) used to describe the
behavior of complicated objects like fluids that have intrinsically infinite-dimen-
sional state spaces. Dynamical systems described by ODEs involve only the time
rate of change of the position of a point in state space, whereas with PDEs, the
variables are quantities like density, temperature, and electric field that change in
space as well as time. A wave is an example of a dynamical system described by
a PDE.
Consider an object moving in the X direction. Its speed is the rate of change
of its position, and we will denote this quantity by X’ (pronounced "X prime"). It is the
distance the object moves in a brief interval of time divided by the time interval. If
you know some calculus, you recognize this as the time-derivative of X, usually
denoted by dX/dt. The rate of change of position is what the speedometer on your
car, or the police radar, reads. The rate of change of the speed is the acceleration.
More properly, we should call these quantities the time rate of change, since
quantities can also change in space. For example, the spatial rate of change in
altitude of a road is called its grade.
323
An object moving in three-dimensional space has a constantly changing
value not only of X but also of Y and Z. Furthermore, X’, Y’, and Z’ usually depend
on position (X, Y, and Z). For example, a particle moving clockwise in a circle about
the origin in the XY plane is described by the following pair of differential equations:
X’ = Y
Y’ = -X (Equation 6A)
Such a set of equations describes, at least approximately, the motion of the earth
around the sun. This type of regular motion is not chaotic, and it does not lead to
visually interesting strange attractors.
Some differential equations can be solved easily using calculus. For example,
Equation 6A has the solution
X = A sin(t + _)
which specifies the X and Y positions at any time t. The quantities A and φ are
constants that are determined from the initial conditions (the values of X and Y at
t = 0). If you are interested only in the shape of the trajectory, and not in where the
object is along it at any particular time, you can eliminate the t in Equations 6B to
get a relation between X and Y,
X2 + Y2 = A2 (Equation 6C)
which is the equation for a circle of radius A centered on the origin (X = Y = 0).
With this interpretation, the first part of Equation 6A defines the velocity (Y) as
324
the rate of change of position (X’). If you remember your physics, the second part
of Equation 6A is Newton’s second law (F = ma), in which the force F obeys Hooke’s
law for springs (F = - kX), and the acceleration a is the rate of change of velocity (Y’).
It is interesting that the same set of differential equations with a change in the
meaning of the variables can describe the motion of an object traveling in a circle
or an object oscillating on the end of a spring. Equation 6A describes many other
phenomena in nature, such as the oscillations in an electrical circuit containing a
capacitor and inductor.
Trajectories may appear to cross if they come very close to a fixed point that
is stable in one direction and unstable in another (called a saddle point or X point
because of its shape). Such a trajectory is called a separatrix because it separates
regions with different flows. Trajectories approaching the fixed point on one side of
the separatrix veer off to the right, and those approaching from the other side veer
off to the left. Such a separatrix exists upstream (and downstream) of an island in a
river where two sticks placed side by side in the water end up going around
opposite sides of the island. The island seems at first to attract the sticks and then to
repel them at right angles as they approach it.
325
6.2 Professor Lorenz and Dr. Rössler
Although differential equations have been the mathematical basis for most
descriptions of nature for hundreds of years, almost no one suspected that the
trajectories resulting from their solution could be a chaotic strange attractor. The
history of the discovery of such solutions is interesting and bears retelling.
For some time, the solutions followed one another, but after a while they
began to depart, and eventually they bore no relation to one another. He had
discovered the sensitivity to initial conditions that is perhaps the most salient feature
of chaos. He began simplifying his equations in an attempt to determine the
minimum conditions necessary for this bizarre behavior. The result is the now famous
Lorenz equations, which represent the first example of a strange attractor arising
from differential equations,
X’ = _(Y - X)
Y’ = -XZ + rX - Y
Z’ = XY - bZ (Equation 6D)
where σ, r, and b are constants that Lorenz took to be σ = 10, r = 28, and b = 8/3.
Lorenz published his findings in 1963 in the Journal of the Atmospheric Sciences,
where they went largely unnoticed for the next decade. The title of his paper,
"Deterministic Nonperiodic Flow," is an apt description of what we now call chaos.
326
Since the Lorenz equations were proposed, several phenomena have been
found that are at least approximately modeled by them. Perhaps the simplest
example is the thermosiphon. Imagine a continuous tube, like a bicycle tube, filled
with a liquid and mounted vertically. If the bottom of the tube is heated and the top
cooled, a convection ensues, with the warm fluid rising and the cold fluid falling. The
convection is equally likely to start in either direction. After it starts, the circulation
continues in that direction a few times around the loop and then abruptly reverses.
X’ = -(Y + Z)
Y’ = X + aY
where a, b, and c are constants that Rössler took to be a = 0.2, b = 0.2, and c = 5.7.
The Rössler equations are sometimes described as the simplest known example of
chaos arising from a system of ordinary differential equations. They contain a single
nonlinearity (ZX in the third equation). Rössler’s original paper is also interesting
because it contains a stereoscopic view of his strange attractor as well as the Lorenz
attractor.
Until very recently, the discovery of a new strange attractor was a cause to
rush to publication. With the program in this book, you can produce them by the
thousands! Even today researchers tend to focus on a few well-known examples
such as the Lorenz and Rössler attractors. An entire book has been written on the
Lorenz attractor alone. Think of the libraries that could be filled by books describing
your attractors in similar detail!
The Lorenz and Rössler attractors are shown in Figures 6-1 and 6-2, respec-
tively, albeit with slightly different values of the parameters than they used. These
cases are known to have fractal dimensions slightly greater than 2.0. These
examples are more important for their historical interest than for their visual appeal.
If you have never seen these attractors in 3-D, be sure to return to these cases and
view them with the various display techniques after the program has been appro-
priately modified, as described in the next section. The Lorenz attractor resembles
327
the wings of a butterfly, making it an appropriate emblem of chaos, since the
sensitivity to initial conditions is most dramatically illustrated by the butterfly effect.
328
Figure 6-2. The Rössler attractor
Unfortunately, digital computers, which are ideal for iterating maps, are
inherently incapable of exactly solving differential equations. The equations require
that the solution advance slowly and smoothly. That is, the successive iterates must
differ by an infinitesimal amount, thus infinitely many iterations are required to make
any progress. Special analog computers have been designed for the task, but they
329
are not common or simple to program.
Books have been written on methods for the approximate numerical solution
of differential equations, and it is as much an art as a science. All the methods
involve, in one form or another, a finite-difference approximation to the differential
equation. Rather than taking infinitesimal steps, one advances in finite steps
according to a prescription that attempts to minimize the inevitable errors. Fortu-
nately, for our purpose, our solutions need not be highly accurate, so we can use
a simple procedure.
Perhaps the easiest and most transparent method for finding approximate
solutions to differential equations is the Euler method. When this procedure is
applied to the simple example of Equation 6A, X and Y are advanced according
to
Xn+1 = Xn + _Yn
where ε is the time step that ideally should be negligibly small but in reality is made
as large as possible to reduce the number of iterations required to advance the
solution by a substantial distance along the trajectory. You see that the Euler
method provides just another example of an iterated map in which successive
iterates are near one another. It is perhaps the least accurate method for solving
differential equations, and it is easily improved upon. However, for most of our
purposes, the Euler method is adequate. Furthermore, it is simple to modify the
program to solve differential equations by this method. The necessary changes are
shown in PROG21.
PROG21. Changes required in PROG20 to solve differential equations by the Euler method
330
1990 IF ODE% = 1 THEN XN(I%) = XY(I%) + EPS * XN(I%)
4300 PRINT TAB(27); "D: System is"; STR$(D%); "-D polynomial ";
If ε is sufficiently small, its value should not affect whether a system is chaotic
or the general appearance of the attractor, but it certainly changes the trajectory
on the attractor. Just as a chaotic trajectory is sensitive to initial conditions, it also
is sensitive to the approximations used to calculate it. Unfortunately, a value of ε =
0.1 is not sufficiently small, and many of the resulting attractors would disappear or
change their appearance if ε were reduced. Conversely, other attractors would
emerge for smaller values of e. Fortunately, for our purposes, the solutions need not
be even qualitatively correct. Be forewarned that reducing e has unpredictable
effects on the attractors and increases the computation time.
331
The Lyapunov exponent is calculated as with the corresponding maps,
except that it is divided by e; thus its units are bits per second rather than bits per
iteration, because each iteration advances the solution by e seconds. It is custom-
ary to express the Lyapunov exponent in this way for differential equations because
the step size depends on the numerical approximation that is being used, whereas
the divergence of the trajectories per unit time is an intrinsic property of the
differential equations.
332
Figure 6-4. Projection of three-dimensional cubic ODE
333
Figure 6-5. Projection of three-dimensional quartic ODE
334
Figure 6-6. Projection of three-dimensional quintic ODE
These figures are like time-exposed photographs of the shadow on the wall
of a fly moving chaotically in a room. However, because of the finite difference
approximation used to solve the equation of motion, you must imagine that the fly
is illuminated by a strobe lamp that flashes rapidly. The trajectory thus consists of a
large number of closely spaced dots. The separation of the dots provides a measure
of the accuracy of the solution. Although some of the cases produce apparently
continuous trajectories, others more nearly resemble the maps of the previous
chapters. You might prefer to alter the program so that the dots are connected by
lines. This is most easily done by changing line 5060 to
335
criterion for the number of iterations as we did for the maps, a significant number
(perhaps 20%) of the attractors found in a random search are not chaotic, and a
few are even unbounded. When you evaluate the attractors found by the search,
you will recognize these cases by the way they eventually settle onto a simple
closed loop that is visually indistinguishable from a limit cycle, spiral into a fixed point,
or leave the screen. You will also notice a few cases that consist of isolated islands
with no bridge connecting them, such as the one in Figure 6-3. You can be sure
these are not true flows, because such discontinuities are impossible in the trajec-
tories that arise from the solution of our differential equations.
336
Figure 6-8. Three-dimensional cubic ODE with shadows
337
Figure 6-9. Three-dimensional quartic ODE with shadows
338
Figure 6-10. Three-dimensional quintic ODE with shadows
339
Figure 6-11. Three-dimensional quadratic ODE with contour bands
340
Figure 6-12. Three-dimensional cubic ODE with contour bands
341
Figure 6-13. Three-dimensional quartic ODE with contour bands
342
Figure 6-14. Three-dimensional quintic ODE with contour bands
343
Figure 6-15. Stereo pair of three-dimensional quadratic ODE
344
Figure 6-16. Stereo pair of three-dimensional cubic ODE
345
Figure 6-17. Stereo pair of three-dimensional quartic ODE
346
Figure 6-18. Stereo pair of three-dimensional quintic ODE
347
Figure 6-19. Slices of a three-dimensional quadratic ODE
348
Figure 6-20. Slices of a three-dimensional cubic ODE
349
Figure 6-21. Slices of a three-dimensional quartic ODE
350
Figure 6-22. Slices of a three-dimensional quintic ODE
351
6.4 Flows in Four Dimensions
352
Figure 6-24. Projection of a four-dimensional cubic ODE
353
Figure 6-25. Projection of a four-dimensional quartic ODE
354
Figure 6-26. Projection of a four-dimensional quintic ODE
355
Figure 6-27. Four-dimensional quadratic ODE with shadow bands
356
Figure 6-28. Four-dimensional cubic ODE with shadow bands
357
Figure 6-29. Four-dimensional quartic ODE with shadow bands
358
Figure 6-30. Four-dimensional quintic ODE with shadow bands
359
Figure 6-31. Four-dimensional quadratic ODE with stereo bands
360
Figure 6-32. Four-dimensional cubic ODE with stereo bands
361
Figure 6-33. Four-dimensional quartic ODE with stereo bands
362
Figure 6-34. Four-dimensional quintic ODE with stereo bands
363
Figure 6-35. Four-dimensional quadratic ODE with sliced bands
364
Figure 6-36. Four-dimensional cubic ODE with sliced bands
365
Figure 6-37. Four-dimensional quartic ODE with sliced bands
366
Figure 6-38. Four-dimensional quintic ODE with sliced bands
367
6.5 Strange Attractors that Aren’t
Such attractors can arise from maps as well as from differential equations.
They don’t require high embedding dimensions, although the dimension of the
attractor always is at least one less than the dimension of the embedding space.
Thus some of the examples are taken from equations described in earlier chapters.
X’ = Y - bX
Y’ = -X - bY (Equation 6G)
You can think of the coefficient b as a measure of the friction that eventually brings
the trajectory to rest at the origin (X = Y = 0) in phase space. If b is zero (frictionless),
the orbit is a circle. Negative values of b (antifriction) cause the solution to spiral
outward, approaching infinity. This case corresponds to a point repellor at the
origin. An attractive fixed point is called a sink and a repelling fixed point is called
a source. Some authors reserve the term fixed point for maps and prefer to call the
stationary solutions of ODEs critical points or equilibrium points.
The two occurrences of b in Equation 6G need not have the same value or
even the same sign. In such a case, the orbit moves in or out but not in a symmetrical
manner. Many physical processes have b = 0 in one of the equations. If b is close
to zero, it doesn’t matter much in which equation it appears.
If b is zero in one of the equations above, small positive values of the other b
cause the radius of the circle to decrease slowly, approaching what is called a
spiral-point or focal-point attractor, or simply a focus. Larger positive values of b
cause the radius to decrease more rapidly. With very large values of b, there is little
circulation around the point, and the trajectory is more nearly radial toward what
is called a radial-point or nodal-point attractor, or simply a node. The boundary
between the two cases occurs at b = 2 and corresponds to critical damping in an
oscillator. In either case, the resulting attractor is a point at the origin with a
368
dimension of zero. A code that produces a point attractor (with b = 1) is
QMLM3NM5LM3LM14. For this case, the largest Lyapunov exponent is negative (L
= - 0.1/ln 2 = - 0.14), and it produces a single dot on the screen.
More interesting cases can occur because the program assumes the trajec-
tory is on the attractor after 1000 iterations. For trajectories that approach the
attractor very slowly, there can be interesting behavior after the thousandth
iteration and before the fixed point is reached. Such slowly attracting fixed points
have negative Lyapunov exponents, at least one of which is very close to zero. The
search can be expanded to include them as well as other nonchaotic attractors
by changing the .005 in line 2480 of the program to -.005, for example. Then
attractors that have Lyapunov exponents near zero but have not settled to a fixed
point after NMAX iterations are included in the file SA.DIC. If you prefer, you can
collect them in a separate file TORUS.DIC by changing line 4910 of PROG21 to
4910 IF L > .005 THEN OPEN "SA.DIC" FOR APPEND AS #1 ELSE OPEN "TORUS.DIC" FOR
APPEND AS #1
Several such cases are shown in Figures 6-39 through 6-42. Figure 6-39 shows
a spiral-point attractor. Figure 6-40 shows what appears to be a radial-point
attractor with several different initial conditions; it is really a spiral-point attractor
with successive iterates that move rapidly around the fixed point. This phenomenon
is called aliasing, and it is most easily detected by connecting temporally succes-
sive points with continuous lines. Figures 6-41 and 6-42 show cases where the rate
of circulation around the fixed point changes significantly as the fixed point is
approached.
369
Figure 6-39. Trajectory approaching a spiral-point attractor
370
Figure 6-40. Trajectory emulating a radial-point attractor
371
Figure 6-41. Trajectory approaching a point attractor
372
Figure 6-42. Trajectory approaching a point attractor
The simplest differential equations that produce a cyclic trajectory are the
equations in Equation 6A. The resulting orbit is a circle in the XY plane. This case is not
an attractor, however, because every initial condition produces a circular trajec-
tory whose radius is the distance of the initial point from the origin. There is no unique
circle to which nearby orbits are attracted, and there is no basin of attraction.
Furthermore, if you attempt to display the trajectory using a code such as
QM5NM5LM18, you will find that the orbit is unbounded and spirals outward as if
there were a point repellor at the origin. The reason is that our iteration scheme for
373
approximating the solution of the differential equations is not exact. The errors
compound and eventually cause the orbit to be lost.
X’ = Y + (1 - X2 - Y2)X
The quantity (1 - X2 - Y2) plays the role of -b in Equation 6G. Whenever the trajectory
lies inside the circle of radius one, it spirals outward, and whenever it lies outside the
circle of radius one, it spirals inward. Thus the limit cycle is defined by the circle X2
+ Y2 = 1. There is a point repellor at the origin, and the basin of attraction is the entire
XY plane. A code that produces such a stable limit cycle, except with a smaller
radius is RMNMAM3AM3NM9LM2AM6NMAM26.
A limit cycle may be either stable or unstable, just like a fixed point. With an
unstable limit cycle, nearby orbits move progressively farther from the limit cycle. An
unstable limit cycle can be identified in an invertable map or system of ordinary
differential equations by running time backwards, in which case the limit cycle
becomes stable and attracts rather than repels nearby orbits.
X’ = Y
This system is called the Van der Pol equation, and it was first used to model vacuum-
374
tube oscillator circuits, but it has been used in other applications such as the
modeling of pulsating stars called Cephids. A code for the Van der Pol equation is
RM11OM9KM2KM6OM28.
In two dimensions, the limit cycles cannot cross, so the most complicated
shapes are simple distorted loops. In three or more dimensions, they can wrap
around in a complicated tangle like a ball of string, but without ends. Figures 6-43
through 6-50 show a collection of visually interesting limit cycles. They are plotted
as stereo pairs so that you can see how the trajectories pass beneath one another.
375
Figure 6-43. Limit cycle from a three-dimensional quadratic map
376
Figure 6-44. Limit cycle from a three-dimensional quadratic ODE
377
Figure 6-45. Limit cycle from three-dimensional quadratic ODE
378
Figure 6-46. Limit cycle from a three-dimensional quadratic ODE
379
Figure 6-47. Limit cycle from a three-dimensional cubic ODE
380
Figure 6-48. Limit cycle from a three-dimensional quintic ODE
381
Figure 6-49. Limit cycle from a four-dimensional quadratic ODE
382
Figure 6-50. Limit cycle from a four-dimensional quartic ODE
As you examine the figures, note that some of the limit cycles, such as the one
in Figure 6-43, form knots. You cannot straighten them out into circular loops. By
contrast, Figure 6-47 is unknotted. This knottedness or helicity is an important
topological property of an attractor. Some processes in nature tend to conserve
helicity, just as mechanical energy is conserved in frictionless motion. Thus when
some parameter of the system is changed, the limit cycle may change its size and
shape but in such a way that it always links itself in the same way. An example is a
magnetic field line in a turbulent conducting fluid such as a plasma of electrically
charged particles.
For many of the limit cycles exhibited here, it is very hard to tell whether they
are knotted. Even when they appear to be knotted, it is hard to tell whether two
cases are knotted in the same way. Such patterns might provide a useful psycho-
logical test for one’s spatial acuity because they require both depth perception
383
and a mental dexterity to visualize their shape when untangled as much as possible.
See which of the limit cycles in the figures you think are knotted.
X’ = Y
Y’ = -X
Z’ = aW
W’ = -Z (Equation 6J)
You will recognize the first two equations as the same as Equation 6A that produces
a circle in the XY plane. The second two equations produce an ellipse in the ZW
plane. The two motions are uncoupled (X and Y don’t depend on Z or W; Z and W
don’t depend on X or Y). The parameter a is the square of the angular frequency
of the second motion. If the square root of a is a rational number (a ratio of two
integers) the trajectory is a closed one-dimensional loop in the four-dimensional
embedding space.
384
The equation set in Equation 6J has the same problems as Equation 6A. They
don’t represent an attractor because nearly all initial conditions produce different
tori. Furthermore, the tori produced in this way are structurally unstable, just like the
circles of Equation 6A. These difficulties can be circumvented by using instead an
extension of Equations 6H to produce two uncoupled limit cycles as follows:
X’ = Y + (1 - X2 - Y2)X
Y’ = -X + (1 - X2 - Y2)Y
Z = aW + (1 - Z2 - W2)Z
Two uncoupled limit cycles lie on a torus that is attractive, but it is not
technically an attractor; it is called an invariant manifold. For an object to be an
attractor, it must not only attract nearby trajectories, but most trajectories on it must
wander all over it, in which case we say the set is transitive and the orbits are
ergodic. Ergodic orbits produce mixing, which means that an orbit starting from
anywhere on the attractor eventually comes arbitrarily close to every other point
on the attractor. Mixing ensures that an attractor cannot be split into two different
attractors, although the attractor need not be connected. Figure 5-11 shows an
attractor that is not connected. Thus not all attractive tori are attractors, just as not
all attractors are tori.
385
Figure 6-51. Torus from a three-dimensional cubic ODE
386
Figure 6-52. Torus from Three-Dimensional Cubic ODE
387
Figure 6-53. Torus from a four-dimensional quadratic ODE
388
Figure 6-54. Torus from a four-dimensional quadratic ODE
389
Figure 6-55. Torus from a four-dimensional quadratic ODE
390
Figure 6-56. Torus from a four-dimensional quadratic ODE
391
Figure 6-57. Torus from a four-dimensional quadratic ODE
392
Figure 6-58. Torus from a four-dimensional quadratic ODE
393
Figure 6-59. Torus from a four-dimensional cubic ODE
394
Figure 6-60. Torus from a four-dimensional quartic ODE
Most of the attractors shown in the figures look like tori in the sense that you
can see or imagine the hole in the doughnut. However, it is important to understand
that, just as not all limit cycles are circles, not all 2-tori look like doughnuts. They are
topologically equivalent in the sense that there is a "rubber-sheet" deformation
(called a homeomorphism) that maps them into a doughnut. A coffee cup, for
example, is topologically equivalent to a doughnut as long as the handle is
unbroken.
Those cases that are not obviously equivalent to a simple torus are distorted
by the fact that they are viewed projected onto the XY plane or because they are
rotated at an awkward angle. Also note that most of these tori are embedded in
a four-dimensional space, so it is even more difficult to grasp their shape from a two-
dimensional projection. You might want to display them using some of the ad-
vanced visualization techniques provided by the program.
395
It is possible, though difficult, to produce a 3-torus in a four-dimensional
embedding space. A 3-torus is a generalization of a 2-torus. It is hard to visualize. It
involves three mutually incommensurate frequencies. It is characterized by a
dimension of three and a largest Lyapunov exponent of zero. Some of the attractors
in the figures seem to be 3-tori according to their calculated dimension. However,
the calculation is not sufficiently precise to distinguish unambiguously between a 2-
torus and a 3-torus. It is necessary to search embedding dimensions greater than
four to have a good chance of finding 3-tori.
396
Chapter 7
Further Fascinating Functions
The behavior of Equation 7A is very similar to the behavior of the logistic equation
(Equation 1C) with R = 4, which maps the interval 0 to 1 back onto itself. A mapping
that returns a set onto itself is called an endomorphism.
397
Yn+1 = a6 + a7Xn + a8Yn + a9|Xn| + a10|Yn| (Equation 7B)
To make things a little more interesting, we can add two more dimensions (Z
and W) to take advantage of the visualization techniques that we have previously
developed. However, to keep things simple, we will demand that X and Y not
depend on Z or W. They are just along for the ride, so to speak. The dynamical
behavior is determined only by X and Y. We can choose any convenient equation
for Z and for W. One possibility is to evaluate Z from X and Y according to
Thus Z is the square of the distance of the previous iterate from the origin. You might
want to experiment with other forms.
PROG22. Changes required in PROG21 to search for special functions of the Y type
1710 IF ODE% > 1 THEN GOSUB 6200: GOTO 2020 'Special function
398
3680 IF Q$ = "D" THEN D% = 1 + (D% MOD 7): T% = 1
4290 IF ODE% > 1 THEN PRINT TAB(27); "D: System is 4-D special map "; CHR$(87
+ ODE%); " ": GOTO 4320
4720 IF D% > 6 THEN ODE% = ASC(LEFT$(CODE$, 1)) - 87: D% = 4: GOSUB 6200: GOTO
4770
6220 WNEW = (N - 100) / 900: IF N > 1000 THEN WNEW = (N - 1000) / (NMAX - 1000)
6240 M% = 10
6270 RETURN
399
Figure 7-1. Four-dimensional special map Y
400
Figure 7-2. Four-dimensional special map Y
401
Figure 7-3. Four-dimensional special map Y (gingerbread man)
402
Figure 7-4. Four-dimensional special map Y
403
Figure 7-5. Four-dimensional special map Y
404
Figure 7-6. Four-dimensional special map Y
405
Figure 7-7. Four-dimensional special map Y
406
Figure 7-8. Four-dimensional special map Y
407
7.2 ANDs and ORs
The basic logical operators are AND and OR. If you are not sure what these
operations mean, your BASIC manual is a good reference. The operation X AND Y
produces a new number whose bits are 1 if the corresponding bits of X and Y are
both 1, and 0 otherwise. The operation X OR Y produces a new number whose bits
are 1 if either (or both) of the corresponding bits of X or Y are 1, and 0 otherwise. This
is also called the inclusive OR to distinguish it from the exclusive OR (XOR), which
produces a number whose bits are 1 if either (but not both) of the corresponding
bits of X or Y are 1, and 0 otherwise.
(Equation 7D)
The third and fourth dimensions are determined in the same way as in the previous
section.
PROG23. Changes required in PROG22 to search for special functions of the Z type
408
3680 IF Q$ = "D" THEN D% = 1 + (D% MOD 8): T% = 1
6280 M% = 14
6310 RETURN
409
Figure 7-9. Four-dimensional special map Z
410
Figure 7-10. Four-dimensional special map Z
411
Figure 7-11. Four-dimensional special map Z
412
Figure 7-12. Four-dimensional special map Z
413
Figure 7-13. Four-dimensional special map Z
414
Figure 7-14. Four-dimensional special map Z
415
Figure 7-15. Four-dimensional special map Z
416
Figure 7-16. Four-dimensional special map Z
417
7.3 Roots and Powers
Polynomial maps involve powers of the variables that are small positive
integers, such as the square (2) and the cube (3). Polynomials exclude such
nonlinearities as the square root or the reciprocal of the variables. Roots and powers
are mathematically equivalent except for the value of the exponent. The square
root of X can be written as X0.5, and the reciprocal of X can be written as 1/X or as
X-1. It is interesting to examine strange attractors that involve fractional and
negative powers.
(Equation 7E)
The absolute values are needed because BASIC cannot take a root of a negative
number. The result would have an imaginary component. Note that if all the
exponents happen to be +1, Equation 7E is equivalent to Equation 7B. The third and
fourth dimensions are determined in the same way as in Section 7.1.
PROG24. Changes required in PROG23 to search for special functions of the [ type
418
6320 M% = 14
6330 XNEW = A(1) + A(2) * X + A(3) * Y + A(4) * ABS(X) ^ A(5) + A(6) * ABS(Y)
^ A(7)
6340 YNEW = A(8) + A(9) * X + A(10) * Y + A(11) * ABS(X) ^ A(12) + A(13) * ABS(Y)
^ A(14)
6350 RETURN
419
Figure 7-17. Four-dimensional special map [
420
Figure 7-18. Four-dimensional special map [
421
Figure 7-19. Four-dimensional special map [
422
Figure 7-20. Four-dimensional special map [
423
Figure 7-21. Four-dimensional special map [
424
Figure 7-22. Four-dimensional special map [
425
Figure 7-23. Four-dimensional special map [
426
Figure 7-24. Four-dimensional special map [
You may become frustrated seeing a beautiful attractor develop for thou-
sands of iterations and then having the orbit escape. Such behavior is called a crisis
or transient chaos, not to be confused with a catastrophe. For example, the logistic
equation with R slightly greater than 4.0 is chaotic for many iterations until an iterate
happens to exceed 1.0, whereupon the orbit abruptly moves off toward infinity. By
contrast, a catastrophe occurs when the solution undergoes a qualitative change
at some critical value of a control parameter.
427
make predictions. It is possible that the solar system is intermittently chaotic or even
that a crisis can occur leading to a complete loss of its stability, perhaps precipi-
tated by a rare conjunction of a planet with a large asteroid or comet.
Two of the most common nonlinear functions are the sine and its comple-
ment, the cosine. The sine and cosine can be approximated by polynomials as
follows:
When the argument X is small, the approximations are very accurate using only a
few terms in the expansion. The denominator of each term is the factorial of the
exponent of that term. For example, the factorial of five (written 5!) is equal to 5 x
4 x 3 x 2 x 1 = 120. When X is large, many terms are required. In such a case, we would
expect to observe dynamics different from those produced by the fifth-order
polynomials previously examined.
(Equation 7G)
It is not necessary to consider the cosine separately; the phase terms (a6, a9, a15,
and a18) have the same effect because cos X is equal to sin(X + π/2). The third and
428
fourth dimensions are determined in the same way as in Section 7.1.
PROG25 Changes Required in PROG24 to Search for Special Functions of the \ Type
6360 M% = 18
6390 RETURN
429
Figure 7-25. Four-dimensional special map \
430
Figure 7-26. Four-dimensional special map \
431
Figure 7-27. Four-dimensional special map \
432
Figure 7-28. Four-dimensional special map \
433
Figure 7-29. Four-dimensional special map \
434
Figure 7-30. Four-dimensional special map \
435
Figure 7-31. Four-dimensional special map \
436
Figure 7-32. Four-dimensional special map \
437
7.5 Webs and Wreaths
In this section, we consider a special type of map that involves sines and
cosines. The solutions are chaotic, but they are not attractors. The systems they
describe are Hamiltonian. Such Hamiltonian systems obey the Liouville theorem,
which states that the phase-space volume occupied by a set of points is conserved
as the system evolves in time. Thus the orbit eventually returns arbitrarily close to any
initial condition. Contrast this to dissipative systems in which the phase-space
volume decreases in time, eventually collapsing all initial conditions within the basin
of attraction onto the attractor. In dissipative systems, the basin of attraction is
usually much larger than the attractor. The equations are as follows:
where α = 2π / (13 + 10a6). The third and fourth dimensions are determined in the
same way as in Section 7.1.
The special form of Equation 7H guarantees that the solution is not only area-
preserving but also has circular symmetry. Furthermore, an inherent periodicity
arises from the fact that α is 2π divided by an integer that ranges from 1 to 25. The
periodicity is indicated by the last letter of the code (a6): A for period-1, B for period-
2, and so forth. Because of the circular symmetry and infinite extent, it is interesting
to project these cases onto a sphere using the P command.
PROG26. Changes required in PROG25 to search for special functions of the ] type
438
6390 IF ODE% <> 6 THEN GOTO 6450
6400 M% = 6
6410 IF N < 2 THEN AL = TWOPI / (13 + 10 * A(6)): SINAL = SIN(AL): COSAL = COS(AL)
6450 RETURN
As you watch the patterns develop, you can see the orbit wander throughout
the XY plane along a network of channels. The network is infinite in extent and is
called a stochastic web. The global wandering is evidence of minimal chaos, and
it causes the orbit eventually to leave the boundary of the computer screen. If you
interrupt the calculation at some point, the resulting structure resembles a wreath
or a snowflake. The infinite structure is a tiling, but its symmetry is slightly spoiled by
the finite thickness of the web. This breaking of the symmetry eliminates the
monotony and contributes to the aesthetic appeal of the patterns.
The slow wandering of the orbit throughout the web is an example of Arnol’d
diffusion, which is named after the Russian mathematician Vladimir Arnol’d. Nor-
mally we associate diffusion with a random process in which, for example, the
molecules of a gas move slowly from one region to another by countless collisions
with other molecules. The presence of diffusion in such simple deterministic systems
has many practical consequences such as providing a means for heating a gas of
electrically charged particles (a plasma) in a magnetic field using electromagnetic
waves.
439
on the previous 500 iterates, whose values tend to be nearly equal in this case.
440
Figure 7-34. Four-dimensional web map (period-13)
441
Figure 7-35. Four-dimensional web map (period-5)
442
Figure 7-36. Four-dimensional web map (period-12)
443
Figure 7-37. Four-dimensional web map (period-12)
444
Figure 7-38. Four-dimensional web map (period-7)
445
Figure 7-39. Four-dimensional web map (period-23)
446
Figure 7-40. Four-dimensional web map (period-9)
447
7.6 Swings and Springs
All the previous examples of maps and differential equations in this book
share the property that the right-hand sides of the equations are independent of
the iteration number (N) or time (t). Such equations are called autonomous. For a
given set of initial conditions, they produce the same solution for whatever time or
iteration number they are started.
X’ = Y
In Equation 7I, b is the damping constant (friction), A is the amplitude of the drive
(forcing) function, and ω is the angular frequency (radians per second) of the drive.
The friction force is assumed to be proportional and opposite to the velocity (-Y),
although other forms give qualitatively similar results. This type of friction is called
linear damping.
X’ = Y
Y’ = -X - bY + A sin Z
Z’ = _ (Equation 7J)
Equation 7J contains a nonlinearity (sin Z), but it does not have chaotic solutions. The
solution (for positive b) is a limit cycle with frequency ω. The limit cycle is largest when
the damping is small (b positive but much less than 1) and ω is 1, corresponding to
resonance.
448
X’ = a1Y
If the product a1a2 is negative, these equations represent the motion of a mass
oscillating on a nonlinear spring or a pendulum swinging through a large angle (but
not going over the top). If a3/a2 is positive, the spring gets stiffer when stretched or
compressed (hard spring). If a3/a2 is negative, the spring gets weaker when
stretched or compressed (soft spring). If a3/a2 is -1/6, the solution approximates a
vigorously swinging pendulum. If the product a1a2 is positive and a3/a2 is negative,
the system models a buckled beam and is called the Duffing two-well oscillator. The
final combination (a1a2 and a3/a2 both positive) is unstable and has an un-
bounded solution.
In Equation 7K, we can exploit the fact that Z enters only through the term sin
Z; thus it is periodic with period 2π. Whenever Z exceeds 2π, we can subtract 2π from
it without changing the result. This trick keeps Z bounded in the range 0 to 2π rather
than letting it march off to infinity as it would otherwise do. The Z-coordinate then
becomes the phase angle of the drive function. Note that the MOD function in most
versions of BASIC works correctly only on integer variables, so it should not be used
for the above purpose. The +1.3 term in the Z equation ensures that the phase angle
always increases in time for -1.2 ≤ a9 ≤ 1.2. The fourth variable (W) is proportional to
time as in the previous examples.
PROG27. Changes required in PROG26 to search for special functions of the ^ type
449
3680 IF Q$ = "D" THEN D% = 1 + (D% MOD 12): T% = 1
6460 M% = 9
6490 ZNEW = Z + EPS * (A(9) + 1.3): IF ZNEW > TWOPI THEN ZNEW = ZNEW - TWOPI
6500 RETURN
450
Figure 7-41. Slices of a four-dimensional special map ^
451
Figure 7-42. Slices of a four-dimensional special map ^
452
Figure 7-43. Slices of a four-dimensional special map ^
453
Figure 7-44. Slices of a four-dimensional special map ^
454
Figure 7-45. Slices of a four-dimensional special map ^
455
Figure 7-46. Slices of a four-dimensional special map ^
456
Figure 7-47. Slices of a four-dimensional special map ^
457
Figure 7-48. Slices of a four-dimensional special map ^
You can see several cycles of stretching and folding. Note that there are
three diagonal bands that run from the lower left to the upper right of the attractor.
The three bands are stretched and compressed into a single band, while two
additional bands enter first from the upper left and then from the lower right. Thus
one of the three bands consists of three smaller bands, one of which consists of three
even smaller bands, and so forth. Such an infinitely layered band is called a thick
line or a Cantor one-manifold. Viewed in three dimensions, the thick line would
appear as a thick surface or a Cantor two-manifold. There is perhaps no clearer
458
illustration anywhere in this book of the way strange attractors are formed and
acquire their fractal microstructure.
Perhaps this is a good place to leave you with this brief taste of the immense
variety of nonlinear functions and equations, nearly all of which admit strange
attractors that can be identified and examined using the technique described in
this book. The possibilities are limited only by your imagination, and you can be
assured that nearly every strange attractor that you discover has never been seen
before. There surely exist classes of objects yet to be discovered that are of
mathematical and artistic interest.
If you decide to pursue such an exploration, you might start with some of the
other nonlinear functions and operators that are built into the BASIC language.
Table 7-1 lists a number of interesting possibilities. They are divided into mathemati-
cal functions, which should be independent of the machine or programming
language; machine functions, which are dependent on the machine or language;
nonlinear operators, which are supported by nearly all versions of BASIC; and
advanced functions, which are supported by VisualBASIC for MS-DOS. You may use
them in combinations to invent complicated forms that belong to you alone!
Table 7-1. Nonlinear functions and operators supported by most versions of BASIC
459
Chapter 8
Epilogue
It would be an injustice to leave you with the impression that the main use of
the ideas in this book is to make pretty pictures. This final chapter describes some of
the scientific applications of the method used to generate this large collection of
strange attractors. It also suggests some additional explorations you might want to
undertake as an extension of both the scientific and artistic aspects of the work
described in this book.
For hundreds of years, scientists have used equations like those in the previous
chapters to describe nature. It is remarkable that almost no one recognized the
chaotic solutions to those equations until the last few decades of the 20th century.
Now researchers in many disciplines are beginning to see chaos under every rock.
It is reasonable to wonder whether chaos is the rule or the exception.
As a simple but very unrealistic example, suppose that all of nature could be
modeled by the logistic equation (Equation 1C). This equation has a single param-
eter R that controls the character of the solution. If R is greater than 4 or less than -
2, the solutions are unbounded, which means that this equation cannot model a
physical process under those conditions. Essentially all physical processes are
bounded, except perhaps the trajectory of a spacecraft launched with sufficient
velocity to escape the galaxy. In the physically realistic range of R, there is a band
of chaos between about 3.5 and 4, as shown in Figure 1-2 and another identical
band between about -1.5 and -2. Careful analysis shows that chaos occurs over
about 13% of the range of R from -2 to 4.
Since the logistic equation is too simple a model for almost everything, we
should examine more complicated models. The Hénon map (Equation 3A) is a two-
460
dimensional generalization of the logistic map. It has two control parameters, which
normally are a = -1.4 and b = 0.3. With b = 0, the Hénon map reduces to the logistic
map.
As with the logistic map, the Hénon map has unbounded solutions, chaotic
solutions, and bounded nonchaotic solutions, depending on the values of a and b.
The bounded nonchaotic solutions may be either fixed points or periodic limit
cycles. Figure 8-1 shows a region of the ab plane with the four classes of solutions
indicated by different shades of gray. The bounded solutions constitute an island
in the ab plane. On the northwest shore of this island is a chaotic beach, which
occupies about 6% of the area of the island. The chaotic beach has many small
embedded periodic ponds. The boundary between the chaotic and the periodic
regions is itself a fractal.
Figure 8-1. Regions of solutions for the Hénon map in the ab plane
461
The logistic map is chaotic over 13% of its bounded range, and the Hénon
map is chaotic over 6% of its bounded range. This result is counterintuitive because
it suggests that more complicated (two-dimensional) systems are in some sense less
chaotic than simpler (one-dimensional) systems. Is this a general result, or is it
peculiar to these two maps? One way to decide is to examine a wider selection of
equations, such as the ones used to produce the attractors exhibited throughout
this book.
Table 8-1 shows the results from 30,000 chaotic cases (1000 for each of the 30
types) as identified by the program. This table includes over 400 million cases, of
which about 1 million are bounded. Of all the bounded solutions, 2.8% were chaotic
according to the criterion described in Section 2.4. The polynomial maps all exhibit
a similar occurrence of chaotic solutions. The same is true of ordinary differential
equations (ODEs), but the percentage is smaller. The reason for this behavior is not
understood.
462
Code D O Type Chaotic Average F Average L
L 3 5 Map 4.68% 1.43±0.39 0.14±0.09
M 4 2 Map 4.99% 1.64±0.47 0.10±0.06
N 4 3 Map 4.78% 1.59±0.46 0.09±0.06
O 4 4 Map 5.32% 1.61±0.45 0.09±0.06
P 4 5 Map 5.04% 1.62±0.47 0.10±0.06
Q 3 2 ODE 0.55% 1.28±0.41 0.21±0.33
R 3 3 ODE 1.33% 1.31±0.40 0.73±0.76
S 3 4 ODE 1.23% 1.35±0.40 1.05±0.98
T 3 5 ODE 1.63% 1.38±0.41 1.23±1.16
U 4 2 ODE 1.34% 1.43±0.43 0.16±0.23
V 4 3 ODE 1.84% 1.43±0.43 0.40±0.48
W 4 4 ODE 1.84% 1.46±0.45 0.54±0.62
X 4 5 ODE 1.96% 1.44±0.44 0.66±0.76
Y 4 Special 16.28% 1.37±0.56 0.26±0.26
Z 4 Special 23.19% 1.03±0.44 0.28±0.44
[ 4 Special 16.00% 0.63±0.65 0.42±0.23
\ 4 Special 1.61% 1.10±0.28 0.16±0.10
] 4 Special 19.80% 1.02±0.16 0.06±0.04
These results should not be taken too literally because the coefficients have
been limited to the range -1.2 to 1.2, the ODEs have not been solved very
accurately, and many cases are ambiguous. Chaotic solutions tend to occur at
large values of the coefficients where most of the solutions are unbounded. A more
careful evaluation, which corrects these difficulties and includes about 35,000
strange attractors but limited to fewer types, shows that the probability that a
bounded solution is chaotic for an iterated polynomial map of dimension D and
order O is given approximately by
Similarly, the probability that a bounded solution is chaotic for a polynomial ODE of
463
dimension D and order O is given approximately by
Maps appear to become less chaotic as they become more complicated (larger
D and O), whereas ODEs become more chaotic.
To assess how common chaos is in nature, we must address the more
complicated and subjective issue of whether the equations we have examined are
a representative sample of the equations that describe natural processes. Further-
more, we cannot assume a priori that nature selects the coefficients of the
equations uniformly over the bounded region of control space. It is possible that
other constraints mitigate either against or in favor of chaotic behavior.
Another interesting question is how the fractal dimension and the Lyapunov
exponent vary with the dimension and order of the system. Table 8-1 includes the
average values of these quantities plus or minus (±) the standard deviation for each
type of chaotic system. For polynomial maps and ODEs, the fractal dimension varies
approximately as the square root of the system dimension. For polynomial maps,
the Lyapunov exponent varies inversely with the system dimension. For polynomial
ODEs, the Lyapunov exponent increases with the system dimension. The Lyapunov
exponent appears to be independent of order for maps, but there is a tendency
for the Lyapunov exponent of ODEs to increase with order.
These results are summarized in Figures 8-2 and 8-3. Figure 8-2 shows the
relative probability that a strange attractor from a polynomial map or ODE will have
a fractal dimension F plotted versus F/D0.5. The curve is sharply peaked at a value
of about 0.8. Almost no attractors have a fractal dimension greater than about
1.3D0.5. The Lorenz and Rössler attractors (with fractal dimensions slightly above 2.0
in a three-dimensional space) are close to this maximum value. Figure 8-3 shows the
relative probability that a strange attractor from a polynomial map will have a
Lyapunov exponent L plotted versus LD. This curve shows a much broader peak at
about 0.5. These results hold when the calculations are done more carefully. The
reason for this behavior is not understood, but it is potentially important because it
gives an indication of the complexity of the system of equations responsible for a
strange attractor that one observes in nature.
464
Figure 8-2. Probability distribution of fractal dimension
465
Figure 8-3. Probability distribution of Lyapunov exponent
466
is not the most common behavior, but neither is it particularly rare.
467
Note that visual art need not be beautiful to be good, just as a play need not
be humorous. It may be intellectually or emotionally satisfying, or even disturbing.
It should capture and hold the interest of the viewer, however. The span of the
viewer’s attention is one measure of its quality. Art may mix the familiar and the
unfamiliar to produce both comfort and dissonance. Furthermore, beauty is at least
partially in the eye of the beholder, although recent research indicates that there
are absolute universal measures of beauty that form very early in life and may even
be genetic.
468
aesthetic appeal. It only took a few seconds for each evaluation.
Figure 8-4 displays a summary of all the evaluations as a function of fractal
dimension (F) and Lyapunov exponent (L), using a gray scale in which the darker
regions are the most highly rated. The cases examined by particular individuals
show a similar trend. All evaluators tended to prefer attractors with dimensions
between about 1.1 and 1.5 and Lyapunov exponents between zero and about 0.3.
Some of the most interesting cases have Lyapunov exponents below about 0.1. You
saw many such examples earlier in this book.
469
The dimension preference is not surprising, since many natural objects have
dimensions in this range. Nature is strange, but usually not totally bizarre. Some of the
attractors that are most universally liked resemble well-known and easily recogniz-
able objects. You can find many such examples in this book.
The Lyapunov exponent preference is harder to understand, but it suggests
that strongly chaotic systems are too unpredictable to be appealing. For the 443
cases that were rated 5 (best) by the evaluators, the average dimension was F =
1.30 ± 0.20, and the average Lyapunov exponent was L = 0.21 ± 0.13 bits per
iterations, where the errors represent plus or minus one standard deviation. About
28% of the cases evaluated fall within both error bars. Thus this simple criterion would
allow the computer to discard nearly three-quarters of the cases that are least likely
to be visually appealing. This technique works in practice and was used in some
cases to help select attractors to display in this book.
470
feedback technique has much in common with iterated maps. Each illuminated
dot on the screen is mapped back to a different location after a delay determined
by the propagation of the electrical and optical signals. The main control param-
eters are the distance, rotation, focusing, intensity, color, and hue. Some settings
produce unbounded solutions—the screen goes solid black or solid white. Other
settings produce a fixed-point solution with a stationary pattern. Under other
conditions, periodic behavior occurs. The most interesting situation occurs when
the pattern constantly changes but is not periodic, corresponding to a chaotic
strange attractor. Sometimes you can perturb the system with a flash of light or by
moving your hand across the field of view, causing the system to switch from one
attractor to another.
Some of the most interesting examples of computer fractals come from
plotting the basin boundaries of various attractors. The basin is the set of all initial
conditions that are drawn to the attractor. Sometimes these boundaries are
smooth; other times they are fractals. By coloring the points just outside the basin
according to the number of iterations required for them to leave some (usually
large) region surrounding the attractor, beautiful escape-time fractal patterns can
be produced.
All of our attractors have such basins, and it’s not hard to program the
computer to display them, but the calculations are very slow. As an example, Figure
8-5 shows in black the basin for the Hénon map. It is relatively smooth and not
particularly interesting. It resembles a thick version of the attractor, but rotated by
90 degrees. Figure 8-6 shows the basin of another two-dimensional quadratic map
called the Tinkerbell map. Its boundary has obvious fractal structure. In each case,
the basin boundary appears to touch the attractor, suggesting that this surprising
feature may be common.
471
Figure 8-5. Basin of attraction for the Hénon map
472
Figure 8-6. Basin of attraction for the Tinkerbell map
Notice that we have now plotted the Hénon map in three different spaces.
Figure 3-1 is the usual plot of the orbit in the space of the dynamical variables X and
Y. Figure 8-1 is a plot in the space of the control parameters a and b. Figure 8-5 is a
plot in the space of the initial conditions X0 and Y0. All of these plots are necessary
to characterize the attractor completely.
The well-known and much-studied Mandelbrot set is the set of bounded
solutions in the ab plane of the mapping
473
The variables X and Y usually are thought of as the real and imaginary parts of a
complex number Z. Each point in the ab plane has associated with it a Julia set,
which is the set of all initial conditions X0 and Y0 whose solutions are bounded. The
Mandelbrot set is the set of Julia sets every point of which is connected to every
other point. The Julia set is named after Gaston Julia, a French mathematician who,
along with Pierre Fatou, studied iterated maps in the complex plane at about the
time of the first world war. Combinations of a and b at the boundary of the
Mandelbrot set produce chaotic solutions, but values inside the set lead to fixed
points or limit cycles. For b = 0 and Y0 = 0 (the real axis), Equation 8C reduces to a
simple one-dimensional quadratic map equivalent to the logistic map.
The Mandelbrot set has been described as the most complicated math-
ematical object ever seen. It may also be the ultimate computer virus, in that it takes
over not only the machine (because of the large computational requirements) but
also the mind of the programmer, who often becomes addicted to the beauty and
variety of the patterns that it produces.
Like the Mandelbrot set, most of the attractors produced by the programs in
this book have intricate structure near the basin boundaries. You can zoom in on
these regions to produce patterns that rival those produced by the Mandelbrot set.
Calculation times increase markedly as you zoom in ever more closely, however.
Much more can be done to correlate the aesthetic appeal of the attractors
with the various numerical quantities that characterize them. Besides the fractal
dimension and Lyapunov exponent, the system that produced them has dimension
and order. Other measures of an attractor’s dimension include the capacity
dimension, the information dimension, and the Lyapunov dimension. Related to the
Lyapunov exponent is the entropy, which is a measure of the disorder of the system.
As with the dimension, the entropy can be defined in many ways. These quantities
and others are described in many of the books on fractals in the bibliography. Maps
and differential equations can also be compared.
You can test for differences between the aesthetic preferences of artists and
scientists. Preliminary indications suggest that complexity might appeal more to
artists than to scientists, who tend to see beauty in simplicity. There may also be
discernible cultural differences. You can see how the various display techniques
alter one’s preferences. For example, the use of color seems to increase the
tolerance for attractors of high fractal dimension.
Many scientific studies can be performed on a sufficiently large collection of
strange attractors. The results of Table 8-1, which are merely suggestive and limited
to particular types of equations, can be refined with more cases and more
examples of each case. For low dimensions, maps are more chaotic than the
equivalent ODEs. As the system dimension increases, however, maps become less
chaotic, while ODEs become more chaotic. Equation 8A and 8B suggest that for a
474
system dimension of about six, maps and ODEs will be equally chaotic. Will their roles
reverse at higher dimension, or will the chaotic fractions asymptotically approach
a universal value of about 2%?
You can ask the same type of questions about bounded, nonchaotic
solutions (fixed points, limit cycles, and tori). It is especially interesting to see how
common 3-tori are in light of Peixoto’s theorem (see Section 6.6), but their produc-
tion probably requires system dimensions of about 10 according to Figure 8-2, which
may or may not apply to tori. Almost nothing is known about such issues.
We have considered the fraction of the bounded, hyperdimensional control
space over which chaos occurs. It is also interesting to examine the shape, location,
and dimension of this chaotic region, as we did for the two-parameter Hénon map
in Figure 8-1. It is likely that this region is a fractal. How does its fractal dimension
depend on the system dimension and other characteristics of the system of
equations? It appears that the dimension of the chaotic region is about half the
dimension of the control space for the cases in this book.
The scaling of the average fractal dimension and the Lyapunov exponent
with the system dimension is intriguing and should be studied with more cases,
better statistics, and more accurate calculations of the fractal dimension. You can
examine statistically how the various measures of dimension compare and how
these dimensions are related to the spectrum of Lyapunov exponents.
You can look for relations between the geometrical properties of attractors
and their respective power spectra. The technique can be used to explore and to
quantify the various routes by which a stable solution becomes chaotic. Many such
routes have been identified, such as the period-doubling exhibited by the logistic
equation, but there are probably others yet to be discovered. Your role resembles
that of a biologist confronted with a large variety of species, trying to classify,
quantify, and study their similarities, differences, and patterns of behavior.
Another interesting study is to search for previously unknown simple examples
of chaos. Variations of the logistic equation are the simplest chaotic polynomial
maps. The Lorenz and Rössler attractors are often cited as the simplest examples of
chaotic polynomial ODEs. The Lorenz equations (Equation 6D) have seven terms
and two quadratic nonlinearities, and the Rössler equations (Equation 6E) have
seven terms and one quadratic nonlinearity.
There are at least five different systems of chaotic, three-dimensional qua-
dratic ODEs with five terms and two nonlinearities, and six systems with six terms and
one nonlinearity. It will be left as a challenge for you to find them. There does not
seem to be any chaotic system of quadratic ODEs with as few as four terms. To whet
your appetite, here’s a simple chaotic system resembling the Lorenz attractor that
has two fewer terms and all its coefficients equal to one:
475
X' = YZ
Y' = X -Y
Z' = 1 - XY (Equation 8D)
X' = Y
Y' = X + YZ
Z" = 1 - Y2 (Equation 8E)
476
Chaos may also provide tools for making better predictions of complicated and
apparently random systems, such as the weather, the stock market, earthquakes,
epidemics, and population growth. It may also have applications in communica-
tions and in cryptography for devising secure codes and breaking them.
Since chaotic systems exhibit extreme sensitivity to initial conditions, you
might conclude that prediction is hopeless, but this is not the case. Prediction is
hopeless for a random system or for an extremely complicated deterministic
system. As the physicist Neils Bohr remarked, "Prediction is difficult, especially of the
future." However, if the system is simple and chaotic, then the determinism can be
exploited to improve short-term predictions.
Furthermore, if the equations produce a strange attractor, as most chaotic
systems do, we know that the solution lies somewhere on the attractor. Remember
that an attractor occupies a negligible volume of the space in which it is embed-
ded. Although we can’t predict where on the attractor the system will be at any
particular time in the distant future, we can exclude the vast number of possible
states that lie off the attractor. In meteorological terms, this might lead to eliminat-
ing the possibility of certain weather conditions with near absolute certainty.
When we see a system in nature that behaves erratically, we are now led to
wonder whether it is an example of chaos. Is simple determinism hidden in
seemingly random data? This problem is opposite to the one addressed in this book.
Here we have started with simple equations and produced complicated patterns.
Nature presents us with complicated patterns that may or may not come from
simple equations.
Often we are given only a single fluctuating quantity sampled at discrete
times—a so-called time series. The average daily temperature in New York and the
daily closing Dow Jones Industrial Average are two examples of a time series.
Sometimes a complicated-looking time series is simply a sum of several sine waves
of different unrelated frequencies. In such a case, accurate predictions are
possible using linear methods. A good example is the tides, whose behavior is not
simply periodic but nevertheless can be predicted with considerable accuracy
because it is governed by periodic notions of the earth and moon. More often, the
time series has no such simple representation. In such a case, we would like to
determine whether the behavior is random or chaotic. Chaotic systems often
produce strange attractors.
We usually don’t have data for all the variables that describe the system, nor
do we even know how many there are, so we don’t know the dimension of the
space in which an attractor might be embedded. Furthermore, the data record is
likely to be corrupted by random noise and measurement errors. The number of
data points may be small, and the system may not have reached a steady state.
Finally, we usually don’t have control over the system, so we cannot directly test its
477
sensitivity to initial conditions.
Such a situation sounds hopeless, but progress has recently been made in
testing for chaos in natural systems. For example, one can plot each data point
versus its predecessor, as we did with the one-dimensional maps in Chapter 2. In
some cases, this procedure is enough to reveal the determinism. More often, it is
necessary to plot each data point versus several of its predecessors in a high-
dimensional space. If the system is described by a strange attractor, the result is a
version of the attractor called a diffeomorphism that is distorted but has the same
fractal dimension. Similarly, the Lyapunov exponent can be estimated by selecting
nearby points in this space and determining how rapidly they diverge from one
another.
The fractal dimension is important because the number of variables and
equations is at least as large as the next higher integer, since the attractor has to be
embedded in a space with dimension higher than its fractal dimension. These
equations are not unique, however. Extracting equations from the data is a difficult
if not impossible task, but one whose rewards justify the effort. The equations provide
insight into the underlying dynamics and a means for making predictions.
Perhaps the ultimate test for chaos is the accuracy of short-term predictions.
With truly random data, prediction is impossible. Conversely, with chaotic data,
there is absolute determinism, and prediction is possible in principle, at least on
short-time scales dictated by the Lyapunov exponent and the precision of the
data. Predictability thus precludes complete randomness and signifies determin-
ism, although randomness and determinism often coexist. For example, the busi-
ness cycle is mostly random but includes deterministic seasonal changes. The
deterministic part is not necessarily chaotic, however.
Dynamical systems are everywhere. Your body contains several. Your heart
is a dynamical system whose solution normally approaches a limit cycle, but which
can become chaotic when in fibrillation or a fixed point upon death. Recent
research suggests that even a healthy heart beats chaotically, and a nearly
periodic pattern sometimes precedes cardiac arrest.
Other oscillations occur in your lungs, brain, and muscles. Electrocardio-
grams and electroencephalograms are time-series records used by doctors to
deduce information about the dynamics of the corresponding organ. Some chaos
in the brain may be necessary for creativity because it prevents us from repeatedly
approaching the same problems in the same way. The fractal dimension of
electroencephalograms has been observed to increase when a subject is en-
gaged in mental activity. In psychology, manic depression resembles a limit cycle,
and certain types of erratic behavior might be strange attractors.
Evidence for low-dimensional strange attractors has been found in systems
478
as diverse as the weather and climate, the business cycle, childhood epidemics,
sunspots, plasma fluctuations, and even in computer models of the arms race.
Some of these results should be viewed skeptically because there are many ways
to be misled. The number of data points needed for an accurate determination of
the dimension has been variously estimated from a pessimistic and probably overly
conservative 42F to a more optimistic but still large 102 + 0.4F. If the interval between
data points is too small, a fictitiously low dimension can result. Certain types of
colored noise (also called fractional Brownian motion) have a degree of determin-
ism and produce time-series records with an apparently low dimension. Many tests
have been devised, such as comparing the results with those from a surrogate data
set obtained by randomly shuffling the numbers in the time series.
Chaos has a deep philosophical significance. If determinism implied perfect
predictability, there would be no room for free will. We would be just small cogs in
a large machine over which we have no control. It’s easy to feel insignificant in a
vast and complicated universe dominated by forces too powerful to resist.
However, chaos illustrates that determinism does not imply predictability.
What is bad news for those who want to predict the weather or the stock market is
good news for those who want to control them. Recall the hypothetical butterfly
flapping its wings in Brazil, which sets off tornadoes in Texas. If the world is really
governed by deterministic chaos, we are drastically changing the future with
everything we do. We need never feel unimportant or insignificant. Who would
have thought that a concept from mathematics could give meaning and purpose
to our lives?
479
Appendix A
Annotated Bibliography
Books and articles on chaos and fractals have proliferated enormously in recent
years. A selection of the most useful and readable of these is listed here, along with
comments on the content and level of each.
Abbott, E. A. Flatland: A Romance of Many Dimensions (New York: Barnes & Noble,
1983). An entertaining classic written in 1884 by a Victorian schoolmaster and
minister, this book explains the fourth and higher dimensions by considering the
impact of a visit by a three-dimensional creature (A Sphere) to a world inhabited
by two-dimensional creatures (A Square and others).
Barnsley, M. F. Fractals Everywhere (San Diego, CA: Academic Press, 1988). This
classic text by an expert mathematician describes the mathematics underlying
fractals and provides a good source of new fractal types.
480
collection of articles describing the mathematics that underlies the computer
generation of fractals.
Briggs, J. Fractals: The Patterns of Chaos (New York: Touchstone, 1992). A non-
mathematical but detailed explanation of fractals and chaos with many high-
quality drawings and photographs.
Briggs, J. and F. Peat. The Turbulent Mirror: An Illustrated Guide to Chaos Theory and
the Science of Wholeness (New York: Harper and Row, 1989). This unusual book
combines a simple mathematical description of chaos with loosely related philo-
sophical and psychological ramblings.
Burger, D. Sphereland (New York: Barnes & Noble, 1983). An entertaining book
written in the style of the one by Abbott, it picks up where Flatland stops in describing
the properties of high-dimensional spaces.
481
Devaney, R. L. Chaos, Fractals, and Dynamics: Computer Experiments in Math-
ematics (Reading, MA: Addison-Wesley, 1990). This book introduces chaos, fractals,
and nonlinear dynamics with numerous beautiful images using computer exercises
in BASIC and simple mathematics.
Feder, J. Fractals (New York: Plenum Press, 1988). This introductory technical book
describes fractals using geometrical ideas and explains time-series analysis and
other related topics from a physical viewpoint.
482
trated book that includes computer-generated images of flowers, graphic logos,
motifs, and other artistic mathematical patterns.
Gleick, J. Chaos: Making a New Science (New York: Viking Penguin, 1987). This best-
selling, historical, and nontechnical account is the starting point for anyone who
wants to understand why chaos has excited the imagination of the scientist and
nonscientist alike.
Gulick, D. Encounters with Chaos (New York: McGraw Hill, 1992). A rigorous upper-
undergraduate-level introduction to the mathematics of chaos.
Hao, B. L. Chaos II (Singapore: World Scientific, 1990). This book reprints many
introductory and influential papers on chaos and includes a bibliography of 117
books and 2244 technical papers.
Hofstadter, D. R. Godel, Escher, Bach: An Eternal Golden Braid (New York: Vintage,
1980). Dealing with, among other things, self-similarity and recursion in music, art,
and science, this largely nonmathematical but deeply philosophical book is highly
recommended.
483
Hofstadter, D. R. "Strange Attractors: Mathematical Patterns Delicately Poised
Between Order and Chaos." Scientific American, Vol. 245, page 22 (November
1981). This article provides an introduction to the mathematics of strange attractors
and their significance.
Krasner, S., ed. The Ubiquity of Chaos (Washington, D. C.: American Association for
the Advancement of Science, 1990). A collection of 19 scientific papers that
illustrates the wide range of fields in which chaotic processes have been discovered
and studied.
Levy, S. Artificial Life: The Quest for a New Creation (New York: Pantheon Books,
1992). This book takes up where Gleick left off and covers much of the recent history
of chaos and its developers.
484
reference to the term chaos.
McGuire, M. An Eye for Fractals (Reading, MA: Addison-Wesley, 1991). This graphic
and photographic essay by a physicist and amateur photographer contains
beautiful black and white photographs of natural fractals in the style of Ansel
Adams, with a simple mathematical description of fractals.
485
Peitgen, H. O. and P. H. Richter. The Beauty of Fractals: Images of Complex
Dynamical Systems (New York: Springer-Verlag, 1986). This beautiful, colorful exhibit
of computer art emphasizes the Mandelbrot and Julia sets.
Peitgen, H. O., H. Jurgens, and D. Saupe. Fractals for the Classroom (New York:
Springer-Verlag, 1992). A two-book set that explains the mathematical basis of
fractals at a relatively elementary level and contains many BASIC program listings
for the production of fractals.
Pickover, C. A. Mazes for the Mind: Computers and the Unexpected (New York: St.
Martin’s Press, 1992). The third book in the series that includes puzzles, games, and
mazes appealing to computer enthusiasts, artists, and puzzle-solvers, along with
incisive commentary and additional dazzling computer images.
Porter, E. and J. Gleick. Nature’s Chaos (New York: Viking Penguin, 1990). This book
of art combines photographs of natural fractals by Porter with a simple, almost
poetic, explanation of chaos and fractals by Gleick.
486
programs in BASIC and Pascal to ease the reader into the mathematics of chaos
and fractals.
Rössler, O. E. "An Equation for Continuous Chaos." Physics Letters, Vol. 57A, page 397
(1976). This short, classic paper by a nonpracticing medical doctor includes
stereoscopic views of the Lorenz and Rössler attractors.
Rucker, R. The Fourth Dimension (New York: Houghton-Mifflin, 1984). The book to
read if you want to understand the philosophical, geometrical, and physical
meaning of space-time.
Ruelle, D. Chance and Chaos (Princeton, NJ: Princeton Univ. Press, 1991). A
charming little book by a pioneer in chaos, describing with minimal mathematics
the philosophical implications of chaos and randomness.
Schroeder, M. Fractals, Chaos, and Power Laws: Minutes from an Infinite Paradise
(New York: W. H. Freeman, 1991). A slightly mathematical but highly readable book
packed with examples of temporal and spatial chaos in enormously diverse
contexts and a wealth of puns.
487
Shaw, R. The Dripping Faucet as a Model Chaotic System (Santa Cruz, CA: Aerial
Press, 1984). A short but detailed book that describes in nontechnical language
how the ideas of chaos and strange attractors can be used to understand a
phenomenon as simple as a dripping faucet.
Sprott, J. C. "How Common is Chaos?" Physics Letters, Vol. 173A, page 21 (1993). An
abbreviated technical paper quantifying the occurrence of chaos in polynomial
maps and ODEs that was the inspiration for this book.
Stevens, R. T. Fractal Programming in C (New York: M&T Books, 1989). Also available
in a TurboPascal version, this book provides programs and detailed descriptions for
producing most of the standard fractal forms.
488
Stevens, R. T. Advanced Fractal Programming in C (New York: M&T Books, 1990).
Picking up where Stevens’ previous one left off, this book emphasizes Mandelbrot
and Julia sets but also discusses other fractal types, such as L-systems and iterated
function systems.
Stewart, I. Does God Play Dice?: The Mathematics of Chaos (Oxford: Blackwell,
1989). A charming, light-hearted, but serious book that provides a good introduc-
tion to chaos using simple mathematics.
Tsonis, A. A. Chaos: From Theory to Applications (New York: Plenum Press, 1992). An
advanced undergraduate text that includes recent developments in the applica-
tions of chaos theory to real-world problems, such as improved methods of
forecasting and distinguishing chaos from noise.
489
fundamental to a deep understanding of strange attractors and other geometrical
objects.
Wegner, T. and M. Peterson. Fractal Creations (Mill Valley, CA: Waite Group Press,
1991). This book is really a user’s manual for the incredible freeware program
FRACTINT, which is constantly updated by a dedicated group of volunteer fractal
programming enthusiasts.
490
Appendix B
BASIC Program Listing
This appendix contains the complete BASIC program that you should have devel-
oped if you followed the exercises in this book, along with a few additions. It should
run without modification on DOS-based IBM personal computers or compatibles
under Microsoft BASICA, GW-BASIC, QBASIC, QuickBASIC, or VisualBASIC for MS-
DOS; Borland International Turbo BASIC; and Spectra Publishing PowerBASIC. A disk
containing the source program and a version of the program complied with
PowerBASIC (SA.EXE) and ready to run is included with the book. This is a relatively
no-frills program in that it lacks extensive error trapping, fancy menus, and mouse
support, but it is fully functional and relatively robust.
1. The program contains a version number (2.0) and a copyright notice. Your
purchase of this book and the accompanying disk entitles you to personal use of
the program. It is not legal for you to make a copy of the program for someone else,
to place it in the public domain, or to incorporate it in whole or in part into programs
that are distributed to others. The idea of programming a computer to search
automatically for strange attractors based on calculation of the Lyapunov expo-
nent is believed to be original, and proper scientific etiquette requires that you
acknowledge the author in any further dissemination of work based on this
technique.
2. The program includes a somewhat inelegant but effective test for the graphics
capability of the computer on which it is used. It causes the program to run
automatically in the highest graphics mode supported by the hardware and by the
BASIC version under which it is compiled
or run. The program prints a message and stops if the computer does not have
a graphics monitor. Colors are adjusted for CGA MODE 1, and text is properly
formatted for screens with 40 columns of text.
3. The program allows you to change the number of iterations that are plotted while
in the search mode using the N key. Values of a thousand (10^3) to a billion (10^9)
are allowed. Note that this value excludes the thousand iterations that are always
performed to allow the initial transient to decay.
491
4. In addition to the planar and spherical projections, the P command allows you
to project the attractors onto a cylinder with a horizontal or vertical axis or a torus.
The toroidal projection is shown looking along the major axis with the doughnut hole
at the center of the screen and of negligible size.
5. A C command has been added to allow you to clear the screen and restart the
calculation with the current values of the variables. This feature allows you to
remove the transient in cases when the orbit requires more than a thousand
iterations to reach the attractor or to reduce the density of points on the screen,
which is sometimes useful, for example, with the 3-D anaglyphic displays.
If you have been working systematically through the programs in this book,
you will find useful the following list of program lines that require changes to produce
the final program PROG28.BAS:
1000, 1070, 1090, 1140, 1310, 1330, 1340, 1360, 2270-2290, 2500, 3060, 3360, 3400-
3420, 3630, 3670, 3740, 3750, 3780, 4000, 4240, 4250, 4280, 4380, 4390, 4430-4450,
4570-4590, 5650-5710, 5840, 6600-7070
PROG28.BAS. Complete BASIC program for producing all the examples in this book and endless
variations
1000 REM STRANGE ATTRACTOR PROGRAM BASIC Ver 2.0 (c) 1993 by J. C. Sprott
1020 DIM XS(499), YS(499), ZS(499), WS(499), A(504), V(99), XY(4), XN(4), COLR%(15)
492
1030 SM% = 12 'Assume VGA graphics
1250 CLS
493
1260 END
1390 NE = 0: CLOSE
1420 RETURN
1520 Y = .05
1530 Z = .05
1540 W = .05
1550 XE = X + .000001: YE = Y: ZE = Z: WE = W
494
1570 T% = 3
1580 P% = 0: LSUM = 0: N = 0: NL = 0: N1 = 0: N2 = 0
1620 TWOD% = 2 ^ D%
1630 RETURN
1710 IF ODE% > 1 THEN GOSUB 6200: GOTO 2020 'Special function
1730 FOR I% = 1 TO D%
1750 M% = M% + 1
1780 M% = M% + 1
1810 M% = M% + 1
495
1850 M% = M% + 1
1890 M% = M% + 1
1930 M% = M% + 1
2000 NEXT I%
2020 N = N + 1
2030 RETURN
496
2130 IF X > XMAX THEN XMAX = X
2250 IF N < 1000 OR XP <= XL OR XP >= XH OR YP <= YL OR YP >= YH THEN GOTO 2320
2320 RETURN
497
2420 IF QM% = 2 THEN GOTO 2490 'Speed up evaluation mode
2450 IF QM% > 0 THEN GOTO 2490 'Skip tests when not in search mode
2500 IF SAV% > 0 THEN IF N > 1000 AND N < 17001 THEN GOSUB 7000 'Save data
2520 Y = YNEW
2530 Z = ZNEW
2540 W = WNEW
2550 RETURN
2630 IF EOF(1) = 0 THEN LINE INPUT #1, CODE$: GOSUB 4700: GOSUB 5600
498
2680 GOSUB 4700 'Get value of M%
2720 NEXT I%
2750 NEXT I%
2760 RETURN
2850 RETURN
499
2960 DL2 = DLX * DLX + DLY * DLY + DLZ * DLZ + DLW * DLW
2990 RS = 1 / SQR(DF)
3060 IF N > 1000 AND N MOD 10 = 0 THEN LOCATE 1, WID% - 4: PRINT USING "##.##";
L;
3070 RETURN
3120 IF XMAX - XMIN < .000001 THEN XMIN = XMIN - .0000005: XMAX = XMAX + .0000005
3130 IF YMAX - YMIN < .000001 THEN YMIN = YMIN - .0000005: YMAX = YMAX + .0000005
3140 IF ZMAX - ZMIN < .000001 THEN ZMIN = ZMIN - .0000005: ZMAX = ZMAX + .0000005
3150 IF WMAX - WMIN < .000001 THEN WMIN = WMIN - .0000005: WMAX = WMAX + .0000005
3190 YH = YH - .5 * MY
500
3200 XA = (XL + XH) / 2: YA = (YL + YH) / 2
3230 IF TRD% = 1 THEN LINE (XL, YL)-(XH, YH), COLR%(1), BF: GOSUB 5400
3270 FOR I% = 1 TO 3
3300 NEXT I%
3320 IF PJT% = 1 AND TRD% < 5 THEN CIRCLE (XA, YA), .36 * (XH - XL)
3380 LOCATE 1, 69: PRINT CINT((LOF(1) - 128 * LOC(1)) / 1024); "K left";
3410 IF LEN(CODE$) >= WID% - 18 THEN PRINT LEFT$(CODE$, WID% - 23) + "..."
3420 LOCATE 1, WID% - 17: PRINT "F =": LOCATE 1, WID% - 7: PRINT "L ="
501
3430 TIA = .05 'Tangent of illumination angle
3460 RETURN
3520 DUR = 1
3550 RETURN
502
3710 IF Q$ = "E" THEN T% = 1: QM% = 2
3720 IF Q$ = "H" THEN FTH% = (FTH% + 1) MOD 3: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
3730 IF Q$ = "I" THEN IF T% <> 1 THEN SCREEN 0: WIDTH 80: COLOR 15, 1: CLS : LINE
INPUT "Code? "; CODE$: IF CODE$ = "" THEN Q$ = " ": CLS : ELSE T% = 1: QM% = 1:
GOSUB 4700
3740 IF Q$ = "N" THEN NMAX = 10 * (NMAX - 1000) + 1000: IF NMAX > 10 ^ 10 THEN
NMAX = 2000
3750 IF Q$ = "P" THEN PJT% = (PJT% + 1) MOD 5: T% = 3: IF N > 999 THEN N = 999
3760 IF Q$ = "R" THEN TRD% = (TRD% + 1) MOD 7: T% = 3: IF N > 999 THEN N = 999:
GOSUB 5600
3780 IF Q$ = "V" THEN SAV% = (SAV% + 1) MOD 5: FAV$ = CHR$(87 + SAV% MOD 4): T%
= 3: IF N > 999 THEN N = 999
3800 RETURN
3910 IF N < 1000 THEN GOTO 4010 'Wait for transient to settle
3920 IF N = 1000 THEN D2MAX = (XMAX - XMIN) ^ 2 + (YMAX - YMIN) ^ 2 + (ZMAX - ZMIN)
^ 2 + (WMAX - WMIN) ^ 2
3950 D2 = DX * DX + DY * DY + DZ * DZ + DW * DW
3980 N1 = N1 + 1
503
3990 F = .434294 * LOG(N2 / (N1 - .5))
4010 RETURN
4150 RETURN
4290 IF ODE% > 1 THEN PRINT TAB(27); "D: System is 4-D special map "; CHR$(87
+ ODE%); " ": GOTO 4320
4300 PRINT TAB(27); "D: System is"; STR$(D%); "-D polynomial ";
504
4320 PRINT TAB(27); "E: Evaluate attractors"
505
4550 IF SND% = 0 THEN PRINT "off"
4590 IF SAV% > 0 THEN PRINT FAV$; " will be saved in "; FAV$; "DATA.DAT"
4610 Q$ = INKEY$
4630 WEND
4640 RETURN
4720 IF D% > 6 THEN ODE% = ASC(LEFT$(CODE$, 1)) - 87: D% = 4: GOSUB 6200: GOTO
4770
4810 RETURN
506
4900 REM Save attractor to disk file SA.DIC
4930 CLOSE #1
4940 RETURN
5030 IF FTH% = 1 THEN IF INT(30 * (W - WMIN) / (WMAX - WMIN)) MOD 2 THEN GOTO
5330
5050 IF D% < 3 THEN PSET (XP, YP): GOTO 5330 'Skip 3-D stuff
5080 IF D% > 3 AND FTH% = 2 THEN PSET (XP, YP), C4%: GOTO 5110
5100 IF C% = COLR%(2) THEN PSET (XP, YP), COLR%(3) ELSE IF C% <> COLR%(3) THEN
PSET (XP, YP), COLR%(2)
5140 IF D% > 3 AND FTH% = 2 AND (INT(15 * (Z - ZMIN) / (ZMAX - ZMIN) + 2) MOD
507
2) = 1 THEN PSET (XP, YP), C4%
5160 IF TRD% = 3 THEN PSET (XP, YP), COLR%(INT(NC% * (Z - ZMIN) / (ZMAX - ZMIN)
+ NC%) MOD NC%)
5260 XRT = XA + (XP + XZ * (Z - ZA) - XL) / HSF: PSET (XRT, YP), C4%
5270 XLT = XA + (XP - XZ * (Z - ZA) - XH) / HSF: PSET (XLT, YP), C4%
5330 RETURN
508
5410 FOR I% = 0 TO 15 'Draw 15 vertical grid lines
5440 NEXT I%
5480 NEXT I%
5490 RETURN
5630 IF TRD% = 3 OR (D% > 3 AND FTH% = 2 AND TRD% <> 1) THEN FOR I% = 0 TO NC%:
COLR%(I%) = I% + 1: NEXT I%
5670 IF (TRD% = 0 OR TRD% > 4) AND (D% = 3 OR FTH% <> 2) THEN SCREEN 2: GOTO
5720
509
5720 RETURN
5830 IF Q$ = CHR$(27) THEN CLS : GOSUB 6000: Q$ = " ": QM% = 0: GOTO 5850
5850 RETURN
5930 CLOSE #2
5940 RETURN
6050 WHILE NOT EOF(1): LINE INPUT #1, CODE$: PRINT #2, CODE$: WEND
6060 CLOSE
510
6080 NAME "SATEMP.DIC" AS "SA.DIC"
6090 RETURN
6220 WNEW = (N - 100) / 900: IF N > 1000 THEN WNEW = (N - 1000) / (NMAX - 1000)
6240 M% = 10
6280 M% = 14
6320 M% = 14
6330 XNEW = A(1) + A(2) * X + A(3) * Y + A(4) * ABS(X) ^ A(5) + A(6) * ABS(Y)
^ A(7)
6340 YNEW = A(8) + A(9) * X + A(10) * Y + A(11) * ABS(X) ^ A(12) + A(13) * ABS(Y)
^ A(14)
6360 M% = 18
511
6380 YNEW = A(10) + A(11) * X + A(12) * Y + A(13) * SIN(A(14) * X + A(15)) +
A(16) * SIN(A(17) * Y + A(18))
6400 M% = 6
6410 IF N < 2 THEN AL = TWOPI / (13 + 10 * A(6)): SINAL = SIN(AL): COSAL = COS(AL)
6460 M% = 9
6490 ZNEW = Z + EPS * (A(9) + 1.3): IF ZNEW > TWOPI THEN ZNEW = ZNEW - TWOPI
6500 RETURN
6620 IF SM% = 0 THEN PRINT "This program requires a graphics monitor": STOP
6630 RESUME
512
6730 RETURN
6830 RETURN
6950 RETURN
7010 IF N = 1001 THEN CLOSE #3: OPEN FAV$ + "DATA.DAT" FOR OUTPUT AS #3
7070 RETURN
513
Appendix C
Other Computers and BASIC Versions
Here are some considerations for using the programs with non-IBM-compatible
computers and with different dialects of BASIC.
These old versions of BASIC are mostly compatible with the program listings
in this book. They do not support VGA graphics, and the older versions don’t even
support EGA. Thus you may have to change SM% = 12 in line 1030 to a lower number.
PROG28.BAS automatically selects an appropriate graphics mode.
These versions of BASIC do not support strings longer than 255 characters. The
easiest way to circumvent this problem is to limit the four-dimensional searches to
cubic polynomials. Adding the following line to the program after line 2680
accomplishes this:
The program listings in this book are compatible with Turbo BASIC and
PowerBASIC, except for a quirk with the CIRCLE command with VGA graphics that
requires the following change in line 3320:
3320 IF PJT% = 1 AND TRD% < 5 THEN IF SM% < 11 THEN CIRCLE (XA, YA), .36 * (XH
- XL) ELSE CIRCLE (XA, YA), .5 * (YH - YL)
514
VisualBASIC for MS-DOS
The programs as listed compile and run directly under VisualBASIC for MS-
DOS. This version of BASIC makes it easy for you to add pull-down menus, dialog
boxes, and mouse support to give the user interface a more modern look and feel.
A VisualBASIC for Windows version of the listing PROG06 but without the
keyboard strobe and sound capabilities is given in PROG06VB.BAS. VisualBASIC for
Windows 2.0 does not support the SOUND statement or INKEY$ function, although
these capabilities and many others are available through internal Windows drivers.
You can use this listing as a starting point for converting the other programs in this
book for use with Microsoft Windows. The accompanying disk contains a compiled
version of this program in the file SAWIN.EXE. To run this program under Windows 3.0
or later, the VBRUN200.DLL run-time dynamic link library that comes with VisualBASIC
version 2.00, which is included on the accompanying disk, must be in a directory in
your search path.
VERSION 2.00
Height = 4620
Left = 828
LinkTopic = "Form1"
ScaleHeight = 4200
515
ScaleWidth = 6420
Top = 1128
Width = 6516
End
DefDbl A-Z
Sub Form_Activate ()
1000 Rem TWO-D MAP SEARCH VisualBASIC Ver 1.0 (c) 1993 by J. C. Sprott
1250 Cls
1260 End
516
1300 Rem Initialize
1420 Return
1520 Y = .05
1550 XE = X + .000001: YE = Y
1570 T% = 3
1580 P% = 0: LSUM = 0: N = 0: NL = 0
1630 Return
517
2020 N = N + 1
2030 Return
2210 XS(P%) = X
2250 If N < 1000 Or XP <= XL Or XP >= XH Or YP <= YL Or YP >= YH Then GoTo 2320
2320 Return
518
2480 If N > 100 And L < .005 Then T% = 2 ‘Limit cycle
2520 Y = YNEW
2550 Return
2720 Next I%
2750 Next I%
2760 Return
519
2840 V(J%) = Rnd
2850 Return
2990 RS = 1 / Sqr(DF)
3070 Return
3120 If XMAX - XMIN < .000001 Then XMIN = XMIN - .0000005: XMAX = XMAX + .0000005
3130 If YMAX - YMIN < .000001 Then YMIN = YMIN - .0000005: YMAX = YMAX + .0000005
520
3180 Scale (XL, YL)-(XH, YH): Cls
3460 Return
End Sub
If you want to run the programs on an Apple Macintosh, the easiest way is to
use the Macintosh version of QuickBASIC. Unfortunately, this BASIC (at least in
version 1.0) is not very compatible with any of the IBM BASICs. Also, it lacks many
important and useful commands, although most of the missing features (such as
color) are available through BASIC calls to the Macintosh Toolbox. An alternate
though probably equally difficult approach is to convert the C source listing in
Appendix D for use with one of the C compilers available for the Macintosh.
1000 REM TWO-D MAP SEARCH Macintosh QuickBASIC Ver 1.0 (c) 1993 by J. C. Sprott
521
1040 PREV% = 5 ‘Plot versus fifth previous iterate
1250 CLS
1260 END
1420 RETURN
522
1510 X = .05 ‘Initial condition
1520 Y = .05
1550 XE = X + .000001: YE = Y
1570 T% = 3
1580 P% = 0: LSUM = 0: N = 0: NL = 0
1630 RETURN
2020 N = N + 1
2030 RETURN
523
2200 IF N = 1000 THEN GOSUB 3100 ‘Resize the screen
2210 XS(P%) = X
2250 IF N < 1000 OR XP <= XL OR XP >= XH OR YP <= YL OR YP >= YH THEN GOTO 2320
2300 PSET (WW * (XP - XL) / (XH - XL), WH * (YH - YP) / (YH - YL))
2320 RETURN
2520 Y = YNEW
2550 RETURN
524
2650 O% = 2 + INT((OMAX% - 1) * RND)
2720 NEXT I%
2750 NEXT I%
2760 RETURN
2850 RETURN
525
2960 DL2 = DLX * DLX + DLY * DLY
2990 RS = 1 / SQR(DF)
3070 RETURN
3120 IF XMAX - XMIN < .000001 THEN XMIN = XMIN - .0000005: XMAX = XMAX + .0000005
3130 IF YMAX - YMIN < .000001 THEN YMIN = YMIN - .0000005: YMAX = YMAX + .0000005
3460 RETURN
3520 DUR = 1
526
3550 RETURN
3610 T% = 0
3800 RETURN
527
Appenix D
C Program Listing
The listing here should compile and run without modification under Microsoft
QuickC version 2.5 on the IBM PC-compatible platform. Some changes are re-
quired to run under other versions of C. The disk included with this book contains the
Microsoft QuickC source listing in a file named PROG28QC.C and a version
PROG28TC.CPP that should compile and run with Borland Turbo C++ version 3.0. The
programs compile using the small memory model with either compiler. However,
you will probably find that the C versions run at about the same speed as the
Microsoft QuickBASIC or VisualBASIC for MS-DOS version, and somewhat slower
than the PowerBASIC version.
The C versions of the program are fairly literal translations of the BASIC version.
All variables are global and retain the same names as in the BASIC version. The
BASIC subroutines have been converted into C functions whose names correspond
to the BASIC line numbers. No variables are passed to or from any of the functions.
The level of indentation is minimal. The program assumes the computer has VGA
color graphics. PROG28QC.C should compile to a fully functional program, except
for the fact that QuickC lacks a sound function.
#include <dos.h>
#include <stdio.h>
528
#include <graph.h>
#include <math.h>
int PREV, OMAX, D, ODE, SND, PJT, TRD, FTH, SAV, T, WID, QM, P, TWOD;
int M, I, I1, I2, O, I3, I4, I5, J, WH, FREQ, C4, NC, C, RD, CY, BK;
int COLR[16];
char CODE[515], Q;
double NMAX, EPS, TWOPI, SEG, NE, X, Y, Z, W, XE, YE, ZE, WE, LSUM, N, NL;
double N1, N2, XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX, WMIN, WMAX, XNEW, YNEW;
double ZNEW, WNEW, XP, YP, RAN, XSAVE, YSAVE, ZSAVE, WSAVE, DLX, DLY, DLZ;
double DLW, DL2, DF, RS, L, MX, MY, XL, XH, YL, YH, XA, YA, ZA, TT, PT, TIA;
double XZ, YZ, DUR, D2MAX, DX, DY, DZ, DW, D2, F, TH, PH, XRT, XLT, HSF, AL;
main()
529
{
D = 2; /* Dimension of system */
T = 1;
while (T) {
switch (T) {
530
case 5: fun2400(); /* Test results */
fun1300() /* Initialize */
_clearscreen(_GCLEARSCREEN);
printf("Searching...");
if (QM == 2) {
NE = 0;
fclose(F1);
F1 = fopen("SA.DIC", "a");
fclose(F1);
F1 = fopen("SA.DIC", "r");
531
fun1500() /* Set parameters */
Y = .05;
Z = .05;
W = .05;
XE = X + .000001;
YE = Y;
ZE = Z;
WE = W;
T = 3;
P = 0;
LSUM = 0;
N = 0;
NL = 0;
N1 = 0;
N2 = 0;
XMIN = 1000000;
XMAX = -XMIN;
YMIN = XMIN;
YMAX = XMAX;
532
ZMIN = XMIN;
ZMAX = XMAX;
WMIN = XMIN;
WMAX = XMAX;
if (ODE > 1)
else {
M = 1;
XY[1] = X;
XY[2] = Y;
XY[3] = Z;
XY[4] = W;
XN[I] = A[M];
M = M + 1;
M = M + 1;
533
for (I2 = I1; I2 <= D; I2++) {
M = M + 1;
M = M + 1;
M = M + 1;
M = M + 1;
}}}}}
XNEW = XN[1];
YNEW = XN[2];
ZNEW = XN[3];
WNEW = XN[4];
N = N + 1;
M = M - 1;
534
fun2100() /* Display results */
XS[P] = X;
YS[P] = Y;
ZS[P] = Z;
WS[P] = W;
P = (P + 1) % 500;
if (D == 1) {
XP = XS[I];
YP = XNEW;
535
}
else {
XP = X;
YP = Y;
if (N >= 1000 && XP > XL && XP < XH && YP > YL && YP < YH) {
536
T = 2;
if (SAV > 0) if (N > 1000 && N < 17001) fun7000(); /* Save data */
Y = YNEW;
Z = ZNEW;
W = WNEW;
if (feof(F1)) {
QM = 0;
537
}
else {
CODE[0] = 59 + 4 * D + O + 8 * ODE;
CODE[M + 1] = 0;
538
{
J = (int)floor(100 * RAN);
RAN = V[J];
XSAVE = XNEW;
YSAVE = YNEW;
ZSAVE = ZNEW;
WSAVE = WNEW;
X = XE;
Y = YE;
Z = ZE;
W = WE;
N = N - 1;
539
DL2 = DLX * DLX + DLY * DLY + DLZ * DLZ + DLW * DLW;
DF = 1E12 * DL2;
RS = 1 / sqrt(DF);
XNEW = XSAVE;
YNEW = YSAVE;
ZNEW = ZSAVE;
WNEW = WSAVE;
NL = NL + 1;
printf("%5.2f", L);
540
fun3100() /* Resize the screen */
_setcolor(WH);
if (D == 1) {
YMIN = XMIN;
YMAX = XMAX;
541
MX = .1 * (XMAX - XMIN);
MY = .1 * (YMAX - YMIN);
XL = XMIN - MX;
XH = XMAX + MX;
YL = YMIN - MY;
_clearscreen(_GCLEARSCREEN);
YH = YH - .5 * MY;
XA = (XL + XH) / 2;
YA = (YL + YH) / 2;
if (D > 2) {
ZA = (ZMAX + ZMIN) / 2;
if (TRD == 1) {
_setcolor(COLR[1]);
if (TRD == 4) {
_setcolor(WH);
542
}
if (TRD == 5) {
if (TRD == 6) {
XP = XL + I * (XH - XL) / 4;
YP = YL + I * (YH - YL) / 4;
if (PJT != 1) _rectangle_w(_GBORDER, SW * XL + 1, SH * YL - 1, SW * XH - 1, SH
* YH + 1);
_settextposition(1, 1);
543
printf("<Space Bar>: Discard <Enter>: Save");
_settextposition(1, 49);
printf("<Esc>: Exit");
_settextposition(1, 69);
}}
else {
_settextposition(1, 1);
_outtext(CODE);
else {
printf("F =");
printf("L = ");
544
fun3500() /* Produce sound */
DUR = 1;
if (Q == ‘A’) {
T = 1;
QM = 0;
if (ODE == 1) D = D + 2;
if (Q == ‘D’) {
D = 1 + D % 12;
545
T = 1;
if (D > 6) {
ODE = D - 5;
D = 4;
else {
if (D > 4) {
ODE = 1;
D = D - 2;
else ODE = 0;
if (Q == ‘E’) {
T = 1;
QM = 2;
if (Q == ‘H’) {
FTH = (FTH + 1) % 3;
T = 3;
if (N > 999) {
N = 999;
546
}
if (Q == ‘I’) {
if (T != 1) {
_setvideomode(_TEXTC80);
_settextcolor(15);
_setbkcolor(1L);
_clearscreen(_GCLEARSCREEN);
printf("Code? ");
I = 0;
CODE[0] = 0;
do {
CODE[I] = getche();
if (CODE[I] == 27) {
I = 0;
CODE[I] = 13;
CODE[I - 1] = 0;
if (CODE[0] == 0) {
Q = ‘ ‘;
547
_clearscreen(_GCLEARSCREEN);}
else {
T = 1;
QM = 1;
fun4700();
if (Q == ‘N’) {
if (Q == ‘P’) {
PJT = (PJT + 1) % 5;
T = 3;
if (Q == ‘R’) {
TRD = (TRD + 1) % 7;
T = 3;
if (N > 999) {
N = 999;
548
}
if (Q == ‘S’) {
SND = (SND + 1) % 2;
T = 3;
if (Q == ‘V’) {
SAV = (SAV + 1) % 5;
FAV[0] = 87 + SAV % 4;
T = 3;
if (Q == ‘X’) T = 0;
if ((int)N == 1000) {
549
}
DX = XNEW - XS[J];
DY = YNEW - YS[J];
DZ = ZNEW - ZS[J];
DW = WNEW - WS[J];
D2 = DX * DX + DY * DY + DZ * DZ + DW * DW;
N1 = N1 + 1;
printf("%5.2f", F);
TH = TT * (XMAX - XP);
PH = PT * (YMAX - YP);
550
}
_setvideomode(_TEXTC80);
_settextcolor(15);
_setbkcolor(1L);
regs.h.ah = 1;
regs.h.ch = 1;
regs.h.cl = 0;
_clearscreen(_GCLEARSCREEN);
while (Q == 0 || strchr("AEIX", Q) == 0) {
_settextposition(1, 27);
printf("\n");
printf("\n");
if (ODE > 1) {
551
else {
if (FTH == 0) printf("projection\n");
if (PJT == 1) printf("spherical\n");
if (TRD == 0) printf("projection\n");
552
if (TRD == 5) printf("stereogram\n");
if (SND == 0) printf("off\n");
if (D > 6) {
D = 4;
else {
553
if (D > 4) {
D = D - 2;
ODE = 1;
else ODE = 0;
O = 2 + (CODE[0] - 65) % 4;
M = 1;
if (strlen(CODE) != M + 1 && QM == 1) {
F1 = fopen("SA.DIC", "a");
fclose(F1);
554
fun5000() /* Plot point on screen */
C4 = WH;
if (D > 3) {
return(0);
if (TRD == 0) {
_setcolor(C4);
if (TRD == 1) {
_setcolor(C4);
else {
555
if (C == COLR[2]) {
_setcolor(COLR[3]);
else {
if (C != COLR[3]) {
_setcolor(COLR[2]);
XP = XP - XZ * (Z - ZMIN);
YP = YP - YZ * (Z - ZMIN);
_setcolor(0);
if (TRD == 2) {
_setcolor(C4);}
else {
_setcolor(C);
556
}
if (TRD == 3) {
if (TRD == 4) {
XRT = XP + XZ * (Z - ZA);
if (C == WH) {
_setcolor(RD);
if (C == CY) {
_setcolor(BK);
XLT = XP - XZ * (Z - ZA);
if (C == WH) {
_setcolor(CY);
557
}
if (C == RD) {
_setcolor(BK);
if (TRD == 5) {
_setcolor(C4);
_setcolor(C4);
if (TRD == 6) {
_setcolor(C4);
558
fun5400() /* Plot background grid */
_setcolor(0);
COLR[0] = 0;
COLR[1] = 8;
COLR[2] = 7;
COLR[3] = 15;
559
if (TRD == 3 || (D > 3 && FTH == 2 && TRD != 1)) {
WH = 15;
BK = 8;
RD = 12;
CY = 11;
if (Q == ‘ ‘) {
T = 2;
NE = NE + 1;
_clearscreen(_GCLEARSCREEN);
if (Q == 13) {
T = 2;
NE = NE + 1;
_clearscreen(_GCLEARSCREEN);
if (Q == 27) {
560
_clearscreen(_GCLEARSCREEN);
Q = ‘ ‘;
QM = 0;
else {
if (strchr("CHNPRVS", Q) == 0) Q = 0;
F2 = fopen("FAVORITE.DIC", "a");
fprintf(F2, CODE);
fclose(F2);
_settextposition(11, 9);
printf("Evaluation complete\n");
_settextposition(12, 8);
561
F2 = fopen("SATEMP.DIC", "w");
while (feof(F1) == 0) {
fcloseall();
remove("SA.DIC");
rename("SATEMP.DIC", "SA.DIC");
if (ODE == 2) {
M = 10;
if (ODE == 3) {
M = 14;
562
XNEW = A[1] + A[2] * X + A[3] * Y + ((int)(A[4] * X + .5) & (int)(A[5] * Y
+ .5)) + ((int)(A[6] * X + .5) | (int)(A[7] * Y + .5));
if (ODE == 4) {
M = 14;
if (ODE == 5) {
M = 18;
if (ODE == 6) {
M = 6;
if (N < 2) {
SINAL = sin(AL);
COSAL = cos(AL);
563
XNEW = 10 * A[1] + DUM * COSAL + Y * SINAL;
if (ODE == 7) {
M = 9;
PH = PT * (YMAX - YP);
TH = TT * (XMAX - XP);
564
fun6900() /* Project onto a torus (unity aspect ratio) */
TH = TT * (XMAX - XP);
PH = 2 * PT * (YMAX - YP);
if ((int)N == 1000) {
fclose(F3);
F3 = fopen(FAV, "w");
565
Appendix E
Summary of Equations
This appendix contains a complete list, in all its gory detail, of the equations solved
by the program to produce the attractors in this book. For simplicity, the subscripts
n+1 and n have been omitted on the variables X, Y, Z, and W. If it serves no other
purpose, this appendix vividly illustrates the power of programming languages in
expressing and evaluating lengthy formulas! It is worth emphasizing that the
attractors that come from simple equations are every bit as interesting and
beautiful as those that come from complicated equations.
Case A: D = 1, O = 2, M = 3
X = a1 + a2X + a3X2
Case B: D = 1, O = 3, M = 4
X = a1 + a2X + a3X2 + a4X3
Case C: D = 1, O = 4, M = 5
X = a1 + a2X + a3X2 + a4X3 + a5X4
Case D: D = 1, O = 5, M = 6
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X5
Case E: D = 2, O = 2, M = 12
X = a1 + a2X + a3X2 + a4XY + a5Y + a6Y2
Case F: D = 2, O = 3, M = 20
X = a1 + a2X + a3X2 + a4X3 + a5X2Y + a6XY + a7XY2 + a8Y + a9Y2 + a10Y3
Y = a11 + a12X + a13X2 + a14X3 + a15X2Y + a16XY + a17XY2 + a18Y + a19Y2 + a20Y3
566
Case G: D = 2, O = 4, M = 30
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X3Y + a7X2Y + a8X2Y2 + a9XY + a10XY2 + a11XY3 +
a12Y + a13Y2 + a14Y3 + a15Y4
Y = a16 + a17X + a18X2 + a19X3 + a20X4 + a21X3Y + a22X2Y + a23X2Y2 + a24XY + a25XY2 + a26XY3
+ a27Y + a28Y2 + a29Y3 + a30Y4
Case H: D = 2, O = 5, M = 42
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X5 + a7X4Y + a8X3Y + a9X3Y2 + a10X2Y + a11X2Y2 +
a12X2Y3 + a13XY + a14XY2 + a15XY3 + a16XY4 + a17Y + a18Y2 + a19Y3 + a20Y4 + a21Y5
Y = a22 + a23X + a24X2 + a25X3 + a26X4 + a27X5 + a28X4Y + a29X3Y + a30X3Y2 + a31X2Y + a32X2Y2
+ a33X2Y3 + a34XY + a35XY2 + a36XY3 + a37XY4 + a38Y + a39Y2 + a40Y3 + a41Y4 + a42Y5
Case I: D = 3, O = 2, M = 30
X = a1 + a2X + a3X2 + a4XY + a5XZ + a6Y + a7Y2 + a8YZ + a9Z + a10Z2
Y = a11 + a12X + a13X2 + a14XY + a15XZ + a16Y + a17Y2 + a18YZ + a19Z + a20Z2
Z = a21 + a22X + a23X2 + a24XY + a25XZ + a26Y + a27Y2 + a28YZ + a29Z + a30Z2
Case J: D = 3, O = 3, M = 60
X = a1 + a2X + a3X2 + a4X3 + a5X2Y + a6X2Z + a7XY + a8XY2 + a9XYZ + a10XZ + a11XZ2 +
a12Y + a13Y2 + a14Y3 + a15Y2Z + a16YZ + a17YZ2 + a18Z + a19Z2 + a20Z3
Y = a21 + a22X + a23X2 + a24X3 + a25X2Y + a26X2Z + a27XY + a28XY2 + a29XYZ + a30XZ + a31XZ2
+ a32Y + a33Y2 + a34Y3 + a35Y2Z + a36YZ + a37YZ2 + a38Z + a39Z2 + a40Z3
Z = a41 + a42X + a43X2 + a44X3 + a45X2Y + a46X2Z + a47XY + a48XY2 + a49XYZ + a50XZ + a51XZ2
+ a52Y + a53Y2 + a54Y3 + a55Y2Z + a56YZ + a57YZ2 + a58Z + a59Z2 + a60Z3
Case K: D = 3, O = 4, M = 105
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X3Y + a7X3Z + a8X2Y + a9X2Y2 + a10X2YZ + a11X2Z
+ a12X2Z2 + a13XY + a14XY2 + a15XY3 + a16XY2Z + a17XYZ + a18XYZ2 + a19XZ + a20XZ2 + a21XZ3
+ a22Y + a23Y2 + a24Y3 + a25Y4 + a26Y3Z + a27Y2Z + a28Y2Z2 + a29YZ + a30YZ2 + a31YZ3 + a32Z
+ a33Z2 + a34Z3 + a35Z4
567
Y = a36 + a37X + a38X2 + a39X3 + a40X4 + a41X3Y + a42X3Z + a43X2Y + a44X2Y2 + a45X2YZ +
a46X2Z + a47X2Z2 + a48XY + a49XY2 + a50XY3 + a51XY2Z + a52XYZ + a53XYZ2 + a54XZ + a55XZ2
+ a56XZ3 + a57Y + a58Y2 + a59Y3 + a60Y4 + a61Y3Z + a62Y2Z + a63Y2Z2 + a64YZ + a65YZ2 + a66YZ3
+ a67Z + a68Z2 + a69Z3 + a70Z4
Z = a71 + a72X + a73X2 + a74X3 + a75X4 + a76X3Y + a77X3Z + a78X2Y + a79X2Y2 + a80X2YZ +
a81X2Z + a82X2Z2 + a83XY + a84XY2 + a85XY3 + a86XY2Z + a87XYZ + a88XYZ2 + a89XZ + a90XZ2
+ a91XZ3 + a92Y + a93Y2 + a94Y3 + a95Y4 + a96Y3Z + a97Y2Z + a98Y2Z2 + a99YZ + a100YZ2 +
a101YZ3 + a102Z + a103Z2 + a104Z3 + a105Z4
Case L: D = 3, O = 5, M = 168
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X5 + a7X4Y + a8X4Z + a9X3Y + a10X3Y2 + a11X3YZ +
a12X3Z + a13X3Z2 + a14X2Y + a15X2Y2 + a16X2Y3 + a17X2Y2Z + a18X2YZ + a19X2YZ2 + a20X2Z +
a21X2Z2 + a22X2Z3 + a23XY + a24XY2 + a25XY3 + a26XY4 + a27XY3Z + a28XY2Z + a29XY2Z2 + a30XYZ
+ a31XYZ2 + a32XYZ3 + a33XZ + a34XZ2 + a35XZ3 + a36XZ4 + a37Y + a38Y2 + a39Y3 + a40Y4 +
a41Y5 + a42Y4Z + a43Y3Z + a44Y3Z2 + a45Y2Z + a46Y2Z2 + a47Y2Z3 + a48YZ + a49YZ2 + a50YZ3
+ a51YZ4 + a52Z + a53Z2 + a54Z3 + a55Z4 + a56Z5
Y = a57 + a58X + a59X2 + a60X3 + a61X4 + a62X5 + a63X4Y + a64X4Z + a65X3Y + a66X3Y2 + a67X3YZ
+ a68X3Z + a69X3Z2 + a70X2Y + a71X2Y2 + a72X2Y3 + a73X2Y2Z + a74X2YZ + a75X2YZ2 + a76X2Z
+ a77X2Z2 + a78X2Z3 + a79XY + a80XY2 + a81XY3 + a82XY4 + a83XY3Z + a84XY2Z + a85XY2Z2 +
a86XYZ + a87XYZ2 + a88XYZ3 + a89XZ + a90XZ2 + a91XZ3 + a92XZ4 + a93Y + a94Y2 + a95Y3 + a96Y4
+ a97Y5 + a98Y4Z + a99Y3Z + a100Y3Z2 + a101Y2Z + a102Y2Z2 + a103Y2Z3 + a104YZ + a105YZ2 +
a106YZ3 + a107YZ4 + a108Z + a109Z2 + a110Z3 + a111Z4 + a112Z5
Z = a113 + a114X + a115X2 + a116X3 + a117X4 + a118X5 + a119X4Y + a120X4Z + a121X3Y + a122X3Y2
+ a123X3YZ + a124X3Z + a125X3Z2 + a126X2Y + a127X2Y2 + a128X2Y3 + a129X2Y2Z + a130X2YZ + a131X2YZ2
+ a132X2Z + a133X2Z2 + a134X2Z3 + a135XY + a136XY2 + a137XY3 + a138XY4 + a139XY3Z + a140XY2Z
+ a141XY2Z2 + a142XYZ + a143XYZ2 + a144XYZ3 + a145XZ + a146XZ2 + a147XZ3 + a148XZ4 + a149Y
+ a150Y2 + a151Y3 + a152Y4 + a153Y5 + a154Y4Z + a155Y3Z + a156Y3Z2 + a157Y2Z + a158Y2Z2 + a159Y2Z3
+ a160YZ + a161YZ2 + a162YZ3 + a163YZ4 + a164Z + a165Z2 + a166Z3 + a167Z4 + a168Z5
Case M: D = 4, O = 2, M = 60
X = a1 + a2X + a3X2 + a4XY + a5XZ + a6XW + a7Y + a8Y2 + a9YZ + a10YW + a11Z + a12Z2 +
a13ZW + a14W + a15W2
Y = a16 + a17X + a18X2 + a19XY + a20XZ + a21XW + a22Y + a23Y2 + a24YZ + a25YW + a26Z +
a27Z2 + a28ZW + a29W + a30W2
568
Z = a31 + a32X + a33X2 + a34XY + a35XZ + a36XW + a37Y + a38Y2 + a39YZ + a40YW + a41Z +
a42Z2 + a43ZW + a44W + a45W2
W = a46 + a47X + a48X2 + a49XY + a50XZ + a51XW + a52Y + a53Y2 + a54YZ + a55YW + a56Z +
a57Z2 + a58ZW + a59W + a60W2
Case N: D = 4, O = 3, M = 140
X = a1 + a2X + a3X2 + a4X3 + a5X2Y + a6X2Z + a7X2W + a8XY + a9XY2 + a10XYZ + a11XYW +
a12XZ + a13XZ2 + a14XZW + a15XW + a16XW2 + a17Y + a18Y2 + a19Y3 + a20Y2Z + a21Y2W + a22YZ
+ a23YZ2 + a24YZW + a25YW + a26YW2 + a27Z + a28Z2 + a29Z3 + a30Z2W + a31ZW + a32ZW2 + a33W
+ a34W2 + a35W3
Y = a36 + a37X + a38X2 + a39X3 + a40X2Y + a41X2Z + a42X2W + a43XY + a44XY2 + a45XYZ + a46XYW
+ a47XZ + a48XZ2 + a49XZW + a50XW + a51XW2 + a52Y + a53Y2 + a54Y3 + a55Y2Z + a56Y2W + a57YZ
+ a58YZ2 + a59YZW + a60YW + a61YW2 + a62Z + a63Z2 + a64Z3 + a65Z2W + a66ZW + a67ZW2 + a68W
+ a69W2 + a70W3
Z = a71 + a72X + a73X2 + a74X3 + a75X2Y + a76X2Z + a77X2W + a78XY + a79XY2 + a80XYZ + a81XYW
+ a82XZ + a83XZ2 + a84XZW + a85XW + a86XW2 + a87Y + a88Y2 + a89Y3 + a90Y2Z + a91Y2W + a92YZ
+ a93YZ2 + a94YZW + a95YW + a96YW2 + a97Z + a98Z2 + a99Z3 + a100Z2W + a101ZW + a102ZW2 +
a103W + a104W2 + a105W3
W = a106 + a107X + a108X2 + a109X3 + a110X2Y + a111X2Z + a112X2W + a113XY + a114XY2 + a115XYZ
+ a116XYW + a117XZ + a118XZ2 + a119XZW + a120XW + a121XW2 + a122Y + a123Y2 + a124Y3 + a125Y2Z
+ a126Y2W + a127YZ + a128YZ2 + a129YZW + a130YW + a131YW2 + a132Z + a133Z2 + a134Z3 + a135Z2W
+ a136ZW + a137ZW2 + a138W + a139W2 + a140W3
Case O: D = 4, O = 4, M = 280
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X3Y + a7X3Z + a8X3W + a9X2Y + a10X2Y2 + a11X2YZ
+ a12X2YW + a13X2Z + a14X2Z2 + a15X2ZW + a16X2W + a17X2W2 + a18XY + a19XY2 + a20XY3 + a21XY2Z
+ a22XY2W + a23XYZ + a24XYZ2 + a25XYZW + a26XYW + a27XYW2 + a28XZ + a29XZ2 + a30XZ3 + a31XZ2W
+ a32XZW + a33XZW2 + a34XW + a35XW2 + a36XW3 + a37Y + a38Y2 + a39Y3 + a40Y4 + a41Y3Z + a42Y3W
+ a43Y2Z + a44Y2Z2 + a45Y2ZW + a46Y2W + a47Y2W2 + a48YZ + a49YZ2 + a50YZ3 + a51YZ2W + a52YZW
+ a53YZW2 + a54YW + a55YW2 + a56YW3 + a57Z + a58Z2 + a59Z3 + a60Z4 + a61Z3W + a62Z2W + a63Z2W2
+ a64ZW + a65ZW2 + a66ZW3 + a67W + a68W2 + a69W3 + a70W4
Y = a71 + a72X + a73X2 + a74X3 + a75X4 + a76X3Y + a77X3Z + a78X3W + a79X2Y + a80X2Y2 + a81X2YZ
+ a82X2YW + a83X2Z + a84X2Z2 + a85X2ZW + a86X2W + a87X2W2 + a88XY + a89XY2 + a90XY3 + a91XY2Z
+ a92XY2W + a93XYZ + a94XYZ2 + a95XYZW + a96XYW + a97XYW2 + a98XZ + a99XZ2 + a100XZ3 +
a101XZ2W + a102XZW + a103XZW2 + a104XW + a105XW2 + a106XW3 + a107Y + a108Y2 + a109Y3 + a110Y4
+ a111Y3Z + a112Y3W + a113Y2Z + a114Y2Z2 + a115Y2ZW + a116Y2W + a117Y2W2 + a118YZ + a119YZ2
569
+ a120YZ3 + a121YZ2W + a122YZW + a123YZW2 + a124YW + a125YW2 + a126YW3 + a127Z + a128Z2 +
a129Z3 + a130Z4 + a131Z3W + a132Z2W + a133Z2W2 + a134ZW + a135ZW2 + a136ZW3 + a137W + a138W2
+ a139W3 + a140W4
Z = a141 + a142X + a143X2 + a144X3 + a145X4 + a146X3Y + a147X3Z + a148X3W + a149X2Y + a150X2Y2
+ a151X2YZ + a152X2YW + a153X2Z + a154X2Z2 + a155X2ZW + a156X2W + a157X2W2 + a158XY + a159XY2
+ a160XY3 + a161XY2Z + a162XY2W + a163XYZ + a164XYZ2 + a165XYZW + a166XYW + a167XYW2 + a168XZ
+ a169XZ2 + a170XZ3 + a171XZ2W + a172XZW + a173XZW2 + a174XW + a175XW2 + a176XW3 + a177Y
+ a178Y2 + a179Y3 + a180Y4 + a181Y3Z + a182Y3W + a183Y2Z + a184Y2Z2 + a185Y2ZW + a186Y2W +
a187Y2W2 + a188YZ + a189YZ2 + a190YZ3 + a191YZ2W + a192YZW + a193YZW2 + a194YW + a195YW2 +
a196YW3 + a197Z + a198Z2 + a199Z3 + a200Z4 + a201Z3W + a202Z2W + a203Z2W2 + a204ZW + a205ZW2
+ a206ZW3 + a207W + a208W2 + a209W3 + a210W4
W = a211 + a212X + a213X2 + a214X3 + a215X4 + a216X3Y + a217X3Z + a218X3W + a219X2Y + a220X2Y2
+ a221X2YZ + a222X2YW + a223X2Z + a224X2Z2 + a225X2ZW + a226X2W + a227X2W2 + a228XY + a229XY2
+ a230XY3 + a231XY2Z + a232XY2W + a233XYZ + a234XYZ2 + a235XYZW + a236XYW + a237XYW2 + a238XZ
+ a239XZ2 + a240XZ3 + a241XZ2W + a242XZW + a243XZW2 + a244XW + a245XW2 + a246XW3 + a247Y
+ a248Y2 + a249Y3 + a250Y4 + a251Y3Z + a252Y3W + a253Y2Z + a254Y2Z2 + a255Y2ZW + a256Y2W +
a257Y2W2 + a258YZ + a259YZ2 + a260YZ3 + a261YZ2W + a262YZW + a263YZW2 + a264YW + a265YW2 +
a266YW3 + a267Z + a268Z2 + a269Z3 + a270Z4 + a271Z3W + a272Z2W + a273Z2W2 + a274ZW + a275ZW2
+ a276ZW3 + a277W + a278W2 + a279W3 + a280W4
Case P: D = 4, O = 5, M = 504
X = a1 + a2X + a3X2 + a4X3 + a5X4 + a6X5 + a7X4Y + a8X4Z + a9X4W + a10X3Y + a11X3Y2 +
a12X3YZ + a13X3YW + a14X3Z + a15X3Z2 + a16X3ZW + a17X3W + a18X3W2 + a19X2Y + a20X2Y2 + a21X2Y3
+ a22X2Y2Z + a23X2Y2W + a24X2YZ + a25X2YZ2 + a26X2YZW + a27X2YW + a28X2YW2 + a29X2Z + a30X2Z2
+ a31X2Z3 + a32X2Z2W + a33X2ZW + a34X2ZW2 + a35X2W + a36X2W2 + a37X2W3 + a38XY + a39XY2 +
a40XY3 + a41XY4 + a42XY3Z + a43XY3W + a44XY2Z + a45XY2Z2 + a46XY2ZW + a47XY2W + a48XY2W2
+ a49XYZ + a50XYZ2 + a51XYZ3 + a52XYZ2W + a53XYZW + a54XYZW2 + a55XYW + a56XYW2 + a57XYW3
+ a58XZ + a59XZ2 + a60XZ3 + a61XZ4 + a62XZ3W + a63XZ2W + a64XZ2W2 + a65XZW + a66XZW2 +
a67XZW3 + a68XW + a69XW2 + a70XW3 + a71XW4 + a72Y + a73Y2 + a74Y3 + a75Y4 + a76Y5 + a77Y4Z
+ a78Y4W + a79Y3Z + a80Y3Z2 + a81Y3ZW + a82Y3W + a83Y3W2 + a84Y2Z + a85Y2Z2 + a86Y2Z3 + a87Y2Z2W
+ a88Y2ZW + a89Y2ZW2 + a90Y2W + a91Y2W2 + a92Y2W3 + a93YZ + a94YZ2 + a95YZ3 + a96YZ4 + a97YZ3W
+ a98YZ2W + a99YZ2W2 + a100YZW + a101YZW2 + a102YZW3 + a103YW + a104YW2 + a105YW3 + a106YW4
+ a107Z + a108Z2 + a109Z3 + a110Z4 + a111Z5 + a112Z4W + a113Z3W + a114Z3W2 + a115Z2W + a116Z2W2
+ a117Z2W3 + a118ZW + a119ZW2 + a120ZW3 + a121ZW4 + a122W + a123W2 + a124W3 + a125W4 + a126W5
Y = a127 + a128X + a129X2 + a130X3 + a131X4 + a132X5 + a133X4Y + a134X4Z + a135X4W + a136X3Y
+ a137X3Y2 + a138X3YZ + a139X3YW + a140X3Z + a141X3Z2 + a142X3ZW + a143X3W + a144X3W2 + a145X2Y
+ a146X2Y2 + a147X2Y3 + a148X2Y2Z + a149X2Y2W + a150X2YZ + a151X2YZ2 + a152X2YZW + a153X2YW
+ a154X2YW2 + a155X2Z + a156X2Z2 + a157X2Z3 + a158X2Z2W + a159X2ZW + a160X2ZW2 + a161X2W +
a162X2W2 + a163X2W3 + a164XY + a165XY2 + a166XY3 + a167XY4 + a168XY3Z + a169XY3W + a170XY2Z
+ a171XY2Z2 + a172XY2ZW + a173XY2W + a174XY2W2 + a175XYZ + a176XYZ2 + a177XYZ3 + a178XYZ2W
+ a179XYZW + a180XYZW2 + a181XYW + a182XYW2 + a183XYW3 + a184XZ + a185XZ2 + a186XZ3 + a187XZ4
+ a188XZ3W + a189XZ2W + a190XZ2W2 + a191XZW + a192XZW2 + a193XZW3 + a194XW + a195XW2 + a196XW3
570
+ a197XW4 + a198Y + a199Y2 + a200Y3 + a201Y4 + a202Y5 + a203Y4Z + a204Y4W + a205Y3Z + a206Y3Z2
+ a207Y3ZW + a208Y3W + a209Y3W2 + a210Y2Z + a211Y2Z2 + a212Y2Z3 + a213Y2Z2W + a214Y2ZW + a215Y2ZW2
+ a216Y2W + a217Y2W2 + a218Y2W3 + a219YZ + a220YZ2 + a221YZ3 + a222YZ4 + a223YZ3W + a224YZ2W
+ a225YZ2W2 + a226YZW + a227YZW2 + a228YZW3 + a229YW + a230YW2 + a231YW3 + a232YW4 + a233Z
+ a234Z2 + a235Z3 + a236Z4 + a237Z5 + a238Z4W + a239Z3W + a240Z3W2 + a241Z2W + a242Z2W2 + a243Z2W3
+ a244ZW + a245ZW2 + a246ZW3 + a247ZW4 + a248W + a249W2 + a250W3 + a251W4 + a252W5
Z = a253 + a254X + a255X2 + a256X3 + a257X4 + a258X5 + a259X4Y + a260X4Z + a261X4W + a262X3Y
+ a263X3Y2 + a264X3YZ + a265X3YW + a266X3Z + a267X3Z2 + a268X3ZW + a269X3W + a270X3W2 + a271X2Y
+ a272X2Y2 + a273X2Y3 + a274X2Y2Z + a275X2Y2W + a276X2YZ + a277X2YZ2 + a278X2YZW + a279X2YW
+ a280X2YW2 + a281X2Z + a282X2Z2 + a283X2Z3 + a284X2Z2W + a285X2ZW + a286X2ZW2 + a287X2W +
a288X2W2 + a289X2W3 + a290XY + a291XY2 + a292XY3 + a293XY4 + a294XY3Z + a295XY3W + a296XY2Z
+ a297XY2Z2 + a298XY2ZW + a299XY2W + a300XY2W2 + a301XYZ + a302XYZ2 + a303XYZ3 + a304XYZ2W
+ a305XYZW + a305XYZW2 + a307XYW + a308XYW2 + a309XYW3 + a310XZ + a311XZ2 + a312XZ3 + a313XZ4
+ a314XZ3W + a315XZ2W + a316XZ2W2 + a317XZW + a318XZW2 + a319XZW3 + a320XW + a321XW2 + a322XW3
+ a323XW4 + a324Y + a325Y2 + a326Y3 + a327Y4 + a328Y5 + a329Y4Z + a330Y4W + a331Y3Z + a332Y3Z2
+ a333Y3ZW + a334Y3W + a335Y3W2 + a336Y2Z + a337Y2Z2 + a338Y2Z3 + a339Y2Z2W + a340Y2ZW + a341Y2ZW2
+ a342Y2W + a343Y2W2 + a344Y2W3 + a345YZ + a346YZ2 + a347YZ3 + a348YZ4 + a349YZ3W + a350YZ2W
+ a351YZ2W2 + a352YZW + a353YZW2 + a354YZW3 + a355YW + a356YW2 + a357YW3 + a358YW4 + a359Z
+ a360Z2 + a361Z3 + a362Z4 + a363Z5 + a364Z4W + a365Z3W + a366Z3W2 + a367Z2W + a368Z2W2 + a369Z2W3
+ a370ZW + a371ZW2 + a372ZW3 + a373ZW4 + a374W + a375W2 + a376W3 + a377W4 + a378W5
W = a379 + a380X + a381X2 + a382X3 + a383X4 + a384X5 + a385X4Y + a386X4Z + a387X4W + a388X3Y
+ a389X3Y2 + a390X3YZ + a391X3YW + a392X3Z + a393X3Z2 + a394X3ZW + a395X3W + a396X3W2 + a397X2Y
+ a398X2Y2 + a399X2Y3 + a400X2Y2Z + a401X2Y2W + a402X2YZ + a403X2YZ2 + a404X2YZW + a405X2YW
+ a406X2YW2 + a407X2Z + a408X2Z2 + a409X2Z3 + a410X2Z2W + a411X2ZW + a412X2ZW2 + a413X2W +
a414X2W2 + a415X2W3 + a416XY + a417XY2 + a418XY3 + a419XY4 + a420XY3Z + a421XY3W + a422XY2Z
+ a423XY2Z2 + a424XY2ZW + a425XY2W + a426XY2W2 + a427XYZ + a428XYZ2 + a429XYZ3 + a430XYZ2W
+ a431XYZW + a432XYZW2 + a433XYW + a434XYW2 + a435XYW3 + a436XZ + a437XZ2 + a438XZ3 + a439XZ4
+ a440XZ3W + a441XZ2W + a442XZ2W2 + a443XZW + a444XZW2 + a445XZW3 + a446XW + a447XW2 + a448XW3
+ a449XW4 + a450Y + a451Y2 + a452Y3 + a453Y4 + a454Y5 + a455Y4Z + a456Y4W + a457Y3Z + a458Y3Z2
+ a459Y3ZW + a460Y3W + a461Y3W2 + a462Y2Z + a463Y2Z2 + a464Y2Z3 + a465Y2Z2W + a466Y2ZW + a467Y2ZW2
+ a468Y2W + a469Y2W2 + a470Y2W3 + a471YZ + a472YZ2 + a473YZ3 + a474YZ4 + a475YZ3W + a476YZ2W
+ a477YZ2W2 + a478YZW + a479YZW2 + a480YZW3 + a481YW + a482YW2 + a483YW3 + a484YW4 + a485Z
+ a486Z2 + a487Z3 + a488Z4 + a489Z5 + a490Z4W + a491Z3W + a492Z3W2 + a493Z2W + a494Z2W2 + a495Z2W3
+ a496ZW + a497ZW2 + a498ZW3 + a499ZW4 + a500W + a501W2 + a502W3 + a503W4 + a504W5
Case Q: D = 3, O = 2, M = 30
X = X + 0.1(same as for case I)
571
Case R: D = 3, O = 3, M = 60
X = X + 0.1(same as for case J)
Case S: D = 3, O = 4, M = 105
X = X + 0.1(same as for case K)
Case T: D = 3, O = 5, M = 168
X = X + 0.1(same as for case L)
Case U: D = 4, O = 2, M = 60
X = X + 0.1(same as for case M)
Case V: D = 4, O = 3, M = 140
572
X = X + 0.1(same as for case N)
Case W: D = 4, O = 4, M = 280
X = X + 0.1(same as for case O)
Case X: D = 4, O = 5, M = 504
X = X + 0.1(same as for case P)
Case Y: D = 4, M = 10
X = a1 + a2X + a3Y + a4|X| + a5|Y|
Z = X2 + Y2
573
W = (N - 1000) / (NMAX - 1000)
Case Z: D = 4, M = 14
X = a1 + a2X + a3Y + a4X AND a5Y + a6X OR a7Y
Z = X2 + Y2
Case [: D = 4, M = 14
X = a1 + a2X + a3Y + a4|X|a5 + a6|Y|a7
Z = X2 + Y2
Case \: D = 4, M = 18
X = a1 + a2X + a3Y + a4sin(a5X + a6) + a7sin(a8Y + a9)
Z = X2 + Y2
Case ]: D = 4, M = 6
X = 10a1 + [X + a2sin(a3Y+a4)]cos[2π/(13+10a6)] + Y sin[2π/(13+10a6)]
574
Y = 10a5 - [X + a2sin(a3Y + a4)]sin[2π/(13+10a6)] + Y cos[2π/(13+10a6)]
Z = X2 + Y2
Case ^: D = 4, M = 9
X = X + 0.1a1Y
575
Appendix F
Dictionaries of Strange Attractors
Included in this appendix are alphabetical listings of codes for those attractors
shown in this book whose figures lack the full codes, a selection of additional
interesting cases, and a list of special cases of historical or mathematical signifi-
cance. The numbers at the end of each code are the fractal dimension (F) and the
Lyapunov exponent (L), respectively.
The cases below represent the ones shown in the book. You should be able
to identify them by the first few characters of the code. The disk included with the
book contains the file BOOKFIGS.DIC, which includes the codes for all the cases
shown in the book. You can enter these cases into the program manually using the
I command, or copy the file BOOKFIGS.DIC on the accompanying disk to SA.DIC
and view them automatically using the E command. Note that the contents of any
existing SA.DIC file will be lost when you do this unless you use the DOS command
COPY SA.DIC + BOOKFIGS.DIC SA.DIC to append the new cases to the end of the
SA.DIC file.
BOOKFIGS.DIC. Codes for attractors in this book whose full codes were not given
KIRCGTGYRFOSXCKFOIRNXFLPDLXPISDSOUTOITXGKWSQJGIMOLT
WJUPPCELGSLTRERRKTKJTRUCJQVMNREJTAYYAWJEJISIXDAEUOOIKMV 1.79 0.01
KJJUPXHPMACQRSPYGHTFLGCYTHUSKVNUTTYMMGIQFSKUJYJJHGCQ
YFHLVSCCXAEVHDUNJVNNBUWQRXJEPVLJLDAOBLIRTKJDDDIKQUCSVE 2.33 0.07
KKGKUQRWVRSUTWDGTQHMAYUXCJRDWBPHICJHHSTLBDXQOFFPMNUATX
RCYBMBSWHGBQPGRSOMRTLCYGRLQLTVQJIIVDLTXJEJOHAWUBVRNY 1.97 0.03
KKLXFIMKRYNPNSNVITIBHRMPYHHCNHWLUPKCQQTYNJAKGWVWLMBYFEP
MRUHRARLGHHTLGGYQHEQDHOQTFYRGVUHDCQGQHXYMNFGVGENSJI 1.79 0.02
KKSLVGUQTYKUFHNSDSWCSITGEFKVCTWKSIENMBOLBQQTGOYPHKGPFCYU
UHIOHXVMEFAMMCPRNDJRBQRQILCLELNWEMCYLUHIKCIFERQDBM 1.49 0.01
576
KLGFLNWTWETVNLHHPTLPMMDAJKBJBCCHTRIBKGUEDDDDITBJVIHB
UXIYGTSMGYXTQFASOOTOCDDSYAXGULLLOQCPOXSYVPXBOVOUHRNPQU 1.99 0.03
KLLRVFAKXNTCPWXWENDJVNGQAQEXTSKIDVOYMFMKNFWOFILMGRX
DMKJATLBGFUBOSWJHUDOPYLYWXQSORNXGNLNSWBEESQRTHUKAHBGKSO 1.24 0.04
KLRLPKPHLPXFQRGNCJHUTVSFPFTSIQMIFUSUTCOGFSMQIDJECRT
ATYGZQKDCRBBRTDXFWKHOBMHHIRHNLETJBWAPEUCNSERHFYDLLWNFUD 1.17 0.10
KNRRVWREMTOABPSKHMLDSDCISNDJQQUYKULFQILAWGNTHFSSYTUWH
YFRWHLUUSMCBARBCWHMGALNONSDKSXXBAPKVLXITVKFAFLIYXWBPS 1.25 0.06
KOCWVUCRHIBOOAKVSXHJOPGUQRBHRHNNOJPEMIJNYHVIGIOGPVBDQ
QNEASMCPJVHWGWFWTAKHYNTRBRJLCQTLMLIPJBTGHOWNGNOVOHOWQ 1.69 0.05
KPBMLWTCBCWATDWMVHDHWFKMDLJUERTMLBNNLKKRJAVHUTANQLULI
AYKQNXVBMHVGUEMWKAKECQJMETKFEQNVAVUXKQJRWBRRCSARKVMCT 2.40 0.06
KPGQHOXCGSSBMVWFQEKRLXEATUYYGEGIEIRKLJUYDJTNBRHWPCXGGU
VGFOWMSDXEDKXEJSHIHPPKQDZKMNJGMAFJLVLKWNKKLXPPVNKZEG 1.78 0.01
KQEDOFHXFPJEPRTQBLOOAVOOACBDTUTUPFDGMBVLGYDOFHYTORPWLEYL
NFTUEBOKBDXOPNWNNPKPCFAXEWRTDDLJXMVYHUPMMPPMWDEJDI 2.07 0.09
KQMPLCKLEWODOGMAWCIYBECAQLWEHASTRBPPOMOGEQKIVIEPRCWVEFSRHK
LQBVKCPPHWFVCVGJENSODIYBPYCLHVXOIQIODNHAWUUOFPCT 1.53 0.07
KVFLHQBHLNEGRWRHQKSDSHEIHKOGGUVTRHPIGUPLRHCWBSMKROEFXQMIR
IUYOLMRGUJLHMBNGUCTMOHQUEPPXETTQMNIOIJTTIAISQTBFC 2.08 0.13
KYECWCLFXSOYVGXRWWHJIAAJLNGWPELSLMMRUMTSGJISGDSKSNKTHNBCOG
HCYWLKXGLKBPOPNALOTJQNIMFOSOVGJEGQLILMTFUDYPWNSM 1.57 0.04
LLLRGRWWWLEAGRMETGIDGUKIFLPOPTJPEVSKTMAAWFPFLFTHGJBBFDAXTKKDTNFGALOAHSBYCBSGHKYYTKWP
MCGWDVYEVGBNVWYDJBRSADTVITQSMNIBADRXGKTSDKTAKFWGYOFHMSYYLKNXDMBKCLEWDHDWQVCVTFESSJUXY
1.74 0.06
LLOBPCENCHDFPDMGXGGHXYSNDRNQASITFDLIUXNOFJOMLHRBXQNSQYRPCRINOEBDSVFJAFNWQXMEURSBQKN
XCTOUCFRTVCQHUTYGJBHVKBFMDINQEMLFKHJNGBSRQBWLSLBWSIXOVFVPPYYHIWXDTWAMQDQGONQRNVWMTJGBI
1.31 0.11
LLQEHSEAVYRIDKPRPVPPGFHEQMBKCDXTAJQMWDKCAHPLBRJOFVRSLQPBPLSTXUVHUTXHVMBIKCYXFPXSOMPOEULORCI
HLXYHEFJOBDUTCPYPUCJWOUNDOWAMAMYVEMTHFDSDOFGKKDNNEFEFYUPEUFLRFWBCORHDRDOOGAUXK
1.49 0.05
LLVXALUXCGKASBOJHLPXGYTHEMVEPBGBFUGCPTAIEENWYURWOWJEGRYJFQETREOPQPXQEJDCBLTNTRORXWRCFGHYQK
UBRUAOOJAKHYAYNCCBBQUVJRBIFNWECRAJKXLREYDQUKFUITIMTEBRAUBTIQKABQSJNURTMJQCXADBS
2.01 0.18
LMLGOLTVJPFKQEMLHWIAQGEQNIQXFAQCVHEVKBCNVWNPYMNXKYIHOIDBMJGLOACXSKILBJAHYRPOJJLUYVSOVFUSPF
NMWOTPPXSTSKTOVNNGANGQHKVRBYVDGFCYWDYGJVYHBKLIBSMKBLENIPIPBNINHNOKPUIYQQGIHMXKY
577
2.07 0.04
LMLMBFUTNIMWITCVCNEFQTGGWNIPARFMGTDKXFMDYYFWVUKBQAFUMKGWXMASSQVIPQOELOBOUFRT
PQYAYQNCLYKCJQTSKLASOQTYTELDLKWQLQJPXLRNTVCVDYOTIFYUCEYAEROJSHYRTAVMLOXVJAHOYPUYJCQMIAKKMJNCQ
1.64 0.04
LNKNTCMVSUJKTQRDDTSHEAOXJHGWIWLOCFOWFRINXSKEDBXULGJFPOXYXLBCPEMRHIUADATTJBLEY
CKFVMPPLVNYVTWWKBNUOYGJPSPAHNTMFFWXFIMYORSYIKEKXYPKAWQAXROWMLDUSRMYQCAMPLLRTUQANETLKIQHBTVTU
2.13 0.16
LNMIWCGDRYTSUWCVPQSEWDLMLPPCCBUBOUWQFOOVRFYPJPEPIUCKHKMXINQPLAKRHBDPYDXCMGDGFXSVP
QNEFQXXJQKTCOQUBSDLVFIVWHCCKHYUDRVYHXATKBQBOMOYNPOUHDBIMCVJRXMEFLWHQCQHGRTHWSBCNWJUTHBDI
1.52 0.11
LOKEHGAFFWVBWLYJBUSENVJSYFTEIVNIQURQXLUTNGNKCPTHIMLDFEAULSHOKOSELHUMAQVBDTLLRINVH
CSQRWXJVPBTUCOWYIHIRUBFCRGOXFFMGKOPILDDMSBYSFJYFDUCXWFVSFFEKUMTKTEEMJGURWERXPJXIUOVFIDXL
1.58 0.04
LPJDQLOHBBPUULIYJLQKECLSLTRDDKLYDGSBCCBEEORIMIEBNVADGTCOEMHEMGDAMLTJVCBQUAFBGPVIKO
VHTIBUHVHQLKBMGVPKXRXNHMQRJWIKFMUDTHFTBGSPOIENGAPPKLMRNVTVTNFXQTFLLCPAANVBRFSIQQJONGSRY
1.59 0.10
LPSONLEWSHNHOGIYSDORACSUHFFRQORDFTEDARDCDUPFSCHCLEDWNEOFBNGVDAKIYNEBQQDHXHMMICDXT
PHLBFBCYOHGCLYOHQTEHXOTOBTJCFKMUNIJYRHTDLTRRWLNWJCPMGTDPWRRGUTUREPUNSSRPYRVINGECTLTCVTQR
2.02 0.16
LQGUEQNPDOHTJIIBLBAHSGBKUBOIOLLBKGLBXTECWGJKBMLXFDGNDVKFKLBRABDOATTFJNRNOLXSEOKFD
UXYHNQELGNGCGICJTNJIKGOLBNJORKRWNLKSWJTETVQFIRBCSYFRFWIPWCALLUQXKQRAQTTBJSQBHQWNIDVBFCXP
2.14 0.11
LTASNEPHQORGLRLCDNJMWHGYYSGHKLMAPHNPOMECDNTENEXDKCRPPWXTPMTBBXPSYSDKEFLBQEVDRNGJLY
FTOAUHVVUGUGONARNWMPCSNKDTYDVMGNUFGPJVOSXMCTFAYYGHXQAPUYIRVBDFRAOHWNALCSKAKPKOANEXNIOGP
1.46 0.06
NMCSOXFIDMFWROAJLWHYGGVMSKDJHUDLVTYJMPAXVIOQPLTQNLFLPEERFQTWQHSOYPJBI
VEMNBUEURXYUGHMQAIMVRLPNBBQENHGQUDJULMNNFXCKXRXFSGUCSIGLPUHLVXAXHIRTONKH 1.54
0.02
NMCYETOQNYDWARWHDVVLWOFIDJMTXNDKLKYHMKWOBIJFUFRJHVSSWNBMYELRRUIFJKLI
EIFMMHJGNUMKUPKFVTGBYQLRBNHIOJUQWQQWGIMATWYVFQQGPLVJLPOVSHQDRFNTCMFRKALNJ 1.46
0.02
NMGQIXCGPIRHOBACEPHYADFLIFPRLWKUAAOPMQHHBPGAJIXKNHOPRCCRGFXHBOWBEN
578
XLJLIMQBGEQLYPJREMTOGGSXVXPMADNFRJOVQIPXMRRVWLAIJVLPRQGHFOYEVOWELJOEGNVTSGW
1.70
0.02
NMHHSPLAXQSKPASBUMAEJFHNQGGFXFJASUJLMPGIPIHAUTXOHXCHOVDDKEKT
HDKLRIISWVEMLQWHVYSTIUWBVDGAAFRWKJHYRAEQTIWEDYMJHEWFHIOTUAKVDPLEUMBRODUBBFCDVNLUI
1.72 0.02
NMHYYGLNLOGHOXYIVNWQDVIMRNHORRRWWNKGMNYFMVVQRNRTMMTLOPCIQRNVNDUN
WMGFIBOMEFWGIKFSNPRRMCTCGRQCQJQECWDQVTOJEOMLIQJMHGJCJCTUSIVRCDNNSLRCEBUFRECXS
2.17
0.13
NMMQXNNYLNKRNTYJATXWDUVGPEQRRMQFOICLMDUEGKVRQKWMDXRNKWSIHDVBNGOXCP
FPDNPMFVBFKLOSDGWVJVXASWWRQDVCUCPEBAFXMFMGJALVQEKJXSGFIANFGBWSTLQKKFQTLQHIU
1.69
0.04
NMTICQDDQGFKKPIGLWJDRHOBVHFNIHNEQCYFMJMYASPNVWDECDEPTWEOTRWVQSOOWIPH
HFRMQCVGVEJDCSVFPVMEWMMGEOJQBWLJTWMLTLMNTMRILAQOQBAUYVHHJOVLDLVNYYJDFTENB 1.58
0.03
OKPMLHFLJLOIOOEUWKLFIADMWLEJEEKLCNOGRJKVJIMGQTRWUUILEPNLRJWOEQSMSKWN
LFKKSLLNALSTGWDDIIHMJIYJHIAVSNYUTDSOSJEPYDIWSMQXKBPNHOFPJRLPIISVADUTAHTPSJSSMMNKTEXHEJWRGGLIVOIHXIRKDJ
PMDKGGELUUSABCJJJDHBJOMSWXSFJLPNPMXFOWYKUKOHLUCYWYTNGJODDJKGGYAKFNEGKNDQKEYQR
AQWINBBMBQKTRNDBJBVJQEPXFMXTFOMDCO 1.55 0.05
OMMOXNKSAWSVADFBDLAERLYNSOBBXKHLXKHHVAUUERRTVOYMCUIBQFGJCNSOPJDCWSJBVUNMWSYJH
FAEMDENRIUJMAHYQTTPFIEBBAFEJGTNXLNLPYTBWGEFMPYXLDTPIQTJLOGSAWGTTMMFKDXHESYMDK
GCTDLNXDCVGXYJPBBFHAJGTKYHIWVHFCDHQIKQFQKPXIXRCLQTDMCRTBJMMGXQYRQWEKDWWCYSLFCUQUSFBC
BSMSXMXMQTFGVCNUVJAHCVJQDGMHYSOUUHTGGVPNIWT 1.95 0.02
OMOQRUJSLQIHLLAVGPORHXCLMMXSOOMGQWBEJLBCRJFIWLDFDNABPOUSJVXEIEXBYAHR
OFAMSPIJPMVPNJKDOSBUJKKQRGMMBNYVWQFEMEGSLQVFMUYUHLOQSPAPMIPOBHASJBTSTWEFKMKIJQTQFRVMTFAA
CQQFDBFWFGXSYMHPSVYYCJWEWVDOHXTPSNDJNFPGJUKRSEPQMRGNLPNMODUPOITTMGQNDXVYYBDFE
PHQAGCRJHJISYGPGYIIMASXURGSBLFAMVYUWTOSHOTCEGBKT 1.44 0.05
OMPRETYLSMVWNANPNRJDKCYFJXMPIUFGWTCYXELNGNRHDDPLWLJUMALFPIHTV
LKMFGJNPOCMSWWNMCJUVHBECHDOACRFNMSWNHCOQAVCIWCDPDDJCTJHUIOVRAMIPAOPDRQ
BVWSCLXRTXMEHALMLKEEBVDAVLJIWOHEWBTMWEQNJVLUYVOUTPPXKDOTODRFQWKTNOPVCOJNVWRKLJ
SCMGRKIAGRVHJYISDDECLROVLBWFWCLPYEMMEDJRHMHPNRQWFJUOSSAYFUCYIPPYVSCTSMDP 2.16
0.04
OMXLIBUDPLKNSYDVPOOVLCAIPMVSKGCOECHSOQEPSYBFTAWJHICAVYO
HYQLKRJHTTHOPXPMMAHCRGCWLGFJERQYINJNMKTIYOHIMUQVUNLLCAHHCLJEAGULJBKPJXTGRTSBWGOJ
RTQOIEMFTTJLRIUFITMQFCWWONTSTLDDPVSBJQRPTEYMYXDQUON
MKWALSJSLVCMCNQVNJYIAUOACMYVPCHKPAYFWYRJLKBMYRLGQYUKCD
UDENHRUBIGNFKSJPBABQSDYOXHLMSHKUIIXBUDYJH 1.39 0.02
PMRPHCDNPOKKTATVAYEPWXDJJSCWQNPYQYNJQABCSPUM
FBPDWDSINIEXPVHDSMMRKOOPLGKBEHXIYONCTHMTUJSUCCROEQKNEFDWWQSKUHXOHMKUGXMUJDXRIDDAT
AOMTEKQETBPYBWAWVCXSRVCALBQCVBQJAIVALCCMEWBQKUQVGPLAJLWERAKSUACWGRIEMYMJTKDHCKQRBFLDHIUCBFHRBEUP
WOCWNPCKIHNQORWYMADXLMUPVFMTXFIEMELXHAVEEOEHDOOGMICLEWBPQBGKMQ
HJOLBEMAXONWJYXETOBPOQCLTFFVRYVOVTAPJCXDVEHTQTOIOALNHVTFKVLRNK
579
MIYMCRCWKFTWLEIAVDPLLOHHIXHFJPMQSKMLXXPDGGMFKAHLCITVI
MOUPHSUSEQQQJEKNYMFPVNKUDITCUELEWP
WWPLPISPMQBYFSUEKQKXNTEVUMROVRAMMIVYAWMYKMDGILFWUCEOLTMBGERMWANBPXFWKREQF 1.93
0.14
SAQKAETCTPFRJAKFEAQRHYFLQZXHNBZGGGJHSDMQQRYYRSWVHKU
ORXKNXPGISSZETJOBELEUEALMZYSDXOOLNPQSAUEBUYAACEBFPMCWJP 1.75 0.24
SFDUKQTRGSVQGTNHJCKNNNCONFTCEJKXEIPRMJMWOZKXHIERPG
SLKDHYAKJKAOLDWSRUIKJMCXAOXTXJFKBORSIAVJLCFOKYOTDUTUEWOA 1.66 1.06
SHBNLCIMXEHDFWCTGGTHMISUIWQVKNOGMRKXUHGAWBSURGPMQGNWIY
HIXDWOEMNSMHNGSNRQUXBSMODGHPAHQXBRNPLGYPFBVPMONHPRDN 1.79 1.13
SQFECQRRYIURKSQUPQJFXYIGXSIBLHXMGPPQIAZNMOYVDLCAWDKMX
OCMDFHPVRROTLEISGDMYLOIIPMIJXMNSZYMOQSTDIRJRHEUTJVULN 1.53 0.11
SSKBHUTGPQHPOEPHRDGFXBALTEPFKACLGRQNWPIIBOGXWOJDLSKQNF
XYITSIRDNIBBFLCDOURLWRFWFEFIOYBHMMTBVRVNJWWFTBULDJEB 1.55 0.15
SUISTHIXFBRILKWHLDWTNCQZSDCNERFJGXAJMEXFVZGTQDDOVECKJQR
SZDYLDBGOEVMGTKYBPSZKXUYKTNPFRMCINCDGDVNMIEXLBDRMKP 1.65 0.45
TBEIESEQRCCJAWWIIMLCJIRCVBWJKCDDRBGOCSLIWUNQNRAGFDOBFOBCRXTVVABBAF
GXLWFFADIGBVOGUROQITIGGDKEUFLVUAJOWBXNIVRAPRTWCXEMMQMDIRWJAICFN
NJKGHBDFFSWPEMBKYKXGRLCSTIAGASCOSPJTFYEU 1.02 0.32
TFRKCBHSZKGAIBHFDVHBWGRWWGWXOPMNPBBEBICJJEVAZDIIVICHNQQPQIRU
MMAPIWNQXEBBOUWGQXJLQFHJPGRDNJFTSCHDLSDTLIHSHEENPJDGFQJJAMEDDILOPUECKN
FIFHWGPSJCOQAPGAEILMOXOQHMRECTRKNCLNHYE 1.90 0.00
THBDSQARKUURSXNOXNTVUHHCALECVHBGQXXACJJJVNCWCXPTXB
FCKGXQSPKXZXCCKWMHVNDAJDJISIOEMRZONFYLVXNLQJNUQCNRZJJSLKDWBAXMOTQAGN
MMGGIIVLOPMTSOCBTXWRDMJJBCBUJVDPEADZWDULHNXDJVFPJFT 2.28 2.36
TIKDSMEKSFJJVOHCDMJQQCRWJAEAEOFLLTVKOUOYRQUGRWRMSRS
VMHKUDOBLKEOARQFQCICONTEARQPCTCVTMLQMUDUUOLVBQUAYOYKWQILMHOJVGL
ADWYQJAXXLJYNXWIGHCTSAETKIEOLGBUQQFJASMQGWNWGCQRLVFADJR 1.89 1.42
TLFBEBGPQAJQLXYMFGYJCXTKGFDZKCSTBCXBFJESQKNOGFGBPWLLDTVL
LPPFBHSKMMFKJTDQQHHSHJJFXYFLNDCXZJXOCQTPAHFLISHTDHFCKIYWSGNWYKEFRW
MAESTCGPRKDYEBSGWBMWQEDVEEKEZJOSQYWVJSLFBKIMPAI 2.08 0.58
TNGLFVWPULUKVAAVNVVQFDYANMFMYAJIJYZVYMGLDVXHCPKAVXF
RMJBCQMKRDETSSUZGVMQNEIYHFTEKLPTKJXUFYGQQRKKPEGHIWZPURYSXOTTT
BMNYWEAUMXLEODVWIUGKNDRRILVUHLFTRLUGFNORBJEFMEEMGGQIHBPWS 0.01-0.00
580
TQHTPBVXADIMPQSVRDTOTEUGRXODMBJNGAAYTXWW
DDDXDQUONAIGEDVYFXPBGHIDXJOXHBACYQNMHFONNBQXQCGUCRDYDBRYTLBMNXDKNMCQF
NDDYKJTBQRFBTWCKHVMPGJUWOHPYTDNJUMKYLYRNUEBFDBOYSHODYYYAYEXC 1.73 0.31
VFFSCILFFJKHLPTIXBMAJLOOIXCAIYHILEGQHADVECJ
FHRYWXBXOLMNCUDHJILAGGFMCPSDPKEMOHJAYDWXAGQVHVVHJIIEBO
NJCHSTCCXVHCEVXQGYQPCSJNPUUNHRYPQXBLLUURIXEB 2.15 0.00
VFQGCVARGFCJIGFCJIYQWNAQARFLGRJHCABE
JYGPTBQGWOWEKJTCFUJHJBJSODRBOYEAUFUCNWAJGVRNJNCGKVKB
PBLVTPDELMLMBDAVFUSLIRRNBPWUNGNHUGLCFSXJGKYOSMEBKEHKY 1.55 0.53
VGKEMAGQAQNXJEXJBSMEAXYCMKHYFGCIULBNEMFXSQCCOTXAUIW
SFYKOEQGGJNJQYTTFWAQFIKTYKDBYTNGYKVEBRIABYHWJJLG
USPFUFOHINREPFALYEULXLMCQFBEVYWNXAJCPWVIJC 1.72 0.26
VHTQNWHDQRFGFJXRDQYRWNCRCQFPSBSNVPESANICCHC
SKCQQQMNCYLEEEHJGMKYLRJIWFEORUNBDYQWFHWGNIRSRKEFYOAFM
GCRBBQXDPSCQGQYARKRIMHOPVKFINAHUXOTTLWMMKIBUQ 1.51 0.03
VIPHNKSOEEWSDGCOABBNEJXOBCTAKHTDEHXIFJVHIRTQGXBOS
RNRFRFRSJOJUOERMJTGMJBMMWJIKTMMIHBREBUXDQNEUYYYVL
NIWJLMFQOQUEYEPDJGPJGLDMIHSFCJJLWCXEDDETIHB 2.32 0.27
VJEVASEYAEKHGRQRDLPHAXOGBVIOCSXVLVWXGOBTFUMQTQXW
SMHBQGBOUXRKYEPQKBRMRSPIFPGTBYVWFQRYGXBLBVVVELYDGKQ
FBVGFLJMXMBFJDTSUFPPYAVDCVDQGBMJRUBVLDOSXI 1.80 1.28
VKCLEUHORCIEPAEPGXOXQICXPOMNDFWFOFEOSAQCERPLN
FIQTPROJUBIITHOGKLCIIGENHRPIORNRXDRRISYFBBUFKBDKWSYB
NORDVTFHPHDAURTMHPRVXVFWSGVHOGSCRDIKMXNCMRPI 1.90 0.04
WJCUJYONOYWSFMVSWQXTDCQTPWHWTFDISTVUNKMJGMUWRSGQIBVGU
FVKPURLEQKTDUGOLJFQVVMPVBLMEHQBWHLHAXMQYTLNVMYDRQOCCKXREWDLUYMHONCRWVSEI
UOJJCKIGQVOFQAXIAXCQVNNMJONXITKIDNVQSRSGWRYYBIYDHASUM
AYMCHOUOPKKBKBJSTWSCVDVXDUSWXWOTQMKAYWQNPBG
SHNWSGWRBUSGELGAASIBFBJUPQBIDABHCIRJEKRVSMYDRWQADIAGRNAKYYAD 1.62 0.36
WJUKEUQUEHVWQKIVEHANFQCPGOYIGJCQUKIDROQLRFRHPMYDLFSQIOXUSODQQ
OPBAPNMWDLDNLITGAIXAFKFBKYUHGNPIGWXKFEEADWMAGYGGBWSSFVIBAJWJVFQG
BGBNKYAJOQJADSVEMTHDRINKSTALPSNXORTFLGYYRRBLBMNKDCMW
RPGVRTHHKKSDDTOBLVSGDGORQIMSAUKBIYRGLPJLPC
PHFAXKFAHCGSFRSMYJPTDNGYEWSNESCHRCPLQHNOWVADJXCXFDVMSQRSYOQHEY 2.62 0.00
WKDEDPGPQXLGMOYNFBMPSIYDQNGTDIYKHFLSCRYLVKRESBDQHBRSEHGXGELVCXDVBMQVSAOPDSITCQ
581
NBNNHUXYFAEIBOGSJMHWHTNKOHBLOHBLQBRDPNKCXEOOHMUSHPGFYNYOTLVUIIEMUNBIFH
SGXOLKGBINCAPFRQVURUHEUIVARQWIWUYNECWWCVCGHINKEKFEATHVRCCHXHIROA
RIAFBWHHQMUTNVSEKQJJQWCGSCULQURQSNHGQAREIPCAJYXOFWJKKSNJDVYEUEPJBHELO 1.76 0.18
WKLAAVLORDCHCPKWGNJLIXUHKAUWAREVFQSGSIKIWRQJLTRHNFUOYOE
VAXJXYSTWXRYGEMQYQKEARQULSQWQIYOXEBXMFPBEOEUFTQDGSBJELDIJTEGAOHRR
XDNOQFTCARAUWJLICIUKHCCAKPMTTRQAWFFWLUTLRNUJTXMALIIKBUBEVNIVMLUJTYW
LPOIORFVADRHKVFCAEWRXOKSIBGUOKKBEREBMJHBEXYMJHXXMTELYSKXYSKVJCSLFS
HLHPTWEGKPPGYYSPFWGNEHAVERBY 1.46 0.41
WNFIDCJHJODNDTYMYSQPICGMDDCQYEODQHCIPAYOIERSSDVFVHQOAC
KDEJIKPOKVVSYAQOJPHJJXUHKYJSTGNSLFFITGPJEAUHJYLEYASIXWXFPGGBGPP
MDERGKEMYNIHXRXHFPMJXEEKRFVJNVDIHGJUMWYTIEQWSAROHRUNDCYSGNQ
EANEWJQXHRPUDCBHXGAOHTWRKKSDAEDJYNSNARSXVUQIVWPGVVGYQQRBGODPJFYDWQQXT
WPJDOKQEQHESDNCOEBMLKELJBMGHAMWETWDU 1.66 0.00
WNHRNECEKBNTNSVBIBKNTHKYDMTDJOPAMRHQVLMOOKKCSSJET
XHQFAPEEMBCJKVKBSFRDOLQJDUYVFBNGWCFNBDHTPCNODDRQUYRGXQEILCNBKRXWIGVLQMIS
JJXRWEUOLOTXQKAIGLOASPRAXQTEVJXGTABDDKTRGYQMBCIOKCXUHGNPXFCIMGFQMV
IGYRHTQGSXOANGWBSKQVIKNCTSEEWDHOWFNWBDRKYTSLGGTKUMAWNUNTONPWMAVO
TUKSYGRQGIIRGELFRKPMVPYKKKGCLL 2.21 0.17
WTQRFNAVWGUNPKGINIXKVCVSOCGUJQDUHTMTKSROOXVKTONNHQJFHVU
GKGDDJCEHHXLSVOMVDDQYMTKRVYTWRWJNGSXHDHGNRVFXNNSWINEDCAAFQBQJMRSUL
FUIBEKGHMEQDDRKAGWNGDCWQLXVTQABHNMOBBGHHERNQVNVWQLMAQQBPFRLAUCOQYBBSUEISAEK
RJOHWMHNWTKFPKGJBLHVBGVNWSEQYXBRAFBXVJWRXRJOECFSLIQBVGXRJVVDAKIE
YCCJHEERAYSCRLEVNHGER 1.78 0.47
XJUSDQKDEJYCDRBCBQFKKINFBFCIHLYWDDGHDSYQPKWIAGKVETECIW
FODMNAIJKATEBDCFMIYBYSGPFNLFPNCCDVATVLWBJCPBEXWVUPBWTJSTUUYEXOBEDDUXJNIF
UUWAXIJEMTPCXKILNVLYOSNTLFTBTFMFWLBJYUHLJMEPKJXWTYIWJDPCLJIRQSROTUBHQWBMBDIYIEBCPM
LBSOVXKDDKTOHRLFGJKKLGJAONUQXJYXHEPXMGROTIMOPSWHQJDELFHMAGFRPLBJIQQUKNNEWQG
HRGSWNNUNIMNALFLPBGNHFYDKPDOWPKUGIMYHYTPAOHXUOTCPAVAQLOADUHOVFDSJRMI
DHBPXYJDLRIPCVJBFXEQYIDDYFEICPTPLGUNRSWXJYH
GQKNETCYEFRNYUSSDGXSWRBAPNFKNMAUHMHXYTUQMPXQMGSJSVFK
TMJKNINYUFOBEFYGKCWIJWAEMOMTTRWBJTYOITXIJWGVGAPHMENULICMSSQ 1.65 0.33
XNOYBECRSMOTWDWDPQGPJPPEOSJLUBTKKGOPWQGQTSPBMISYTUVHN
WWXUIGGJRFKSMRAEHMLYHQCILLLKBKJJDWSUFQYAUETYMVJLCAPSUSCBUHYFTTTAG
OYFVEEJXIDKCPOGBUSRXIOOAUAAKTEUXIGICEGWVULNLHBHJOLDETAXFICCSLIT
VXTJREJGDTSHIEJGNVHLRYTEQVNKHJBVAFGJMVQFSFPGDEFCQAEFQXFGPEROFUTWBPRFUEBNYBYMYMINMO
LACTXNBWFVCHETYYKNCISHRRSUUTFWKXMUALWPESAGWQHTRBWFATKQKEAEBRGTQHDUEYMJYGIGMNPULLC
FVYLMXINBUASIBHYRMKDXHMSAGSCHLVRUDLJOVIHQVTKOCCUCQSWWJKMPDROP
WXFPSJLKDEIDMFXUHWFQSBLBNAISWNSWXEPCUXUAHCSVUW
YGLLXNPCRXJFQYSYJJXMIWTWVPINIRPUMSDWPCTMQGWVELQMOFEBUB 1.50 0.58
XPOOCSENDLUDHWQRTQDCQDHPWSTUYDLBKQKWIAKNPVLAFNNANJXBYNSYPASAGDEDHTDMWKRVUM
RRNQIOFDKBJYQTHFYALOAPCYUORXLYQKKBDFKFYSXDIHSPKGUDUVVMGDAIQHEDMURPYAQRONAFMJI
XKGLQVNXDYBKYMMHHHYVVGYDAKBLMDJMYOYFCIPCVYCCTDREHEPFEYUHUHUVRQCMBYPXUIDL
UIVDLJJBNDNGERYWLFDNLGKDRYUDPVWCWNACGGKYBIEIKVKNRNFVFEVMXMHIMJGKSMQEOQFVVCBP
JTYTXYVSPOQYOAPEOMXOQBHDLIBWPNHOUPUUXJXJPYOSUGQHJCEQDNAFAXDEGRJ
582
PMBKSUNCHBELOANHOQUYSWITSYNKYUMUKFPNMKGXPMTRHYIADGKKFPHAKGMON
ALAXAICFVKURUQGSEPDAIUPMQSEOFIDUQUEKBKGTPBYRMWUEFGEHSUDJJKBDVK
CDXNIXEARYBSNEAXGCAK 1.38 0.14
XRDYAOEYFENFXMQMXXPSSCWORVLAKLAFXSADHCQGWDRGUXUKURRLOAQTDYUAVCPJPUPC
TPLWVIOXMCCHRUYNNPGYYYBTSOHALFLBLBGQVIXKUJDSCTPFDLXJOBXLKDBTDANERYUD
ESXIIRMJFBOSGBMIAJKCRXXNLYQAFVBACVXQVMRTJFUUGIGOBPCKAKOKPBWMRQQYVYGJ
WPOKTEHEBWCYYIBXVOLKVFGHDPQAOQKQUSCLDCLRBDPIIFRCMLULATVPCDSXRDIOYILUL
OUUCFRUGWWXAJRHNOIEHIUPMMCLPJSOLVOTTKGQNRNALLDKIIOVAQNAKEQLETILABC
ROPKFXXTPHGVPGUQLQIHJGODMSVDWCGPKYKJAJNMMJBIUJKYPHFYBH
PEAOBETXFGKPJKTDOVEPQMHCWNARVTVIIMKUPCMUNTFLQAVWPYABQLNYEAHFIMQRLGHJ
YDLIGQFAGAYKNQVOSXWSLHUFTQRWIHWFDJCELYGHXFMQ 2.31 0.24
XTPXAPOKYSXEJCLEHGQGYXTGILQANWASHNBSHSWNQHHUPOSBWSXDDRPUQPTJVPGA
NCRXHBFOMHXHEJKHRTIHHPBRPVEXOCFFNUUUUHUHKSHYCTJGAJMJAMUKIMQJOBQDGPDBLBN
LMVAFNYGWCJUPWHNMWOLTINFJUEMSNMKUMABSHYBRTAHJRDTFGIYXOMFAYVXXSSXIUQFBGOETJK
KTNVQPBFPQOCXNQJVROLJOSXIQFUAGANAJYQIXHCTJLLQAHEJODVVDGJMPBNR
GFFJOYGADQESGDHSCORYQCGPYNTBMUDDOGLEKUOMQTNEXSXOQKMEHFFAGTQ
YIFVDRCGDTSUKEBNPPXDHHNKNOTEKMWDHDLGNEJUITQNGXDLBN
GWSYJARIIIGCQGGGQUTTCJYUQNFWWTWBDIHXARWNFIFSMUNWLAPIYTBDVGVCWCPUIMFWWKYQOKKO
PGXCRFSEUPOKHYTPOTECMIOHCSFGSWYCUBPAAQEDAMITQSHTG 1.81 0.45
583
EGLXOESFTTPSV 1.77 0.12
EGOSXRBRCBSPM 1.26 0.19
EHGUHDPHNSGOH 1.46 0.03
EHNHBMWMSVEPL 1.18 0.10
EIFLJUWMAICIB 1.17 0.02
EIFVQJFOOLVDV 1.58 0.11
EIJYRRWOBTMEN 1.44 0.09
EIXOFHUZSBQHK 1.35 0.10
EJOYHUWIVDACF 1.31 0.12
EJXAICXIXFRHI 1.37 0.12
EKCBIUIPLETRR 1.20 0.03
EKJXKXKKDYTLK 1.36 0.07
EKMMMYSUKEMMM 1.50 0.12
ELIRZLTCPNHOX 1.44 0.11
ELRWEFKFHUBHS 1.33 0.06
ELUFBBFISGJYS 1.59 0.18
EMCRBIPOPHTBN 1.39 0.05
EMFPGVXTIIDKB 1.48 0.35
EMJDSFTVHGEEV 1.31 0.02
EMLDRMQYIQWQD 1.34 0.21
EMQPUKNVAGCBE 1.64 0.43
EMTGETXEJWCUR 1.44 0.07
EMTQIBOXSCMRC 1.24 0.16
ENDVDPLVKBXEF 1.15 0.15
EODGQCNXODNYA 1.31 0.07
EODSTPMSDFIAO 1.46 0.08
EOOHVSVPDBGXW 1.26 0.01
EPKBNVOONOTTC 1.36 0.30
EQEGJUASEDNUJ 1.41 0.25
EQFFVSLMJJGCR 1.37 0.11
EQHVHQHYTEYQA 1.60 0.22
EQVEUTIPLADHO 1.26 0.09
ERLKHGBBDLIKJ 1.48 0.20
ESOKMLEVUMKDW 1.26 0.07
ETAPDHJKMTUBD 1.33 0.03
EUATWVBSHJIWR 1.35 0.11
EVAVMXOETHDMQ 1.23 0.11
EVBUQHNYPGJDF 1.34 0.37
EVBWNBDELYHUL 1.47 0.13
EWNCSLFLGIHGL 1.24 0.05
EWQKCSBRBQDJX 1.28 0.17
EWQLIJJHEXMPP 1.05 0.05
EWRAHGMIKMCHF 1.07 0.07
EWXHJEGNRHQFP 1.26 0.26
EXXFGRHFTPDWD 1.32 0.22
EZMCQGIXPJMJB 1.21 0.28
FBOJESOSHMVVWMHJMQIIQ 1.40 0.09
FEROJRKQNOWMUXJOIYLIM 1.21 0.07
FFEWXYQONQQJNVELRTBPS 1.43 0.21
FHGVGMHYSSJSHFWIBTSUA 1.16 0.06
FHHOLCTHYWJITRPCYLEHO 1.08 0.16
584
FHWHHMFMKFBEKIKSXLMYS 1.25 0.02
FIWOJAIIXSPLVYKSUHUEW 1.21 0.12
FJMANGGKMZMNRBNKCJGCK 1.34 0.07
FKDPVHZGDBDFPTCQHFLXL 1.06 0.03
FKMIABSKYNEQUXZZHSMPC 1.53 0.16
FLAJYVHGVIHGBPQWXYSRJ 1.19 0.29
FLUUCTCPDSRYFJWBQOCYJ 1.21 0.03
FLWAQNQVNQOOHIQQMBWSC 1.25 0.05
FLWIAFTKMWQJDIUCXKEKU 1.23 0.14
FMDEEAVWKUXTHEYOHOICN 1.19 0.03
FMKWIQQVZNEBRWNCJTLON 1.20 0.01
FNFIVJTOSUSTJWCJAYCLM 1.49 0.08
FNHWLFXVXQGPFILBICUJB 1.14 0.04
FNOYESLFRWEWERNDUKOCI 1.19 0.19
FODKJNNRHWCSUAJTUGHBP 1.29 0.17
FOGUKSYQYMBLEUWIHRKTQ 1.34 0.14
FOMMMMMMMKCXIDMMMMMMM 1.16 0.09
FQFEOIKPUKEIBJOTDQAMY 1.35 0.02
FRDLDHYKHKPWENJTOWOXD 1.63 0.31
FRHBYPULLAQSYMQYGREQP 1.27 0.13
FRMMMMMMMSYPVKMMMMMMM 1.22 0.19
FSCEYJHFADPMQDMCUWKVW 1.12 0.19
FVFOTKULQICUAFLQHUKPX 1.05 0.18
FXHDPILBCVMHPOJFVXIWK 1.10 0.17
FYAFYNGBDDHNVBPSPAIDF 1.39 0.14
GGTLDSNGVTBTEINQKQDPQEGNVFMOKES 1.44 0.05
GIGXPNBBVEMODKOCLXERMUNVVPWECYS 1.38 0.07
GISPJWDOAOFTCUBLOMEWXFCXDJQDRDU 1.30 0.17
GJNQRXOIMQLYVLQUNWKDCMXQAOYNZOT 1.52 0.15
GKDSEBTOQIOKPQYHKJUGSWYHMKICRYS 1.30 0.09
GKJWTVIJQTOGJDROEPYKTNWTGABNVBN 1.13 0.18
GKPQYRIDMPDGDKTTRRQPHOCFAOWRABQ 1.23 0.06
GMEHSXHFEMMYNXCJPRTKWADSAPIBBWR 1.44 0.19
GMTBIQYTGHEOJFMLDRXEIFJHLUPBBUY 1.56 0.24
GMVMMPSBXJMZCOFROXCKAFGVDQOKGIK 1.06 0.01
GNCDXEXXMVEOQBKWKEIMXJMLTDEDVSR 1.23 0.11
GNVIKAVSGBOYGFMTIXSOQNOTCVDOZCR 1.36 0.04
GOSLDJIOXHGVDTGGNCNOQYNWJBFHYLX 1.35 0.15
GQHRLGBFRLNFSNXGUKGWEJKFMQTGRDC 1.41 0.07
GQIWKNIRBQKIYSLXLCCKGEUQVUELLLJ 1.14 0.03
GQXEHVCCLDWBHSHHMUUABJRSPJLTTFC 1.51 0.16
GRLKHETMSIVYWMBBQODMFNGRISGHBSI 1.41 0.10
GSELTBLWMEENVFBSFAXMVDXKKEDGYXL 1.40 0.04
GTUFSHTHCLKCTBYWNMCISKERQISFVAV 1.32 0.20
GUMMMMMMMMMMMMWEODFMMMMMMMMMMMM 1.02 0.08
GUOBMPCJRXSHHSCPMQFZVNESALEKOHY 1.49 0.24
GXEMONYFKDJMDTPNSLGHQLHOOTOQBUN 1.20 0.18
HCJBKUPMMMMMMMMMMWMMMMICMMMMMMMMMMMMMMMMMMM 1.39 0.07
HHANQRENHONYATQYPTNXKNMNQEGDWKYPNSMMMODAOBC 1.13 0.01
HIFZLMPJUBERQBKLRRDOWMOLICDPVRJOTHOBSFUKGVL 1.39 0.24
HJVVHSHPOLDTXUCNMYRAYOFBMAAJFMLNAHJQOBBNXQX 1.48 0.06
585
HKTSDLOMMMMMMMMMMWMMMMDCMMMMMMMMMMMMMMMMMMM 1.41 0.06
HLONENJVYCXAJUMHKRSEUAOANAQGULOQBHKNWQOVOJN 1.22 0.13
HMOAQRKMMMMMMMMMMWMMMMYCMMMMMMMMMMMMMMMMMMM 1.35 0.10
HNBCTKKSQMGKBDNBXSLIFLJWOONPAPCGTYTUXWRVMQU 1.07 0.15
HNJCYVPMFLGQMPHCQEOMHMMEIHIJJJDDCRVYEGUXBSF 1.36 0.14
HOLTJASMMMMMMMMMMWMMMMWCMMMMMMMMMMMMMMMMMMM 1.16 0.03
HPYIESIXFDBTDVPNOUFHZZPNFOCNTRINYYVMVLHHZLE 1.33 0.25
HQJDYFYUMIRBQRDGPLHOBEHGBHDNKVCRSSYVJIFIVLF 1.25 0.18
HQMXVDGMMMMMMMMMMWMMMMBCMMMMMMMMMMMMMMMMMMM 1.39 0.06
HROIARTMMMMMMMMMMWMMMMFCMMMMMMMMMMMMMMMMMMM 1.15 0.03
HRPMBJSMMMMMMMMMMWMMMMKCMMMMMMMMMMMMMMMMMMM 1.41 0.05
HRUTHBNTTDGJJJDTVZBMVMIFSIDNDFEGWLJINVMMVXM 1.21 0.16
HSAXIXDPKULROIQBVOECGZQNWTAEYJAKDETXIOCHJQV 1.24 0.04
HUCXVGLMMMMMMMMMMWMMMMGCMMMMMMMMMMMMMMMMMMM 1.40 0.07
HWBVVHLMMMMMMMMMMCMMMMSWMMMMMMMMMMMMMMMMMMM 1.05 0.02
IGHCMVFESUFJJGIUOHWFROOIGMGFBEC 1.41 0.05
IHESJWNBMQQEOYLGPPBXGNHTJTPNTUG 1.23 0.05
IIIQMSNRHWELIGAGIURCSRIWABJSESC 1.74 0.22
IIUWOTLCIVQNMKGLXCBGELWUUWUQKIT 1.48 0.08
IIXYMLIVIVWOAXXXLEHKDPICIGQUQGF 1.33 0.02
IJVSBDFVNDDWWNMDMHDOPCFNYRIYWIU 1.08 0.03
IJWWHJKPHMMKUVMKFSRHKJCYOISSQNB 1.98 0.02
IKLEDDBHYJKFRYPBNYCVPRSVJILWEFP 1.50 0.10
IKTOSTVLDYEKWJRCTSIHIQJQVBSSEWG 1.32 0.03
IKTSIRHICWJQSSEVWGBJQKVLDSYETTO 1.33 0.03
IKUELCPYRWJFNDCNNRBVQKQREITYMIY 1.51 0.06
ILGEBMRRGWSRRFOQCLRDOOEARWYJBVE 1.56 0.05
ILLMEVWJKOGMOIVHTISBKJGYYEFWSEK 1.59 0.08
ILOTMOQYJBPLDUWTSWJQDQJVAQLEDQF 1.49 0.21
IMNGCLHTMPFKYEQXNXVUETBDSSWOOGN 1.47 0.04
INJWFGVSOPUNATNJMNRWDQMFKIGMRSB 1.39 0.10
INKRCPBNOMEMVQQKSKYEIJOCQWEYOFP 1.48 0.02
INLJYYNNEIORHAKLKJKOVJFTFGGSMQY 1.52 0.04
INNRCKWREIASTBGRGPADGMGSHPKMPHU 1.33 0.03
IOCVGJFNYEVPTEQLASRSELPUHOTDBXP 1.50 0.07
IOGBGSHOUTDPTRFKCORFDLNKOSPNPHA 1.61 0.10
IPBMEFIUKEKPDTZEJMPXSJTUFZLFRJA 1.20 0.03
IPIIOOVNXNHPAUADBROXSSACJSXGMKX 1.52 0.07
IPNBJINWBKXSIISTQCVRQNUPKSCLTXS 1.45 0.04
IQETFNJNAHIINXFKUHXYHMTTBNJSIII 1.34 0.08
IQNBDVISXIPPLGVLRMKNCMORMJOCIHX 1.60 0.19
IRGOUVHFMIJQBAKEWDJOVQNUSGCNPDU 1.63 0.04
IRIVIMLQBPFVPSLIKHJNDSPMWMCBGMK 1.95 0.02
IUFPFQLVOLTUAVQYFLEVREPQLSNQRCD 1.40 0.08
IUIMPUSPSEJNDPKKENDVSEHCVWDVEGQ 1.36 0.11
IWUBBBVGSWOQFPMBKOPLQKUEIKHSVHM 1.62 0.14
586
KFQXCEQYBQSYWDRSDPXYWOOSLJLQQURWRIRMOONBFJJDUQVR
JBFRIRCDOODRYIBWPNXSGREJIRQJWDKAOFNLUIPMCAIILSONYUNZDDNRFZ 1.72 0.16
KKWOOHREEEJUQAVCEEBRTVVBVPUJHIUDNQUUNHZDTHDMYPUGJE
GUPAJGXNMESDDGCDEMYNCDYINJQQDGYHMRMCPHSVJZPQLTVFFFSWODAS 1.35 0.01
KLPQQUQYSIXVMQDFDAEIDXBLHEQNKPWWSFUIKWRECWGRWNTRKQ
SNZTQRAQODNEYETSLOBYLSFGGTDWBAYPUOSAYDSPUHJAYTEPVPSYMITP 1.24 0.04
KNVXSIBPKCSPMTCYGJGBKBACKTUEARUPKKHGNUCXUWEMOCLDKTNJ
YVIHPDQRSDVGHXDRGCTPXUJIHNFFPPNDHFWFIYBINJBTDCIUATHBXG 2.00 0.02
KPUMNHSVGHFQTTXWQLRACVNNRSOROTNEXGQIJMFGPDIJOUYATCHV
NHOUBMQCGYJLGPHMBBULJUSPSVRNBKODHHLGXFYUYSANFVFVRTITDE 1.72 0.05
LJSWOSYKITFNRTXIFBSANRCXSEGVINFAFXVHHJJTUHOUIWJTDYOGTXANV
IDRAAXUMHHJTJXVLJOFHDIJMJMAIJABSJFIFKAGSEYHSJWSIEARJBSKNKGKVOJHIG
FVRFTGOLXANNQVSIIEPXDKBKKCJJLPIRHLJFTKISATMTSJP 1.55 0.13
LJUUKNADVUXNGAFRQDMKIHUDSFRPARHYAGGMEOJWSXOGTRYQTJRFRGDWP
QHKQWVVDXMSDHXKAAYFUPVTODYHVTUIRSAOBMLPYQUCWOPFTEGSRAQNWJDHVVRWHD
RQRFWXTYLKIULWCBAXKGRDCFREDNPJMNDNMAOJMEOLLNDJM 1.43 0.04
NMKAIYSQDHFABDWNQMFPVRJYYVNXPNDGTIOYMTGDIRTAUEXPXITIQPIKUJHOONVEEPICMHUM
IDQLBCXFOFCPIACOFYJMICGPJTBAQTRFPAMQMSUNUXTSFHOOMGUNCTEHPTHPCJIAKSKBD 1.85 0.08
NMQJNUVMGQFSHIJOYQCMLIOGXAXUCDXMCPKNMDGFQUKRFBVPKWPBLKTUFEREGFHOYOXR
KMAMAYUNAGEECHJDELBJWAGLDINGXIJXEPSGHPMPLFMCGQWAAOLMHYPATAKUYYTPQFIEEITNH 1.58
0.14
587
QCGPVUQQJPHUYULGKOJNBJEAZPENSZH 1.91 0.02
QDPHNYGLPMVYYQOCUIYOLVKFVFIDMIN 1.52 0.01
QJFPNELMYBGVUOLEEMJJRICCDKLQMUK 1.80 0.33
QJRFPORWBILHPHKQMRUDPUDXIJYGBGF 1.29 0.25
SABKETAXTDIXENYTOTGIFVLULGFOQQJEIYGPAMRRRYBSCXNNXTYDWUIDR
BFOGPFMRUUFDRLUFJILAIGYNNSMVHRGEOATODWVLDISWXMMND 1.65 0.22
SDHVJMXJNYTYHPMPGZXFRUCGPONXGAGCVKNORVWCWDFHRJWJWDCBHIEY
XJJGAKNRCTJMKMTQEHIJUUPEFAGQHINMBRWDUTYIDWHLJGFFFV 1.41 0.91
SDKUSYQVHCLINLBFHWYDYBYIAAKVIBEUTKGIIHQCENPICOYNWAKJJXOYTYL
KVEQMWRAJITCEINHLIYLOWDMHNUHWPWQQJLNMWTLOQLMFUI 1.37 0.43
SFJBUTEWDSLJBIGEASAPGLXTCPQPBNBFMMQJFYECVALMNYGKEVZUMQRKUNUFMBPHUKD
KHGJAJKLTTORHEBIFDTQLCMNGGNNJISOBIOJVTL 1.30 0.06
SSAHQOJHWOCLGRCGOGUBHOJRGAVXWQJCSFKLBYWGBBKOKONDNQFQUEASCISKXJWBGINOUM
YHRULGSPEATARYGOMQVRUQYKPSNVFTLFADPW 1.19 0.03
SUTYTGVRGAPBEYAVPTRWRNFJSDDMUAVSCIOOXVLDHLOMNCLYGELIMXACINABQQAIKELSKDBHO
GWAUPTCTMSBFEWYOPHTOPIXHTUESYNLDU 1.39 0.37
TSTDKLCSQYLOIQFVLHHXTBDGYMGKRJJBZAFDDDUGEKKWUWWVJVPJFTDBSBSNNIIXWMXLMPJEL
CNGTQHOCWFOYHLHIKZGSGQXSAQJGJJNPUQLKPCEQQWFKVQQOPSLYGPRWUQICYUFQ
IQWKBVGKRZCDTRSDMOQMENFDIXATYCBH 1.88 3.85
VBDIYXAGPEUVXXPCKVYCLPPRBAYDQTEIRDGMWBDIHIJAPGSLDYDLMTANMNMHNCLTYBJGXAYBJ
BLFJXDJRKOHCNPBIRTSLGSYSDOLUNAQTIJMNVOEIUOKAHLIXWPEMPQQFTMVPUFECMACT 1.69 0.60
VHETJPMKNMHQNUVBIOTFADJUXXIQRSGDSNXAGNEKPMCJRIDEHOFTVTPLWUFLNDCWLKHXKKE
LUMBDOHSIBSDEWWSPLQVMWLQERMCANDUBCXULQWYGOTLGLLQFSJGVQEUIEQQXXWGEKVTPA1.030.14
VMMKMRMREPCPYAFRGJBOTPHNQRFXVNSNYQVJNBXXPKRPVHFQAF
588
GFSTHYFKCIDWXOQJAKRFKHPYHNENTDQLJMQGMXTFPBDFUIPAIODWYAMTXJDIWGERTHD
OKWFXPLSWFYPXNQMNOBKILSG 1.84 0.44
589
]LTDADG 1.09 0.03
]MSDXEI 1.03 0.03
]OTYGNE 1.43 0.05
]QFWSDE 1.16 0.02
]RBFMSH 1.10 0.02
]SBSMKG 1.34 0.04
]VEIVIK 1.01 0.01
]WXSAGJ 1.07 0.03
]YDUCBE 1.07 0.01
^EAVTPDJJI 2.28 0.20
^UTKLLWIDM 2.22 0.21
^VRDSNKGRT 2.28 0.24
590
Van der Pol Equation: RM11OM9KM2KM6OM28 1.04 0.00
591