From: I.N. Galidakis on
Danny73 wrote:
> On Jan 5, 3:50 pm, "I.N. Galidakis" <morph...(a)olympus.mons> wrote:
>> mike3 wrote:
>>> Hi.
>>
>>> I was wondering: Is there any way at all to draw the Julia set for the
>>> complex exponential exp(z) to high resolution? Note that if one
>>> affixes a small finite "bailout", the resulting plot is very "bubby",
>>> and doesn't show much structure. The actual Julia set is a collection
>>> of infinitely thin hairs or something, I think. Of course one can't
>>> draw all that on a computer due to the monitor's resolution, but is
>>> there some method to get up to that limit at least? The trouble seems
>>> to be that direct iteration leads to very fast growth. Very fast
>>> growth = overflow. One idea I thought of was using a "power tower" to
>>> represent humongous numbers, but how the heck would you find sin
>>> (2^2^2^2^2^2) or something?! So that doesn't seem to be useful.
>>
>> Didn't we have this discussion before? Do you remember what I told you?
>>
>> The "hairs" are a computer artifact of all "Cantor Bouquet" type fractals.
>> They
>> are infinitely thin, so they accumulate at certain points of the fractal and
>> form "bubbles" or "fingers". You can only "resolve" them further by
>> increasing
>> the bailout value.
>>
>> Increasing the bailout value doesn't solve the resolution problem completely,
>> however. The hairs will accumulate somewhere else, lower on the fractal,
>> because
>> in certain areas they are infinitely close to each other and eventually this
>> will beat your resolution.
>>
>> Apropos of all the above, you really don't need very high bailout or
>> iteration
>> values to see the exp fractal. Here are some results with Maple for the
>> following code:
>>
>>> EF:=proc(x,y)
>>> local m,z;
>>> z:=evalf(x+y*I);
>>> m:=0;
>>> to 100 while abs(z)<1e10 do #100 is the iterations, 1e10 is the bailout
>>> z:=exp(z);
>>> m:=m+1;
>>> od;
>>> m;
>>> end:
>>> plot3d(EF, -4..4, -4..4, grid=[300,300], shading=ZHUE,scaling=CONSTRAINED,
>>
>> style=PATCHNOGRID, orientation=[0,0], axes=BOX);
>>
>> Maple V rel 4:
>>
>> (iterations=100,
>> bailout=1e10)http://misc.virtualcomposer2000.com/expMand100.gif
>>
>> (iterations=500,
>> bailout=1e10)http://misc.virtualcomposer2000.com/expMand500.gif
>>
>> and the same code on Maple 9 with the largest bailout for conventional
>> arithmetic:
>>
>> (iterations=100,
>> bailout=1e18)http://misc.virtualcomposer2000.com/expMandLargeBail.gif
>>
>> Note how the hairs have receded somewhat more on the last fractal. That's
>> about
>> the best that can be done using 18 digits of precision. If your program
>> allows
>> for a larger number of digits, then the hairs will split/recede even further,
>> but at some point they will still form unresolvable "fingers".
>> --
>> Ioannis
>
> Great graphics Ioannis.

Thanks :-)

> What is the final resolution for each side of the 8 length square
> of your last graphic?

Theoretically, it should be Length/GridSize = 8/300, as per the Maple command
"plot3d".

> Is the unresolvable "fingers" because of pixel resolution or
> because of digit precision problems of both?

The pixel resolution is fine and is as above (8/300). The "fingers" are because
of digit limitations. The size of the fingers on the last fractal is dependent
on the bailout value of 1e18. If this is set higher, the "fingers" will get
thinner as more points escape, but they will never become infinitely thin.

Think of it as follows: You get a bunch of very thin hairs flowing in the wind.
If you tie them with a knot as with regular hair, eventually you will get a
dense "pony-tail". Those fingers are actually "pony-tails", which at some point
"separate" into their actual components, which in turn separate more, etc.,
depending on the local resolution.

Had the bailout been set to a very large value, one'd see essentially no hairs
at all, as the hairs would become thinner than computer pixels.

> Dan
--
Ioannis

From: mike3 on
On Jan 5, 1:50 pm, "I.N. Galidakis" <morph...(a)olympus.mons> wrote:
> mike3 wrote:
> > Hi.
>
> > I was wondering: Is there any way at all to draw the Julia set for the
> > complex exponential exp(z) to high resolution? Note that if one
> > affixes a small finite "bailout", the resulting plot is very "bubby",
> > and doesn't show much structure. The actual Julia set is a collection
> > of infinitely thin hairs or something, I think. Of course one can't
> > draw all that on a computer due to the monitor's resolution, but is
> > there some method to get up to that limit at least? The trouble seems
> > to be that direct iteration leads to very fast growth. Very fast
> > growth = overflow. One idea I thought of was using a "power tower" to
> > represent humongous numbers, but how the heck would you find sin
> > (2^2^2^2^2^2) or something?! So that doesn't seem to be useful.
>
> Didn't we have this discussion before? Do you remember what I told you?
>

Uh, I don't really remember, I think there may have something but it
was a long
time ago so I'm not sure.

> The "hairs" are a computer artifact of all "Cantor Bouquet" type fractals.. They
> are infinitely thin, so they accumulate at certain points of the fractal and
> form "bubbles" or "fingers". You can only "resolve" them further by increasing
> the bailout value.
>

Isn't that a little backwards? The "hairs" are the true structure, the
"fingers"
are the artifact of the approximation.

> Increasing the bailout value doesn't solve the resolution problem completely,
> however. The hairs will accumulate somewhere else, lower on the fractal, because
> in certain areas they are infinitely close to each other and eventually this
> will beat your resolution.
>

I suppose, however one often is not interested in the far right side
of the
fractal, but the "busy" bit. If the size of the fingers visible there
can be
reduced to 1 pixel, then the graph should be sufficiently "accurate".
Though
I suppose there'd be a whole lot of aliasing going on, but it's an
interesting
experiment.

> Apropos of all the above, you really don't need very high bailout or iteration
> values to see the exp fractal. Here are some results with Maple for the
> following code:
>
> > EF:=proc(x,y)
> > local m,z;
> > z:=evalf(x+y*I);
> > m:=0;
> > to 100 while abs(z)<1e10 do #100 is the iterations, 1e10 is the bailout
> >  z:=exp(z);
> >  m:=m+1;
> > od;
> > m;
> > end:
> > plot3d(EF, -4..4, -4..4, grid=[300,300], shading=ZHUE,scaling=CONSTRAINED,
>
> style=PATCHNOGRID, orientation=[0,0], axes=BOX);
>
> Maple V rel 4:
>
> (iterations=100, bailout=1e10)http://misc.virtualcomposer2000.com/expMand100.gif
>
> (iterations=500, bailout=1e10)http://misc.virtualcomposer2000.com/expMand500.gif
>
> and the same code on Maple 9 with the largest bailout for conventional
> arithmetic:
>
> (iterations=100, bailout=1e18)http://misc.virtualcomposer2000.com/expMandLargeBail.gif
>
> Note how the hairs have receded somewhat more on the last fractal. That's about
> the best that can be done using 18 digits of precision. If your program allows
> for a larger number of digits, then the hairs will split/recede even further,
> but at some point they will still form unresolvable "fingers".

But I thought floating point has a higher dynamic range. I tried this
once using
the computer's in-built double precision math, interpreting overflow
("nan", etc.)
magnitude as bailout, and also magnitude greater than 1e+100, and I
got a plot that
seemed to make sense (it didn't have any weird discontinuities or
anything). So
it seems one can get more detail without needing more precision, just
more dynamic
range.
From: mike3 on
On Jan 5, 4:52 pm, mike3 <mike4...(a)yahoo.com> wrote:
<snip>

I played around with this some more, and it would seem that such
a thing would likely just look like fuzz ("static") due to all the
aliasing. If, however, it could be shaded in some way as to make
everything look smooth, so the fingers appear to blend together
instead of having sharp boundaries, I guess that would create a
more sensible view.