[net.math] Is the Mandelbrot set a fiction??

sinclair@aero.ARPA (William S. Sinclair) (09/09/85)

I have been looking at the error propagation properties of the Mandelbrot formula,
e.g. z=z*z+c. The error grows without bound in a very small number of  iterations. The implication on a finite precision machine is that for the exact same
number on two different machines, you are going to get different results.
In fact, on the SAME machine, using two different precisions, the results will
be different. I have verified this on the CDC Cyber 176.
 
The gist of this is: For points near the Mandelbrol set boundary, without an infinite
precision machine, you can't determine whether or not the point really does belong in the set.
 
                                    Bill Sinclair   213/647-1753


P.S.  I tried integer and fractional  arithmetic, but in both cases,
the numbers grow without bound, and have to truncated at some point.

sinclair@aero.ARPA (William S. Sinclair) (09/11/85)

Someone pointed out to me that the Mandelbrot set is well defined, although on
a finite-precision machine it might be impossible to do the iterative
process to establish that a number is IN the set. Of course, there are many examples
of numbers NOT in the set. Rational arithmetic isn't much help; the numbers in
the fractions get big in a BIG hurry. To see what I mean, take the complex
number (1/3,0.). How do you show that it is in the set?

On a more practical note, is there a way to standardize the iterative process
such that all machines give the same answer for a number which can be expressed
exactly on those machines, for example (1/4,1/4)?
 
                                       Bill Sinclair

cjh@petsd.UUCP (Chris Henrich) (09/17/85)

[]
In article <418@aero.ARPA> sinclair@aero.UUCP (William S. Sinclair) 
writes:
>I have been looking at the error propagation properties of the Mandelbrot 
>formula, e.g. z=z*z+c. The error grows without bound in a very small 
>number of  iterations. The implication on a finite precision machine 
>is that for the exact same number on two different machines, you are 
>going to get different results.
>...
>For points near the Mandelbrot set boundary,
>without an infinite precision machine, you can't determine whether or 
>not the point really does belong in the set.

     Does the difference affect the overall appearance of the
Mandelbrot set?  In other words, are the "scrollwork" effects
so dramatically displayed in Dewdeney's article in
_Scientific_American_ artifacts?

     By the way, I think that article was mistaken in stating
that if the value of z ever got to where |z| > 2, it was sure
to go to "infinity".  It is fairly easy to show that if 
          |z| > |c| + 1
then the sequence will go to infinity.
Regards,
Chris

--
Full-Name:  Christopher J. Henrich
UUCP:       ..!(cornell | ariel | ukc | houxz)!vax135!petsd!cjh
US Mail:    MS 313; Perkin-Elmer; 106 Apple St; Tinton Falls, NJ 07724
Phone:      (201) 758-7288

putnam@steinmetz.UUCP (jefu) (09/19/85)

Some questions on the mandelbrot set -- but not necessarily having anything
to do with it being a fiction.

The Sci. Am. article mentioned that there is an 'amazing theorem' that the
Mandelbrot set is connected.  I dont expect to be able to do this myself, 
but was wondering if anyone would like to sketch out the basic ideas for
the proof.

Is the complement of the set connected (im pretty sure that the 
answer to this one is yes, but again, wouldnt know how to prove it
without a (or many) hint)?

Is there some sort of minimal nice closed bounding curve for the set?
(nice meaning continuous and derivatives of all orders existing)
(minimal meaning minimum area in the curve, but not in the set) ?

Lacking the above, what would a minimum bounding convex polygon look like?
(That is, what are the extreme points)

What is the area of the set?  (I would guess that it is measurable.)

Has anyone tried looking at the 3-d surface generated by iterating the
process until the |z| > m (m not necessarily 2) and drawing this?



-- 
               O                      -- jefu
       tell me all about              -- UUCP: edison!steinmetz!putnam
Anna Livia! I want to hear all....    -- ARPA: putnam@kbsvax.decnet@GE-CRD

cjh@petsd.UUCP (Chris Henrich) (09/20/85)

[]
In article <273@steinmetz.UUCP> putnam@kbsvax.UUCP (jefu) writes:
>Some questions on the mandelbrot set -- but not necessarily having 
>anything to do with it being a fiction.
>
>The Sci. Am. article mentioned that there is an 'amazing theorem' 
>that the Mandelbrot set is connected.  I don't expect to be able to 
>do this myself, but was wondering if anyone would like to sketch out 
>the basic ideas for>the proof.

I have seen discussions of the proof.  Unfortunately the heavy
work on this circle of problems is mostly published in French.
And, needless to say, my references are not where my terminal
is.  A good starting point (with decent graphics) is an
article in the _Mathematical_Intelligencer_ , sometime in
1984, on "Julia" sets.  There is also a survey article in the
_Bulletin_of_the_American_Mathematical_Society_, also early
1984, on iteration and Julia sets.  Further references can be
tracked down there.

The connectedness theorem of Hubbard and Douady can be chased
down through a survey paper by Douady, in French of course, in
the French periodical _Asterisque_. (Exact citation is found
in the _Math_Intelligencer_ article.)  The proof is sketched
in a note in _Comptes_Rendus_.  The fact that it's in French
is not the only barrier to understanding it.  The math is
*heavy.*  The gist seems to be a frightfully ingenious
construction of an analytic function which maps the disc onto
the complement of the Mandelbrot set.  This implies that the
Mandelbrot set, and its complement, are both connected.
>
>Is the complement of the set connected (im pretty sure that the 
>answer to this one is yes, but again, wouldnt know how to prove it
>without a (or many) hint)?
>
>Is there some sort of minimal nice closed bounding curve for the set?
>(nice meaning continuous and derivatives of all orders existing)
>(minimal meaning minimum area in the curve, but not in the set) ?
Well, imagine you were packaging Mandelbrot sets for sale in
the corner drugstore.  You would probably enclose them in a
piece of plastic, to be mounted on a colorfully printed
cardboard backing.  Now, that plastic can be "shrink-wrapped"
to fit the Mandelbrot set.  The more you shrink the wrapper
to fit the Mandelbrot set, the less air is left in your
package, but the more irregular and wrinkly is the packaging.
How far you go is up to you.
>

Regards,
Chris

--
Full-Name:  Christopher J. Henrich
UUCP:       ..!(cornell | ariel | ukc | houxz)!vax135!petsd!cjh
US Mail:    MS 313; Perkin-Elmer; 106 Apple St; Tinton Falls, NJ 07724
Phone:      (201) 758-7288

jbuck@epicen.UUCP (Joe Buck) (09/25/85)

> From: cjh@petsd.UUCP (Chris Henrich)
> Date: 17 Sep 85 14:26:31 GMT
> 
>      By the way, I think that article was mistaken in stating
> that if the value of z ever got to where |z| > 2, it was sure
> to go to "infinity".  It is fairly easy to show that if
>           |z| > |c| + 1
> then the sequence will go to infinity.

I don't understand why you think discovering a different bound invalidates
the one given in Scientific American. To show the result given there, first
prove that the set is bounded by the circle |c| = 2. To show this, study
the sequence z'=z*z+c for |c|>2; it grows without bound since |c^2|=|c|^2
is at least 4 and c*2+c must have a strictly larger magnitude than c.

The slowest growth is when c is real and negative; in fact, it's not hard
to show that all real, negative c's in [-2,0] are in the set. It's only 
slightly trickier to see that no point on the positive real axis is in
the set (each term is at least c^2 greater in magnitude than the previous
term, so the sequence goes to infinity).

Next, assuming that |c|<2, it's straightforward to see that once |z|>2,
the sequence grows without bound.
-- 
Joe Buck				|  Entropic Processing, Inc.
UUCP: {ucbvax,ihnp4}!dual!epicen!jbuck  |  10011 N. Foothill Blvd.
ARPA: dual!epicen!jbuck@BERKELEY.ARPA   |  Cupertino, CA 95014

sinclair@aero.ARPA (William S. Sinclair) (09/28/85)

Dear Joe;

I'm the one that started this Mandelbrot discussion. The reason I wondered
about the reality of it is for certain numbers near the boundary, it is
near impossible on a finite machine to carry thru the iterations without
the error propagation overwhelming the result. Of course, there are isolated
cases where you can prove a number is within the set, and it is easy to
show that certain numbers are outside the set if the number of iterations is
small enough. The really tough ones are those that require more than 20 or so
iterations, becuase by then the error has complely swamped the result.

I did work out a way where you can generate a large number of numbers in the
set when given just a few--but that doesn't help establish whether a number
picked at random is in or out of the set. The way it works is: Suppose a number
c1 is in the set. Then the number c2=c1**2+c1 is also in the set, and likewise
the 2 roots of this equation:

c3**2+c3=c1

are also in the set. The same inference can be made for numbers NOT in the set.
This gives you a way, by induction, to get a very large number of numbers either
in or out of the set, by starting from one or two numbers. Play with this, see if
you agree. This is interesting, but doesn't help with the pixel map a whole 
lot.


                                   Bill Sinclair
 
 
P.S. To get a good idea, take a complex number like (-1/4,1/4) and do the
iterations using *exact* arithmetic. You'll see how quickly you need to
start rounding off the operations.

tet@uvaee.UUCP (Thomas E. Tkacik) (10/02/85)

>I'm the one that started this Mandelbrot discussion. The reason I wondered
>about the reality of it is for certain numbers near the boundary, it is
>near impossible on a finite machine to carry thru the iterations without
>the error propagation overwhelming the result. Of course, there are isolated
>cases where you can prove a number is within the set, and it is easy to
>show that certain numbers are outside the set if the number of iterations is
>small enough. The really tough ones are those that require more than 20 or so
>iterations, becuase by then the error has complely swamped the result.
>
I have written a program to generate Mandelbrot's set, and have used it
magnify some areas by a linear factor of about 100,000.  The results
have been spectacular.  It has been obvious by just looking at the resulting
pictures that roundoff errors have not completely swamped the results.
To be sure, there are probably a few mistaken points in the pictures,
but nothing extreme.
To generate these pictures, I had to increase the iterations in some of the
more extreme cases to 2048.  I did expect lots of roundoff errors, so I used
double precision (on a VAX that's 64 bits). 
>
>I did work out a way where you can generate a large number of numbers in the
>set when given just a few--but that doesn't help establish whether a number
>picked at random is in or out of the set. The way it works is: Suppose a number
>c1 is in the set. Then the number c2=c1**2+c1 is also in the set, and likewise
>
According to what you said above, this should also only work for the first
20 or so iterations before roundoff errors swamp the result.  This would not
generate many points, and would give points outside any region of intrest,
so I think we are stuck doing this one pixel at a time.
I agree that roundoff error will set a limit to what can be seen in the set,
but I think that is a limit that has not yet been reached,
(at least by me :-) .)

Has anyone else generated pictures with very high magnifications, and/or
many iterations.  I would like to hear of your results.
                                Tom Tkacik
      ...!decvax!mcnc!ncsu!uvacs!uvaee!tet

jr@bbncc5.UUCP (John Robinson) (10/07/85)

I am coming into this discussion late, so pardon me if this ground has
been covered already.

Naive analysis says that the roundoff error (assuming roundoff rather
than truncation is used) is never more than .5 times the least
significant bit's value.  For truncation, the error is bounded by 1.0
times the least significant bit (worst case).  The operation of
multiplication results in errored bits only in positions at or below
the least significant bit, and I think the magnitude is no greater.
Addition, however, can cause addition of the error at the least
significant bit.  So now the error magnitude doubles (worst case) for
each iteration.  So n bits or precision can be used up by errors in 2n
iterations worst case.  This seems to say that a 64-bit mantissa is
good for 128 iterations.

The real trouble, I think, comes in at the completion test.  It is a
comparison with a constant of infinite precision.  Any error anywhere
can cause the wrong answer.  So I guess the algorithm should keep
track of its worst-case error estimate and, for points where the end
test is within the error, mark the point as uncertain.  This would
probably make for far uglier pictures - everything would be colored
uncertain for most zooms.  But you still might get nice fringes from
"uncertain after 1 iteration", "uncertain after 2", etc.

I think there is probably a way to make the zoomed-in pictures less
sensitive to roundoff problems than a naive approach.  Suppose
(without loss of generality) that the lower left corner point can be
expressed with the smallest number of bits of precision in the
picture.  Then every other point can be found by computing the
difference at each iteration from the corner point.  The differences
will be near 0, at least at first, thus their error terms should grow
more slowly than if they had been represented in absolute coordinates
from the start.  I don't know if this increases the useful iteration
count by more than a few, however.  (color me lazy).

This technique could also be applied recursively as you zoom in.
Remember the sequence for each point (ugh! a lot of memory!).  When
zooming in, just copy the sequences for the points still in the
picture in the new magniification.  Use the difference technique from
the old points to fill in the new points.

Finally, this is how the entire picture should be generated.  First
use points (+- 2n, +- 2n). Then (+- n, +- n).  And so on, filling in
intermediate points up to the magnification of the initial picture.
At first, color squares of 2n with the first answers.  Then subdivide
them as the answers come in.  Could be fun in real time until it slows
down for the last few exponents.

Here at BBN, we have started generating Mandelbrot pictures using our
(ARPA's, really) Butterfly multiprocessor (128 M68000's).  Dewdney's
Mandelbrot algorithm is ideal for parallelizing, of course.  It
generates a 400x400 picture in something like 10 seconds.  Copying it
over an Ethernet to a Lisp Machine for display, unfortunately, takes
minutes.  I don't know the details of this, but I expect it can be
made zippier.  I will look into what has been done more, in case
anyone's interested (I am at least).

/jr

allan@alice.UucP (Allan Wilks) (10/09/85)

> ... to show that all real, negative c's in [-2,0] are in the set. It's only 
> slightly trickier to see that no point on the positive real axis is in
> the set (each term is at least c^2 greater in magnitude than the previous
> term, so the sequence goes to infinity).

The Mandelbrot set intersects the real axis in [-2,0.25].  0 is always
attracted to a fixed point for c in [-0.75,0.25].