home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
educatio
/
feedback.zip
/
FEEDBACK.DOC
< prev
next >
Wrap
Text File
|
1991-04-01
|
23KB
|
478 lines
The program consists of five independent subprograms,
each accessed through the Main Menu. These notes take
up the subprograms one at a time.
The subprogram ONE DIMENSION is only for iteration of
real functions F of a real variable x. This function
may depend on a parameter r, as is the case with the
default F(x) = rx(1-x). The value of r may be adjusted
as desired.
To produce a Web Diagram, one begins by using the
command Graph to draw the graphs of y = F(x) and y = x.
It may also be necessary to adjust the viewing window
with Ctrl-W. Given an F (and an r-value), one is
interested in the orbit produced by a prescribed Seed
value for x; this serves as the 0th term in the
resulting sequence. One can request a particular member
of the sequence by means of Iteration. The Current term
of the sequence is always on display. By means of the
options One and Many, the movement from one term of the
orbit to the next can be seen in the graphics window and
heard on the speaker. The Trace and Noise keys allow
one to disable either function. The speed is also
adjustable to a limited extent by means of the + and -
keys. [Incidentally, the chaotic sounds one often
encounters in such experimentation are occasionally (and
erroneously) called "random". For the purpose of
contrast, sound produced by an actual random-number
generator is available; call up Noise in the One
Dimension menu.]
In addition to the graphical display of orbit behavior,
one may wish to see numerical data. The List key stores
such data in memory, starting with the current term, and
continuing until the user presses Escape (or until the
available memory is exhausted). Press Display to scroll
though the resulting data, or else Print it.
In the Bifurcation menu, one considers how the orbit of
a specified seed value is affected by varying the value
of the parameter r. Each orbit is plotted vertically
(as a set of dots), while the r-axis runs across the
screen horizontally. The command Graph begins the
process, which proceeds from left to right. If it is
interrupted, the process starts where it left off,
unless the screen has been cleared (Ctrl-C), the window
has been reset, or the function has been changed. The
graphing window is adjusted by means of Ctrl-W, as
usual. Inasmuch as the scales on axes are not
geometrically linked, they are adjusted independently.
Moreover, Zoom presents another windowing option: Use
the graphics cursor to mark one corner of the desired
window, then move to the opposite corner and RETURN.
There are two other parameters of significance. One
must decide how many points of each orbit are to be
plotted (before moving to the next r); one must also
decide whether to skip (and not plot) any of the first
transient terms of each orbit - doing so allows one to
see only the limiting behavior. One may also Overlay
the graph of a function X(r) on the bifurcation diagram;
once there, however, it can not be removed without
clearing the screen.
The subprograms MANDELBROT and FRACTAL are for two-
dimensional iteration:
MANDELBROT produces fractal images that come from the
iteration of Q(z) = zz + c, where z and c are complex
variables. There are two types of images. First there
are Julia images, for which one chooses a definite value
of c and then colors points of the z-plane according to
their dynamic behavior. Then there is the Mandelbrot
set, in which values of the parameter c are colored
according to the dynamic behavior of z = 0 [In other
words, is z = 0 attracted to infinity? If so, how
quickly?] The Mode switch in this menu allows the user
to choose between the dynamic and parameter planes.
The Julia Menu offers a variety of ways to draw a Julia
set. First, however, one must have the desired c-value
in place; press X or Y to make any adjustments.
The quickest drawing method is Inverse images. There is
not much to this menu; just Ctrl-Clear screen and Draw.
N.B: By Ctrl-Clear is meant Ctrl-C. Similarly, Ctrl-
Print and Ctrl-Retrieve mean Ctrl-P and Ctrl-R,
respectively.
Another relatively quick method to get a (monochrome)
filled-in Julia set is with the Distance-Estimator
Method, or DEM. Clear the screen, then press Draw.
Until one presses Esc, the program keeps trying to find
more points to color in the exterior of the Julia set.
It is occasionally desirable to interrupt the process to
see if the computer is really done; the Pixels on stack
indicator will then show whether there is unfinished
checking left to be done. If there is, just press Draw
to restart.
It is occasionally the case that one is trying to create
an image that has thin, filament-like parts; these will
not show up very well unless they are highlighted in
some fashion, either with colored borders (see below) or
by thickening the actual object being graphed. In the
DEM menu, this is the meaning of the Boundary parameter,
which can be adjusted to suit the example. Keep in mind
that thickening the boundary does have a cost - the
blurring of the entire image.
The lavish fractal images so often encountered these
days are produced through the slow Draw process. There
are two options: One can create files for Screen
display, or one can create files to be dumped directly
to the Printer.
Screen image files are drawn as they are filed. If the
project is a long one, however, it is desirable to turn
off the monitor.
With either storage mode, one needs to have made some
preparations first. Make sure that the window is
positioned correctly. Use Rep max to select the
maximum number of iterations. The Escape threshhold
determines when orbits have migrated close enough to
infinity to be terminated. [For many drawings, one
wants to set this at 4, which is minimal, but the DEM
procedure and the Binary coloring scheme (below) require
a higher setting for the sake of accuracy.] Finally,
set up the Colors. This is a list of the colors that
will be used cyclically to mark the escape to infinity.
To enter such a list, one Appends individual color
numbers to the existing list, which can be Emptied if a
fresh list is desired. Only color numbers in the range
0..Max color number are understood. If one is preparing
an image for the printer (see below), color numbers can
refer to shades of grey, and the displayed Max is
adjusted accordingly. When all preparations are
complete, press Slow Draw. A file name will be
requested. The screen is filled eight rows at a time,
so there will be periods when nothing seems to be
happening (except that the counter shows which row is
being worked on). The drawing process can be
interrupted by pressing Escape. A drawing can be
resumed by pressing Finish. There are two additional
switches in the Colors menu: If Binary is on, the
program will use only the first two colors in the list
to highlight both the external rays and the
equipotential lines of the Julia set. The Override
switch allows you to alter an image when it is redrawn
with Ctrl-Retrieve. Each fractal image is stored as if
there were a 255-color palette available. The chosen
color sequence (stored with the image) is automatically
selected to decipher the data, unless the Override
switch is on, in which case the current color sequence
is used instead.
Printer files store high-resolution images, which make
it possible to surpass the resolution of one's graphics
card. No printing is done, however, until the file is
requested with Ctrl-Retrieve. As above, there are a few
preparations that must be made before file creation can
begin. Here are the details that apply specifically to
printer files: One must designate how the color
sequence is to be interpreted by the printer. In other
words, each tabled screen color must be associated to
some ink color; if one does not have a color printer,
then one may assign shades of gray to the screen colors.
Moreover, even if one does not have a color graphics
card, the color table numbers (still called "screen
colors") can be matched with shades of gray. The
matching of color to ink is done in the Ctrl-Print menu,
which is also where one must identify the printer that
will receive the completed image. It is also necessary
to select the number of horizontal dots. There are
constraints: Dot-matrix printers in 80-column mode can
handle at most 960 horizontal bits. Laser printers must
store the entire image before it can be printed. The
greater the resolution, the greater the time needed to
produce the image.
It is possible to significantly reduce drawing time, by
capitalizing on the periodicity that the black points
represent. Most of the orbits that do not lead to
infinity fall into repeating cycles of points, and one
can save a lot of time if such cycling is detected,
thereby preventing the repetition counter from reaching
Rep Max. This is the purpose of the Periodicity menu,
where one can specify whether cycle-detecting is to take
place (it does take time, of course, and may therefore
be not worth turning on), and which periods are to be
looked for. The Tolerance, which is entered in pixel-
width units, defines how close two points of an orbit
have to be in order for the detector to consider the
orbit a closed cycle. Cycle-detection can save time,
but it also can err near the boundary, where convergence
is a slow process, anyway. For this reason, the program
tries to sense when the boundary is near and then
temporarily disable this feature; still, errors can
occur. The Destiny menu described below can help
determine which periods to check for. When framing a
sketch (with the Zoom window), it is best to include
complete black components (i.e., avoid wide swatches of
border points), for it takes a long time for points near
the border (black or not) to reveal their true colors.
The Orbits menu activates a cursor in the graphics
window, which can be placed by using the arrow keys.
One can follow an orbit by pressing One step at a time,
or else Many for autopilot. This cursor retains its
position in the program (even after one Escapes the
Orbit menu); this is handy when one wants to go back and
forth between Mandelbrot mode and Julia mode. To see
where the orbit is going, press Destiny. Black points
near the boundary can produce unreliable results.
Most of the drawing options that are present in Julia
(dynamic) mode also apply in Mandelbrot (parameter)
mode. The Cursor entry in this menu allows one to
select points in the Mandelbrot set (for use in the
Julia menu, perhaps) and to examine their Destinies
(actually the destiny of zero).
One common option is the Zoom feature, which allows the
user to create an animated sequence of small images,
which can be saved to disk and Played back later. One
centers the window, chooses a Reduction percentage
(which determines how each window relates in linear
dimensions to the preceding; default is 80%), then
Begins. After the filename (for the sequence of frames)
has been chosen, the drawing starts. It appears in the
small animation window (whose default position is the
upper left corner of the graphing window). Each frame
is produced by the slow-draw process; the completed
images are written to separate diskfiles FILENAME.F##.
Drawing continues until there is no more room in RAM to
store all the images (or until Esc is pressed), for the
Playback requires that they all be stored there. The
size and placement of the animation window can be
adjusted; press Move window. Larger windows mean fewer
frames will fit in RAM, of course.
Finally, consider the special Ctrl-Keys that apply in
this program. Ctrl-X will superimpose the coordinate
axes on the graphics window; pressing Ctrl-X a second
time will erase them. Ctrl-D allows one to set the
degree of the mapping at values other than the default 2
(one can explore mappings of the form z^n + c for n-
values from 2 to 9). If the computer is equipped with
an EGA card, or if a VGA card is used in medium-
resolution mode (which is the same as EGA), then there
is enough video memory available to activate the Ctrl-L
key, which allows one to toggle back and forth between
the last two retrieved screens, or the Ctrl-T key, which
determines whether the image-retrieval process is shown.
Ctrl-R retrieves files from disk. Finally, Ctrl-Zoom is
for color cycling, in which rapid recoloring of the
color bands gives the appearance of motion. One must
have an EGA card for this to work, however.
The FRACTAL subprogram is for examining two-dimensional
iterations that are not of the special type that MANDEL
can handle. One iterates a single function (a trans-
formation of the plane, that is) and colors the points
of the plane according to their orbital behavior. The
function is provided through the menu entry Mapping,
and it may be given component by component; the first
is called F and the second is called G. For instance,
the complex squaring function zz can be written as
(x+yi)(x+yi) = xx - yy + 2xyi, so that F could be
entered as xx - yy and G as 2xy. Because it is so
cumbersome to describe a one-dimensional complex example
as a two-dimensional real example, however, the user is
permitted to simply enter F(z) in this case. Use the
Input switch to select the desired entry mode. After
providing a transformation, one must then describe how
colors are going to be assigned, once drawing begins.
This is done by means of two menus.
A plotted color is determined as soon as an orbit enters
a designated region of the plane. These regions can be
specified by means of the Neighborhoods menu. To add a
new neighborhood to the list, first select New. There
are two types of neighborhood description. One can
provide a target point and the radius of a disk centered
there, or one can provide an inequality in the form 0 <
D(x,y). If both descriptions are present, the latter
takes precedence. Neighborhoods of infinity are dealt
with in the latter fashion. The list of neighborhoods
may be inspected with the up/down arrow keys and edited.
As in MANDEL, the Colors menu is where one specifies
color sequences. This can be done only after one has
entered the target neighborhoods; these will then appear
in the menu, ready to be assigned their color lists.
One may also adjust the maximum number of Repetitions
that can take place before calculations with a given
orbit are broken off. Ctrl-W places the viewing window.
Finally, select Draw. One can produce files for display
on either the printer or on the screen. After making
the necessary choices, one is asked for a file name, and
drawing will then begin.
The Zoom feature applies to FRACTAL explorations also.
The quadratic method Inverse Iteration can be applied to
general examples, but one must work through the IFS
subprogram, described below.
It is also possible to produce parameter-plane diagrams,
which are analogous to the Mandelbrot set. In other
words, one has a family of mappings F(c,z) of the plane,
and one wishes to create a colored map that shows how
the orbit of zero is dependent on the value of the
parameter c. To produce an image of this sort, press
Ctrl-Dynamics. This will toggle the mode ON or OFF. To
see which state is active, call up the Ctrl-Key list; it
will display the effect of the next Ctrl-D press (thus
if the next press turns Dynamics ON, it is currently
OFF). In the resulting drawing, it may be necessary to
allow for moving targets; in other words, the
neighborhood centers may depend on c. (This was not
the case in the Mandelbrot menu, where the only target
was the point at infinity.) If this is the case, the
information must be entered as follows: First use the
Special descriptor key to enter a formula for the
position of the center, as a complex-valued function of
c. Then provide a negative Radius entry. This signed
entry is read as a signal that the Special descriptor
defines a target point (not a neighborhood).
It may happen that the parameter-plane diagram (Dynamics
OFF) contains some black (undecided) points, and there
may be enough of them to make periodicity-checking worth
the time. This is handled just as in the Mandelbrot
menu. The Destiny calculation (in the Orbit menu) can
help discover which periods are to be detected.
In Dynamical mode, the Orbits menu allows one to watch a
moving cursor trace out the orbits of the transformation
under investigation. The most helpful aspect of this
feature is that it can be used to locate and specify
target points before the drawing begins! In other
words, let the cursor find a fixed point, then Add it to
the target list. It will still be necessary to enter
the Neighborhood menu to adjust the radius entries, or
to delete any unwanted neighborhoods.
ITERATED FUNCTION SYSTEM subprogram:
IFS is the customary abbreviation. One has a
transformation of the plane that is actually a list of
transformations, randomly accessed; which one is used in
any given application is not known in advance, though
the probabilities can be affected by means of the Weight
that is associated with each entry. To input the list,
call up the Mapping menu. Each transformation in the
list is entered according to the conventions described
above. Use New to add to the list, use F and G to edit
existing entries, and use the up/down arrows to inspect
the list. One may also retrieve IFS files from the disk
with Ctrl-R.
The Inverse Iteration method for generating Julia sets
(described above) is an example of an IFS, so this IFS
subprogram provides another way of generating (non-
quadratic) Julia sets. It is necessary to provide a
formula every branch of the inverse transformation.
Because many interesting IFS include affine mappings,
there are two auxiliary ways provided for defining such
transformations:
Fixed points leads to a menu where one can focus on the
geometric properties of each affine map; to specify such
a map, it suffices to provide a fixed point, a rotation
angle - interpreted in radians - and a dilation
constant. If Randomize is selected, the data is
randomly selected, but it may be entered or altered via
the editing process. The number of transformations
(i.e., the number of fixed points - initially 3) is
increased when a New (random) pt is requested; it is
decreased by Kill (the current) pt. When the geometric
data is acceptable, press Set-up/Orbits, which makes the
program calculate and store the functions F (and G) for
each mapping, then go automatically to the Orbit menu.
The other auxiliary menu is Collage, which allows one to
define mappings by means of what they do individually to
a reference triangle. Triangle show places a triangle
ABC (initially random) on the screen; it may be
repositioned at any time by moving its vertices. The A,
B, C keys match the vertices with the cursor, which is
then moved with the arrow keys. At any stage, the state
of the triangle can be shown by Triangle show. To
define a new affine map (with reference to the source
triangle), one chooses Make new image, which
(invisibly) re-establishes the source triangle on the
screen, ready to be transformed (via the cursor) into
its image. The complete list of image triangles can be
inspected by a combination of Next and Triangle show;
editing is of course possible. When the list is
complete, Set-up/Orbits causes the program to calculate
the system of functions (F,G), then exit automaticallly
to the Orbits menu. This method of creating IFS makes
it easy to draw ferns, for example.
Given that an IFS is in place, one uses the Orbit menu
to see the orbits. Before drawing, Ctrl-Clear the
screen and press Autowindow. This positions the window
to enclose the dynamics. (If additional adjustment is
necessary, use Ctrl-W.) Switch on Trace in order to see
the points on an orbit. In addition to the One step
option, one can activate specific component functions of
the IFS by pressing 1, 2, ....
Use Ctrl-S to save information to disk storage. From
the Mapping menu, this stores the actual IFS; from the
Collage or Fixed point menus, this stores the geometric
data instead, from which the functions are calculated.
In any case, Ctrl-R retrieves all the necessary
information. There is of course no need to save IFS
sketches!
The POTPOURRI subprogram calls up a variety of standard
fractal images.
First there are Monster Curves, which are defined as
limits of piecewise-linear examples; one gets the next
stage by requesting Next. The submenu Your Example
allows you to examine the string-rewriting codes that
produce these curves, as well as invent some of your
own. Each example is generated in a LOGO-like fashion
by a string of instructions, where + and - signify
changes of direction (rotations through some prescribed
angle), letters A..F stand for segments (traced in the
forward direction), and letters U..Z stand for places
where code replacements are made: In the transition
from one stage to the next, the instruction string is
enlarged, each symbol replaced according to a table.
For instance, the triangle F++F++F (where + is
interpreted according to a 6-sector division of 360
degrees) turns into the von Koch snowflake when the
single replacement rule F --> F-F++F-F is applied over
and over again. Because the instruction strings become
very long, the computer usually runs out of memory after
about five generations (which is often simultaneous with
a loss of clarity on the screen). One alters the
current table of replacements by entering this menu and
then selecting the Character and then entering the
Replacement string for it. For example, alter the von
Koch replacement rule to F --> FF-F++F-FF, then Draw.
The Initial configuration may also be altered. It is
customary for + and - to carry over unaltered to the
next generation, but even this is not a hard and fast
rule. Sectors=10 means that each + becomes a 36-degree
counter-clockwise change of direction, and so forth.
Another string-rewriting option is to use left/right
parentheses, which tell the computer to save/recall the
cursor position during the drawing process (in other
words, lift the pen and put it down somewhere else).
For an example that illustrates this, request Plant.
The Cantor menu produces examples that are obtained by
punching out pieces from standard shapes. The Growth
menu presents some simulations. Crystal places a seed
at the center of the screen and sets several point
molecules randomly floating in solution; when a molecule
happens to collide with the seed, it sticks (and is
replaced by a new floater). The number of active
floaters is controlled by Points. Visible changes in
the pattern are SLOW to occur at first! Vegetation is
similar; a steady rain of random cells produces growth
from the bottom of the screen upward. For both
simulations, use Ctrl-Clear screen first. To see the
random points, use the Ctrl-Watch switch.