home *** CD-ROM | disk | FTP | other *** search
- YABMP.DOC ver. 0.97
-
- ( for i486 or i386/387 )
-
-
- Part 1. Introduction
- ____________
-
-
- 1.0. Hardware Requirements
- ---------------------
-
- YABMP is a 32-bit Protected Mode program that requires an
- i486 CPU (or an i386 CPU with i387 FPU). It runs under DOS
- ( version 3.3? or greater ) with a DOS Extender, which is
- provided.
-
- YABMP requires a VGA or SuperVGA Color Graphics Card and a
- Color Monitor. Six VGA/SVGA modes are supported: 640 x 480,
- 800 x 600, and 1024 x 768 in both 256 and 16 colors. YABMP
- has been tested with ATI Wonder XL, ATI Graphics Ultra, and
- Paradise PVGA 1024 Video Cards, but the VGA modes should work
- with most cards.
-
- YABMP supports printing its figures with the Hewlett-Packard
- LaserJet (tm) II or III.
-
-
- 1.1. Why Yet Another Brooks-Matelski Process Program?
- ------------------------------------------------
-
- Many programs are already available to compute and plot the MSet
- (the so-called "Mandelbrot Set") and its associated JSets. Their
- aim, however, often appears to be to produce these figures as a
- kind of art or entertainment and their results are often mathe-
- matically inaccurate and tend to obscure, rather than to
- reveal and to clarify, the underlying mathematics. The aim of
- YABMP is to produce the most mathematically accurate figures
- of the MSet and of its associated JSets.
-
- The visually (and mathematically!) most striking feature of the
- MSet is that it contains infinitely many small copies of itself,
- imbedded in itself near its boundary. A first requisite of a good
- MSet figure is that these be conspicuous.
-
- A second aspect of mathematical accuracy is the aspect-ratio
- (i.e., the proportions) of the figure. That is, a square in the
- complex plane must appear as a square in the figure. This means
- that we are not free to specify all four corners of a rectangular
- region in the plane. YABMP asks you only for the coordinates of
- the center of the desired figure and its height --- the
- appropriate width being determined so that the figure has the
- correct aspect-ratio.
-
- A third aspect of mathematical accuracy concerns the coloring of
- the figure. There are, in principle, only two kinds of points in
- these figures: There are points that belong to the set and there
- are points that belong to the complement of the set. Thus, the
- most mathematically accurate figures should require only two
- colors. In practice, however, a third color is required for
- pixels that correspond to points which lie very near the boundary
- of the set. If you have not seen them before, you will be
- astonished by the stark beauty of the three-color figures YABMP
- produces.
-
-
- 1.2. The YABMP Distribution
- ---------------------
-
- This YABMP distribution consists of the following 7 files:
-
- YABMP.EXE Requires an i486 CPU (or i386DX CPU with
- i387DX FPU).
-
- CPUID.ZIP Intel program to correctly determine your
- CPU and FPU, before attempting to run YABMP.
-
- DOS4GW.EXE Rational Systems (tm) DOS Extender. Must be
- in the current directory or a pathed
- directory.
-
- YABMP.HLP Help File containing brief instructions to
- be viewed from within YABMP.
-
- YABMP.DOC This Documentation File.
-
- YABMPCMD.ZIP Collection of *.CMD script files for auto-
- matically producing and saving the figures
- referred to in this documentation.
-
- YABMPPAL.ZIP Collection of *.PAL palette files.
-
- 1.3. Installation
- ------------
-
- YABMP looks for all of its files (DOS4GW.EXE, BMPSCRN.CFG,
- YABMP.HLP, the *.BMP Figure Files it produces, the *.CMD
- script, and the *.PAL palette files) in the current directory.
- Just copy all of the distribution files to a single
- subdirectory on your fixed disk and run YABMP from that
- subdirectory.
-
-
- 1.4. File Compression and Printing Figures
- -------------------------------------
-
- YABMP provides no data compression. Even the very best data
- compression and decompression routines take a significant time to
- process the very large figure files that YABMP can generate.
- Most figures are generated so quickly that it is not
- worthwhile to save them beyond the current session. If you
- should generate figures you want to keep, you can compress
- them with PKZIP (tm) and decompress them for viewing.
-
- YABMP is intended for use in exploring the MSet and its
- associated JSets and quick producing accurate detail figures
- for viewing. Data concerning a figure, which is displayed
- before a recalled figure file is displayed, is displayed in
- text mode and can be printed with PrintScreen.
-
- Screen figures and figures printed from the screen can both
- have the correct aspect ratio only if both screen and printer
- pixels have the same proportions and, therefore, printing the
- screen correctly is problematical.
-
- YABMP supports printing its figures with the Hewlett-Packard
- LaserJet II or III. Output may be directed to either LPT1:, to
- an H-P .PCL File, or to an .HP file.
-
- If you do not have a LaserJet connected to LPT1:, make an
- H-P .PCL file and send it to a LaserJet later with the DOS
- command: COPY name.PCL LPT1:/B, which produces the same
- result as sending output directly to LPT1:. An *.HP file is
- intended for inclusion in a document formatted with the TeX
- typesetting system, using the TeX "special" command.
-
- A conventional Graphics PrintScreen utility will print a solid
- black rectangle, since every pixel on the YABMP screen is
- colored. A PrintScreen utility, that can be gotten to print only
- Color 2, in the current mode, can also print YABMP figures.
-
-
- Part 2. Using YABMP
- ----------
-
- 2.0 General.
- -------
-
- When you first run YABMP, a Default Graphics Mode Selection
- Screen will appear. The six VGA and SuperVGA graphics modes,
- that are supported by YABMP, will be displayed. Those that appear
- to also be supported by your hardware are highlighted in red. 256
- color graphics run faster than 16 color graphics and the
- resulting files can be compressed more. On the other the
- other hand, files generated in 256 color modes are twice as
- large as those produced in the 16 color mode of the same
- resolution. Thus, for exploration, when you do not intend to
- save the generated figures, YABMP Mode 2 ( 640 x 480 x 256 ) is
- the preferred mode. The higher resolution SuperVGA modes ( 800 x
- 600 and 1024 x 768 ) run slower and produce larger files, but
- generally do not produce commensurately more attractive figures
- on the screen. They are useful mainly for producing figures to
- be printed. Select a default graphics mode (Enter 1 or 2). Then
- save the selected mode by entering y. You can change your default
- Graphics Mode, either permanently or temporarily, from the Options
- Menu (Item 1).
-
- In its interactive mode, YABMP is operated from three menus.
- First, there is the Main MENU, which comes up when the program is
- run. Second, there is the Options Menu, which is Item (5) on
- the Main MENU. Finally, there is the Small Menu, which appears
- at the top of computed or recalled figures.
-
- You can generally escape from whatever you are doing by pressing
- Esc **ONCE**. This will usually return you to the previous menu
- or display or to the Main MENU. Pressing Esc will also interrupt
- computation and plotting, but this command does not take effect
- until YABMP finishes plotting the current row of pixels. You can
- also interrupt computation and plotting by pressing Enter. This
- allows you to save a partially completed figure, which can be
- completed later.
-
-
- 2.1 Getting Started Quickly.
- -----------------------
-
- A collection of YABMP script files is provided for generating the
- figures referred to in this documentation. To see how a script
- file works, enter YABMP &JSETI.CMD. A JSet figure should be
- plotted and saved to your current directory as JSETI.BMP.
- After YABMP exits, follow the instructions in the following
- paragraph to view your figure.
-
-
- 2.2. Viewing an existing figure file. Item (2) of Main MENU.
- -------------------------------
-
- A list of existing figure files, in the current directory, is
- displayed. Select the desired file by entering its number.
-
- Data on the selected file is displayed and this may be printed
- with the PrintScrn key.
-
- If the file is an only partially completed figure, you may elect
- to finish it. Otherwise, press any key to display the file and a
- Small Menu will appear. If key 'c' or 'C' is pressed at this
- point to continue, then a command file for making this figure,
- named CMD_n.CMD --- where n is a number, is written to your
- current directory.
-
- F2 Display just removes the Small Menu. Press any key to restore
- the Small Menu.
-
- F4 Zoom produces a box for selecting a subregion of the figure,
- to compute and plot. Move the box about with the Cursor keys and
- adjust the size of the box with PageUp and PageDown. Using the
- cursor and PageUp and Page Down keys on the numeric keypad (with
- NumLock set, so the keys are actually the numerals 2, 4, 6, 8, 3,
- and 9) adjusts the box more rapidly. Press Enter to select a
- region or Esc to return to the small menu. If you select a
- region, you will have an opportunity to edit several
- parameters. The sequence, from this point, is the same as if
- you had selected a subregion of a freshly computed figure and
- is described below.
-
- F5 Measure produces a graphics cursor (crosshairs) to read the
- true coordinates of a point in a figure. Move it about with the
- cursor and PageUp/PageDown keys or the keys on the numeric keypad.
- Return to the Small Menu with Esc. Press Enter to compute and
- display the period of the point, corresponding to the cursor
- location. If the figure is an MSet figure, Press j or J to
- make a JSet figure, using the cursor location as c.
-
- F6 Ray draws external rays over the figure.
-
- F7 Done returns to the list of existing figure files. The
- directory is not read again, at this point, so any figure
- files you have just made will not appear. To see these, Press
- Esc, to Return to the Main MENU, and then select (2) View an
- Existing File again.
-
-
- 2.3. Making a New MSet Figure. Item (3) of Main MENU.
- ------------------------
-
- Begin by entering the parameters on which the computation
- depends.
-
- The desired region of the plane is specified by the coordinates
- of the center of the figure, which are ( x_center, y_center ),
- and the height of the figure, which is ymax - ymin. The program
- determines the width = xmax - xmin of the region, according to
- the aspect-ratio, so that the figure is always automatically
- proportioned correctly. See Checking the Aspect Ratio, under
- Options Menu below.
-
- Default values of the parameters, for the full MSet Figure, are
- given on the data entry screen. To accept a default value, just
- Press Enter.
-
- "thickness" is related to the width in pixels of the region
- near the boundary (plotted in yellow). If the thickness is too
- small, a figure that should be connected may be plotted
- disconnected. If the thickness is too large, "holes" in the
- figure, that should be plotted in blue, may be filled in as
- points near the boundary. Thickness = 0.25 produces a good
- figure of the full MSet. Smaller values, down to about
- thickness = 0.1, or less, are be required for some high-
- magnification details. Recall that the MSet is connected, so a
- good MSet figure must look connected. Too small a value of
- thickness will disconnect the figure. Too large a value of
- thickness will result in fat tendrils and filled-in holes.
-
- "maxiter" is the maximum number of iterations to be made.
- maxiter = 110 is sufficient for the full MSet figure and
- larger values will not make a significantly better figure.
- However, high-magnification details often require 10000 or
- more. If maxiter is set too small, many points that will
- eventually escape will not yet have escaped. These will be
- colored red, as interior points of the set, rather than
- yellow as they should be. If increasing maxiter does not
- reduce the red area further, then maxiter should be
- sufficiently large.
-
- "maxperiod" is the maximum period length checked for points in
- the interior of the MSet (i.e., red points). When a stably
- periodic point is detected, its distance from the boundary can
- be computed and the distance can be used to color an entire
- disk, rather than just a single pixel. maxperiod = 10 is
- sufficient for the full MSet. In plotting a detail, if you see
- many red pixels being plotted one at a time, try raising the
- value of maxperiod. But, setting maxperiod too high slows
- the program and it cannot do any good with small values of
- maxiter. The setting of maxperiod generally has no effect on
- the figure produced. The measure function (see F5 on the Small
- Menu, below) is provided for determining a suitable value of
- maxperiod.
-
- "minrecur" is the minimum radius of disks plotted, before
- recursion is terminated. minrecur = 1 results in the fastest
- plotting and generally produces a satisfactory figure.
-
- After these parameters have been entered, select the desired
- Complement Coloring Scheme. The main purpose of this program is
- to provide (1) Solid Complement and Solid Interior, and (2)
- Distance (disks) Complement and Solid Interior, which result in
- the best figures and the shortest computation time. The remaining
- schemes are provided mainly for comparison purposes.
-
- "Coloring Scheme". The cleanest and best-looking figures are
- made in the shortest time with color scheme (1) Solid
- Complement and Solid Interior, which colors the complement
- solid dark blue, or with color scheme (2) Distance (disks)
- Complement and Solid Interior, which colors the complement in
- slightly different shades of dark blue. These choices are
- highlighted in red and should normally be used. Several other
- familiar color schemes are provided. Color scheme (6) Solid
- Complement with Interior by Periods, produces a figure with
- the so-called hyperbolic components of the interior colored by
- period. For the full MSet, use the script MPERIODS.CMD or set
- maxiter = 10000 and maxperiod = 10.
-
- Finally, select the desired palette. (1) YABMP Default Palette
- should generally be used. A modified (2) VGA/SVGA Default
- Palette is provided for comparison. If a user-defined palette
- map has previously been loaded, using (3) Load a Palette File
- on the Options Menu, then (3) User-Defined Palette File is
- available.
-
-
-
- The computation of the figure can be interrupted. Pressing Esc
- terminates the computation and returns you to the Main MENU,
- discarding the partially completed figure. Pressing Enter
- terminates the computation, but allows you to save and use the
- partial result. Press Esc **ONLY ONCE** and wait until the
- current line is completed.
-
- After the figure is completed, press any key to see the Small
- Menu:
-
- F3 Save asks you for a filename and saves the figure as a file.
- If you choose an existing filename, the existing figure file is
- not overwritten, but the figure is saved as TMP_???. BMP.
-
- F4 Zoom produces a box for selecting a subregion of the figure,
- to compute and plot. Move the box about with the cursor keys
- and/or the cursor keys on the numeric keypad. Adjust the size of
- the box with PageUp and PageDown and/or with PageUp and Page Down
- on the numeric keypad. Press Enter to select a region or Esc to
- return to the Small Menu. If you select a region, you will have
- an opportunity to edit several parameters. You may want to
- decrease thickness and increase maxiter, if the selected region
- is small. minrecur = 1 should be retained, unless the figure is
- unsatisfactory. maxperiod should be increased if the region
- contains many interior (red) points. Use F5 Measure to determine
- the correct value.
-
- F5 Measure provides a crosshair to read the true coordinates of a
- point in a figure. Move it about with the cursor keys and/or the
- cursor keys on the numeric keypad. Return to the Small Menu with
- Esc. Press Enter to compute and display the period of a point.
- Suppose that you select a region that contains a small imbedded
- copy of the MSET and you wish to produce a blow-up in which this
- small copy occupies much of the screen. If you do not increase
- maxperiod, this small copy may be plotted a single point at a
- time. Determine the period of a point in the central cardioid of
- the small copy and use 5 times this as your new value of
- maxperiod. Press j or J to make a JSet figure, using the
- cursor location as c.
-
- F6 Ray draws external rays over the figure.
-
- F7 returns you to the Main MENU.
-
-
- 2.4. Making a New JSet Figure. Item (4) of Main MENU.
- ________________________
-
- A JSET figure is made in essentially the same way as an MSet
- figure. Begin by entering the coordinates c_real and c_imag, of
- the point c in the complex plane that determines the figure.
- After a figure is computed or partially computed, you can use the
- Small Menu to select a subregion. The Small Menu works in the
- same way as described for MSet figures, above.
-
-
- 2.5. Options Menu. Item (5) of Main MENU.
- ------------
-
- (1) Select Default Video Mode works in the same way as the
- initial selection, when you first run the program, as described
- above. You may make the selection permanent, saving it to a
- new BMPSCRN.CFG file, or not. You may also use this item to
- just view the currently selected video mode, using Esc to
- return to the Menu.
-
- (2) Check Aspect-Ratio should enable you to set your screen
- controls so that figures are proportioned correctly. You can
- also check the aspect-ratio by computing and printing the JSet
- figure for c = 0; that is, using c_real = c_imag = 0. This
- figure is the unit circle.
-
- By aspect-ratio, we mean the ratio of the width of an object to
- its height. The useful part of your screen, a single pixel, and a
- rectangle in the complex plane all have aspect ratios and these
- combine together to determine the proportions of your figures.
-
- Two displays are provided, as follows:
-
- (1) Computed Unit Circle displays a computed circle inscribed
- in a square. Use your screen controls to render the square
- accurately square (measure it!).
-
- (2) Raw pixels shows a circle in a square, which is
- maxypixels by maxxpixels square. For instance, in VGA 640
- x 480 modes, maxypixels = 480 and maxxpixels = 640.
-
- (3) Load a Palette File allows you to select and load a *.PAL
- palette file from your current directory.
-
- (4) View Palette permits you to view the palette used for a
- given choice of color scheme and palette in the current
- default video mode.
-
- (5) Displays this YABMP.DOC documentation file.
-
- (6) Displays version and author information.
-
- (7) Returns to Main MENU.
-
-
- 2.6. Printing an existing figure file. Item (6) of Main MENU.
- --------------------------------
-
- This works in the same way as Viewing an existing figure file,
- but you have to select the printer orientation (portrait or
- landscape) and the number of dots per inch. Smaller values of dpi
- produce larger figures.
-
- You may elect to send output to the first parallel printer port,
- LPT1:, to an H-P *.PCL file, or to an *.HP File. A printer
- output file made from File.BMP is named File.PCL or File.HP
- and existing duplicate printer output files are overwritten.
- Use COPY /B to copy a *.PCL File to a LaserJet (tm) printer
- connected to a printer port. *.HP files are intended for
- inclusion in documents formatted with the TeX typesetting
- system, using the TeX "special" command.
-
- In general, larger values of the parameter "thickness" should be
- used for printing than for viewing.
-
-
- 2.7. Command File Processing.
- -----------------------
- Invoking YABMP with &Filename on the command line (Enter YABMP
- &Filename) causes YABMP to read the file and process the commands
- it contains. The format of a YABMP command file is as follows:
-
-
- type M /* type is M or J */
-
- point 0.30239579 -0.02468438 /* c_real c_imag for type J */
-
- loc -0.75 0.0 2.75 /* x_center y_center height */
- thick 0.25 /* thickness */
- maxi 100 /* maxiter */
- maxp 10 /* maxperiod */
- minr 1 /* minrecur */
- color 2 /* color_scheme */
- pal 1 /* palette */
- mode 2 /* mode */
- name mset /* filename to save, */
- /* without extension */
-
- Keywords are written in lower case, with one keyword per line.
- No delimiters are used. The color_scheme, palette, and video
- mode are specified by their selection numbers on the relevant
- Menus. Command files may have any name or extension.
-
- If (3) User-Defined Palette File is desired, the name of a
- *.PAL palette file in the current directory must be specified.
- The required format is:
-
- pal 3 map NEON.PAL /* palette */
-
- Syntax checking of command files is very primitive, so care
- should be taken in preparing them.
-
- A collection of prepared command files, for producing the
- figures referred to in this documentation, is provided.
-
-
- 2.8. User-Defined Palette File Structure
- -----------------------------------
-
- A User-Defined Palette File can be used to produce amusing
- effects, when Color Scheme (3) Distance (points) Complement
- and Solid Interior is selected in a 256 color mode. With other
- Color Schemes or 16 color modes, nothing very amusing results.
-
- A YABMP *.PAL Palette File is a 256 line text file. Each line
- consists of a triple of integer intensities: b, g, r, in the
- order blue, green, red, delimited by two commas. Intensities
- may have any value, between 0 and 255, inclusive. Comments may
- be included on any line, after a space after the triple, but
- each line must begin with the triple. See the included sample
- *.PAL files.
-
- Each of the 256 colors is used in a specific way, which is not
- user-modifiable, as follows:
-
- color( 0 ) Background color of the blank screen, when
- plotting begins. Its default value is 0, 0, 0
- (black).
-
- color( 1 ) Complement color in Color Schemes 1 and 6.
- Its default value is 21, 0, 0 (dark blue).
-
- color( 2 ) Color for points very near the boundary.
- Its default value is 0, 155, 255 (bright
- yellow).
-
- color( 3 ) Interior points. Its default value is 0, 0, 255
- (bright red).
-
- color( 4 ) to color( 255 ) are used in ways that depend on
- Color Scheme and whether the number of colors is 256 or 16.
- Here are the formulas used to determine the colors of points
- of the complement of the set:
-
- In 256 color modes:
-
- Color Scheme 1 color = 1
- Color Scheme 2 color = dist mod 224 + 32
- Color Scheme 3 color = dist mod 224 + 32
- Color Scheme 4 color = k mod (number of colors - 3) + 3
- Color Scheme 5 color = 1 or 4, accordingly as the imaginary
- part of the last value of z is positive or
- negative.
- Color Scheme 6 color = 1
-
- In 16 color modes:
-
- Color Scheme 1 color = 1
- Color Scheme 2 color = (dist/16) mod 12 + 4
- Color Scheme 3 color = (dist/16) mod 12 + 4
- Color Scheme 4 color = k mod (number of colors - 3) + 3
- Color Scheme 5 color = 1 or 4, accordingly as the imaginary
- part of the last value of z is positive or
- negative.
- Color Scheme 6 color = 1
-
- Here, dist is the distance in pixels from the point being
- computed to the boundary of the set. k is the number of
- iterations before escape.
-
-
- Part 3. A Bit of Mathematics, History, and Computer Graphics
- ----------------------------------------------------
-
- To produce the most interesting mathematically correct figures,
- the user needs to know a bit about the underlying mathematics.
-
-
- 3.1 The Fatou and Julia Sets of a Complex Function
- ----------------------------------------------
-
- We begin by considering a simple example. Let the function f,
- from the complex plane to the complex plane, be defined by f(z) =
- z²; that is, if z = x + i·y, then f(z) = (x² - y²) + i·(2xy).
-
- First suppose that z is inside the unit circle; i.e., x² + y² <
- 1. Then the iterates of f; that is, f(z), f(f(z)), f(f(f(z))),
- ... converge uniformly to the zero function.
-
- Next suppose that z is outside the unit circle; i.e., x² + y² >
- 1. Then the iterates of z converge to infinity or, to be more
- precise, to the function that maps each point to infinity. Each
- such point, either inside or outside the unit circle, has a
- neighborhood on which the iterates of f form a normal family and
- all such points comprise the Fatou Set of f. The Julia set of f
- is the complement of the Fatou Set which, in this case, is just
- the unit circle.
-
- To get YABMP to show you this Julia Set figure, first Select (4)
- Compute and Plot New JSet from the Main MENU. Then enter c_real =
- 0, c_imag = 0 (so that the function is f(z) = z² + 0), thickness
- = 1.5, maxiter = 50, Coloring Scheme = 1, and Palette = 1. What
- you will see is a yellow circle, with red interior and blue
- exterior. The red points converge to 0, while the blue points
- "converge to infinity." The Julia Set is the circle, while all
- the red and blue points belong to the Fatou Set.
-
- The formal definition, of the Fatou and Julia sets, is abstract
- and difficult: If a point z has a neighborhood U, such that the
- sequence of the iterates of f restricted to U form a normal
- family, then the point z is said to belong to the Fatou Set of f.
- Otherwise, if no such neighborhood exists, z is said to belong to
- the Julia Set, J(f), of f. In our example, the Julia Set is
- precisely the unit circle, but it is impossible to plot a really
- clean circle because the points of the circle do not exactly
- coincide with pixel centers.
-
- About 1906, Pierre Fatou made an astonishing discovery,
- concerning the rational function f(z) = z²/(z² + 1). Fatou found
- that almost every point z converges to zero, under the iteration
- of f. However, there remained an exceptional set of points that
- remain bounded away from zero, namely the Julia set of f. After
- the first world war Fatou, Gaston Julia and others took up the
- theoretical study of this phenomenon and obtained many
- interesting results. For instance, Fatou was able to prove that
- the Julia Set of his rational function is a Cantor Set. However,
- in the absence of machine computation, it was impossible to
- compute and plot figures.
-
- Some time before June 1978, Robert Brooks and J. Peter Matelski,
- then Assistant Professors of Mathematics at the State University
- of New York at Stony Brook, made some of the first machine
- computed and plotted such figures (see References [1] and [6]).
- They studied the function
-
- (1) f(z) = z² + c
-
- and made a number of computer plots, two of which are reproduced
- in [1]. Fig. 1 of [1] shows the JSet for c = 0.1 + i·0.6, which
- they defined as the set of points z which have a stable periodic
- orbit under the mapping (1). Fig. 2 of [1] is the first full
- MSet figure. They defined the MSet as the set of points c, which
- have a stable periodic orbit under the mapping (1).
-
- Brooks' and Matelski's figures were necessarily crude, since the
- only output device at their disposal was a line printer. Their
- figures consisted of asterisks printed on green striped paper.
-
- Some time later, Benoit Mandelbrot, working at IBM with much
- better equipment, made much higher resolution computer pictures
- which, however, were mathematically incorrect. Mandelbrot thought
- and his figures showed that his set, which he called Q, consists
- of many well separated components or islands.
-
- In 1982, Douady and Hubbard (see Reference [2]) defined the MSet
- to be the set of parameter values c, for which the map (1) has a
- bounded critical orbit or, equivalently, for which the map has a
- connected Julia Set. They proved that the MSet is connected and
- that the complement of the MSet is connected, thus providing a
- sound mathematical basis for the further study of the MSet and of
- the JSets of (1).
-
-
- 3.2 Computer Graphics
- -----------------
-
- The most obvious way to attempt to compute and plot a figure of
- the MSet is to attempt to do it directly from its definition. To
- do this, we start with a point c, that corresponds to the center
- of a pixel on the screen. Beginning with z = 0, we just iterate
- z = z² + c until either (i) the modulus of z exceeds some large
- number M or (ii) a certain large number maxiter of iterations has
- been performed. In Case (i), the iterates are evidently diverging
- to infinity, so we can confidently color the pixel to indicate
- that it is an element of the complement of the MSet. In case
- (ii), where the modulus of the iterates has remained small after
- maxiter iterations have been performed, all we really know is
- that the iterates are not (yet) diverging to infinity.
-
- Different colors, related to the number of iterations performed
- before z escaped from the disk of radius M, are often used to
- produce a more colorful figure. In Case (ii), when maxiter
- iterations have been performed without z escaping from the disk
- of radius M, we color the pixel to indicate that the point
- belongs to the MSet. That is, we assume that it will never
- escape. Note that the point c scans the screen, while z always
- starts from zero.
-
- To produce a JSet figure, we select a complex number c, which
- remains fixed for the figure, and we speak of the JSet of the
- complex number c. We start with a point z, that corresponds to
- the center of a pixel on the screen. Then, we just iterate
- z = z² + c until either (i) the modulus of z exceeds some large
- number M or (ii) a certain large number maxiter of iterations has
- been performed and color the pixel accordingly. Note that here, c
- is fixed and z scans the screen.
-
- This naïve method suffices to produce crude figures, of the kind
- usually made by available programs, but it cannot produce a
- mathematically accurate sharp figure. There are two reasons for
- this. First of all, many points of JSets and many points near
- the boundary of the MSet take a very large number of iterations
- to escape. So, unless the maximum number of iterations is very
- large some points will be colored incorrectly. But there is a
- second, much more subtle reason why this method cannot produce
- accurate sharp figures. The boundaries of the MSet and of the
- JSets are extremely diaphanous. They are composed of many fine
- filaments, separated by mostly empty space or "holes," rather
- like lace. It is easily possible that, in scanning the screen,
- all of the points corresponding to the centers of pixels will
- fall in the "holes."
-
- Let us try to understand this better, with the aid of the
- "Spiral" figure of the file MSHVL4.BMP. In VGA 640x480 mode, this
- figure consists of 41,935 pixels (of the 307,200 pixels on the
- entire screen), every one of which is actually diverging to
- infinity. Thus, every pixel center in this figure falls in a hole
- in the lace. Nevertheless, this region of the plane contains
- infinitely many interior points of the MSet and, in fact,
- infinitely many small imbedded copies of the MSet, itself.
- Successive further magnifications, of a detail in this figure,
- yields figures that look like MSHVL1, MSHVL2, and MSHVL3.
-
- It is this second fact that prevented early computer figures from
- being correct (See References [5], [6]), and [8]. In fact, the
- production of realistic figures had to await the discovery of the
- Distance Estimate Formula (See Reference [5]), by William
- Thurston. Thurston's formula yields an estimate of the
- distance from the center of a pixel to the boundary of the
- set. The Distance Estimate Method involves the iteration of
- both the function and its derivative(s) until either (i) a
- good distance estimate can be made, (ii) the iterates escape,
- or (iii) a certain maxiter number of iterations has been made.
-
- YABMP uses Thurston's Distance Estimate Formula in the following
- way. If the distance from a pixel to the boundary of the set is
- very small, say a pixel side or so, the pixel is colored bright
- yellow to indicate that the pixel is "near the boundary." If a
- pixel is inside the set, it is colored bright red. Additionally,
- for MSet figures, an attempt is made to estimate the distance
- from the pixel, corresponding to an interior point of the set, to
- the boundary and this is used to color a disk red. If a pixel is
- found to lie outside the set, it is colored according to one of
- six selectable Complement Coloring Schemes. With Scheme 1,
- Solid, the distance estimate is used to color a solid disc
- consisting entirely of blue points that are escaping to infinity.
- This yields the best run-time performance and, also, the most
- mathematically realistic figures. There are, after all, only two
- kinds of points: those that belong to the set and those that
- belong to its complement. Consequently, only two colors should be
- needed. However, by distinguishing between the yellow points near
- the boundary and the red interior points of the set, we can print
- good monochrome figures by printing the yellow points.
-
- The implementation of the Distance Estimate Method, used by
- YABMP, is an adaptation of the recursive algorithm of Juval
- Fisher, given by him in his paper "Exploring the Mandelbrot
- Set," see [4], pp. 287-296.
-
- The MSet iteration process is always started with the initial
- value z = 0. The function f(z) = z² + c has exactly one
- critical point at z = 0 (where the derivative f'(z) = 2·z is
- zero). Consequently, if we know what happens in the neighbor-
- hood of z = 0, we know what happens everywhere and, therefore,
- nothing further is to be learned by making figures with non-zero
- initial values of z.
-
-
- REFERENCES
- ----------
-
- [1] Robert Brooks and J. Peter Matelski, "The Dynamics of
- 2-generator subgroups of PSL(2,C)," pp. 65-71, in "Riemann
- Surfaces and Related Topics: Proceedings of the 1978 Stony Brook
- Conference" (Irwin Kra and Bernard Maskit, Eds.), Annals of
- Math. Studies vol. 97, Princeton University Press, 1981.
- Contains the first figure of the MSet and the JSet figure for
- c = 0.1 + 0.6·i.
-
- [2] Adrien Duady et John Hamal Hubbard, "Itération des polynômes
- quadratique complexes," C. R. Acad. Sc. Paris, Série I, t. 294
- (18 janvier 1982), pp. 123-126.
-
- [3] H.-O. Peitgen, P. H. Richter, et al., "The Beauty of
- Fractals," Springer Verlag, 1986. Contains many good colored
- figures, including interesting details of the MSet and their
- locations (coordinates).
-
- [4] H.-O. Peitgen, Dietmar Saupe, et al., "The Science of Fractal
- Images," Springer Verlag, 1988. Contains more good figures,
- mathematical exposition, and pseudo-code for computational
- algorithms.
-
- [5] John Milnor, "Self-Similarity and Hairiness in the Mandelbrot
- Set," pp. 211-257 of "Computers in Geometry and Topology", Edited
- by Tangora, Lecture Notes in Pure and Applied Mathematics, vol.
- 114, Marcel Dekker Inc., 1989. Contains the derivation of the
- Thurston Distance Estimate Formula, many good technical
- references, and some very interesting figures.
-
- [6] Steven G. Krantz, "Fractal Geometry," pp. 12-19, The
- Mathematical Intelligencer, vol. 11, No. 4, 1989 (Springer
- Verlag). An interesting book review of [3] and [4], above. See
- also the letters to the editor, from Robert Brooks and Benoit
- Mandelbrot, in the following issue of The Mathematical
- Intelligencer, vol. 11, No. 5, 1989 (Springer Verlag).
-
- [7] John Horgan, "Mandelbrot Set-To --- Did the father of
- fractals 'discover' his namesake set?", Scientific American,
- April 1990, pp. 30-34.
-
- [8] John Milnor, "Dynamics in One Complex Variable: Introductory
- Lectures", April 1990, SUNY Stony Brook, Institute for
- Mathematical Sciences, Preprint # 1990/5. Elegant exposition,
- with some outstanding figures and a fine treatment of the
- problems of computer graphics.
-
-
- Copyright, Disclaimer, Licenses, and All That Stuff
- ---------------------------------------------------
-
- The author of YABMP disclaims all warranties, either express or
- implied, and makes no claim as to the suitability of this
- software for any purpose. In no event shall either he or his
- Institution be liable for any damages whatsoever.
-
- You may freely make copies of YABMP and give them to others,
- subject only to the condition that they be accompanied by the
- full documentation.
-
- The author would appreciate your comments, suggestions, and bug
- reports. He can be reached at:
-
- Prof. Eugene Zaustinsky
- Department of Mathematics
- State University of New York
- Stony Brook, New York 11794-3561
-
- email: ezaust@math.sunysb.edu
-