Prev: Rational Number Square To Two Discovered. By Aiya-Oba
Next: Help sought: Does anyone recognize this series in physical systems?
From: I.N. Galidakis on 5 Jan 2010 17:57 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 5 Jan 2010 18:52 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 5 Jan 2010 19:27
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. |