A few weeks ago Raymond posted a couple of fractals which quite amazingly looked like scaled copies of the M-set, using the generators z->F^4(z)+C, where F was functions acos or acosh. In Gerald's reply he brought up the possibility that this might be explained by a couple of mechanisms, either a change of variable in z like in the Bifstewart fractal or else by showing that the sequences for polynomial fractals can converge to the sequences of exponential fractals at large numbers of iteration. I find this quite interesting, especially since what we're seeing here is the treatment of an infinite sequence as a mathematical object in its own right, and viewing the fractals can be used as a method of "empirical math". Looking more closely at Raymond's fractal I did not find any deviation from the path-connected topology of the M-set. But, on closer examination I found that it wasn't exactly an affinely scaled version either. It looks on casual examination like it is, but there turn out to be some subtle distortions. For a while I looked for some obvious changes of variable in z to see if there was an easy way to interconvert the iteration sequences, but haven't found any yet. Here are a couple of images that illustrate this non-scaling (as Gerald pointed out, in complex math the difference between acos and acosh is due only to a constant factor 0+1i, so I only did the acos version): +++++++BEGIN .frm AND .par SET+++++++++++++++++++++++++++++++ RaysGenrtrW_acos1 { ; Shrink the M-set by factor of 4-- appears similar to ; Raymond Filiatreault's z->f^4(z)+C generator. A ; big difference is in the structure of the outside part: ; drapelike for the M-set, nodulelike for Ray's set. ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=scaling.frm formulaname=CompareRayfilMandl function=acos passes=1 center-mag=0.327278/1.0165e-005/1.11328 params=4/0/0/0/50000/0/0/0 float=y inside=zmag; colors=@2bitgold.map colors=eee000zC0j0zoN0<3>sd0ti0um0vr0ww0<9>wwbwwfwwj<3>wwz<219>wwz<4>wwz\ 000000 } RaysGenrtrW_acos2 { ; Aligning Raymond's set with a similar set of the M-set ; (make the 3-cusps of each main body align) shows that ; there is significant distortion not accounted for by ; translation+magnification only. ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=scaling.frm formulaname=CompareRayfilMandl function=acos passes=1 center-mag=0.852996/1.0165e-005/3.716086 params=4.215/0/-4.149/0/50000/0/0/0 float=y inside=zmag; colors=@2bitgold.map colors=eee000zC0j0zoN0<3>sd0ti0um0vr0ww0<9>wwbwwfwwj<3>wwz<219>wwz<4>wwz\ 000000 } CompareRayfilMandl{ ; compare C-scaled M-set with Raymond's generator ; initial conditions: p1 = A, p2 = B, real(p3) = bailout - 4 ; imag(p3) = extra iterations of z->z^2+C for scaled set (to see outside fx) ; inside colors:1=classic set only,2=scaled set only;3=both(use inside=zmag) IF(isinit==0) A = p1, B = p2 bailout = real(p3) + 4 extra = imag(p3) true = 1, false = 0 isinit = true ENDIF z = z_r = C_r = pixel, z_s = 0 C_s = A * pixel + B r_notdiv = s_notdiv = true : IF(r_notdiv) z = z_r = sqr(sqr(fn1(z_r))) + C_r r_notdiv = ( |z_r| <= bailout ) ENDIF IF(s_notdiv) z = z_s = sqr(z_s) + C_s IF(extra>=1) z = z_s = sqr(z_s) + C_s ENDIF IF(extra>=2) z = z_s = sqr(z_s) + C_s ENDIF IF(extra>=3) z = z_s = sqr(z_s) + C_s ENDIF IF(extra>=4) z = z_s = sqr(z_s) + C_s ENDIF IF(extra>=5) z = z_s = sqr(z_s) + C_s ENDIF s_notdiv = ( |z_s| <= bailout ) ENDIF ins_col = r_notdiv + 2 * s_notdiv IF(ins_col) z = sqrt( (ins_col*2-1) / maxit ) ENDIF ins_col } ++++++++++++++END INTERSECTION FRACTALS+++++++++++++++++++++++++ Raymond asked "why" the other M-set analogs exist. I think this is an extremely important question. If we can extend the sequential processes that happen on the M-set to continuous processes, and then find this homeomorphism to the other generator, it may be possible to use this observation to solve the continuous process (eg. family of differential equations) in the new space. Of course that is just nebulous speculation at this point, but it is a hopeful reason for investigating the occurence of these "doubles" of the M-set. I can't answer Raymond's question quantitatively at this point, but I may have stumbled upon a qualitative answer. Thinking about the generator for the M-set, one might visualize separating the "z^2" nonlinear part and the "+C" part. The latter is just a translation on the complex plane, while the first part is most definitely a curve. I conceptually think of it like two mirrors facing each other with light rays reflecting between them; one mirror is flat(the +C part) while the other one is curved in some way. We look for trajectories in this system the form a closed series of bounces or else a bounded chaotic family of paths-- those are the inside points (I know this is not a quantitatively accurate analogy, but it explains the general behavior of the system). So it occurred to me that if the curved part of two processes (the generating function without the "+C" part) had morphologically the same kind of curvature around their respective critical points for a great enough neighborhood around the points, even though numerically the derivatives were not exactly the same, it should be possible to morph one fractal into the other while preserving the path-connectedness. Now, looking even at the simple function F(z)=z^2 presents a problem: how to physically view a complex result of an operation on a complex variable over the range of part of the complex plane? I dimly remember seeing a quote somewhere from Piet Mondrian, where he claimed that some of his paintings showed geometrical relationships in 4 dimensions. At the time I puzzled over this and did not understand what he meant relative to the paintings in question. Now, after messing with fractals some, I think I understand. It's quite possible to do this on a 2 dimensional surface (screen or canvass) _if_ it's allowable to use color information for the other two (real) dimensions. Equivalently, we can use the screen coordinates for one complex dimension and two color channels for the other complex dimension. We do something equivalent all the time in 3 dimensions when we render a bump map with shading to simulate the height. In fractint it seems to be a bit tricky to create a palette that will separate the real and imaginary parts into two different color channels (and to meaningfully define the color channels so the "double projection" from the screen is understandable to the viewer), but I think I was able to acheive this at least minimally in the following. I proceed from the spherical color-space model that I recall Kai Krause mentioning in the liner notes of some old software-- the surface of the sphere contains the equivalent of fully saturated color where antipodes of any point on the sphere contain complementary colors. Black, white, C,M,Y,R,G and B occur on that surface at points with octahedral symmetry; I take the poles to be black and white, define the real axis on that surface as the meridian (neg) black--red--pink--white (pos), then define the imaginary axis as the curve as far as possible from this, ie. the equatorial semicircle colors (neg) Chartreuse--GreenTeal--BlueTeal--Purple (pos), and finally put this together as a 15x15 section in the upper part of a palette (the fractal uses outside=summ to send the integer values out to be interpreted by the palette). That probably isn't a completely clear explanation, for which I apologize in advance, but the conclusion is that we _can_ look at the curvature of the generator functions and compare them using color dimensions. The astounding result is that z^2 in the immediate neighborhood of z=0 and acos^4(z) in the neighborhood of z=1 are morphologically the same! If neighborhood is made too large, that relation fails, but as we know only the z within |z| < 2 are important for determining M-set points, and that is well within the safe zone. To wit(these are not fractals, but they show how to use fractint as a primitive function viewer in 4 visual dimensions) : ++++++++++++++++BEGIN PARS and FRM+++++++++++++++++++++++++++++++++++++++++++++ pixel_squared { ; Graph of pixel value (complex form) squared ; Fractint Version 2003 Patchlevel 1 ; ; ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=fxngraph.frm formulaname=sqr_pixel passes=1 center-mag=3e-008/1.9105e-005/0.2880188 params=1/0 float=y maxiter=2000 inside=0 outside=summ periodicity=0; colors=@complex2.map colors=00000ezWW77bWz0<3>7zP0zW0u`<3>0at0Wy6Qy<3>W0z000JV2Wz0zFF0kjzzzgW\ uW0zC00<7>K_3Lc3Mh4<2>Pu5Qz6P00<7>N_6Mc7Mh8<3>KzC`00<7>O_AMcCKhD<3>DzJm0\ 0<7>Q_ENcGKhH<3>7zPz00<7>R_INcKIhM<3>0zWz55<7>RZNNbPIeR<3>0u`zAA<7>RYSN`\ UIcW<3>0pezFF<7>RXXN_ZIa`<3>0kjzLL<7>RXaNZcI_f<3>0fozQQ<7>RWfNXhIYk<3>0a\ tzWW<7>RWlNWnIWp<3>0Wyzaa<7>VWnRVpNUr<3>6Qyzgg<7>YVqVTrRRs<3>CKyzmm<7>aT\ sZRtWOu<3>JDyzss<7>eSvbPv_Lw<3>P7y000000 } acos^4 { ; A circuit around the point pixel=1 on the surface varies ; the function morphologically the same as pixel^2 if its ; "radius" is close enough to that point.Same phase too. ; Fractint Version 2003 Patchlevel 1 ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=fxngraph.frm formulaname=fxn_pixel function=acos/sqr/sqr/ident passes=1 center-mag=1.12186/-1.77636e-015/0.3474719 params=0.5/0 float=y maxiter=1000 outside=summ colors=00000ezWW77bWz0<3>7zP0zW0u`<3>0at0Wy6Qy<3>W0z000JV2Wz0zFF0kjzzzgW\ uW0zC00<6>JW3K_3Lc3<3>Pu5Qz6P00<4>ON4OR5NW5N_6<3>LqALvBKzC`00<5>RR8QW9O_\ A<3>HqGFvIDzJm00<7>Q_ENcGKhH<3>7zPz00<7>R_INcKIhM<3>0zWz55<7>RZNNbPIeR<3\
0u`zAA<7>RYSN`UIcW<3>0pezFF<5>_TTWVVRXX<3>9fe5ih0kjzLL<6>WW_RXaNZc<3>5d\ m0fozQQ<4>dU`_VbWVd<3>EZm9_p5`r0atzWW<7>RWlNWnIWp<3>0Wyzaa<3>jZhfYibYk<3\ NUrJTtFSvARw6Qyzgg<7>YVqVTrRRs<3>CKyzmm<4>j`qgYrdWr<3>TLvQJwMGxJDyzss<6\ hWveSvbPv<4>P7y000000 }
acosh^4 { ; Morphologically the same as acos^4 and pixel^2 for small ; enough distance from the f(pixel)=0 point. If the ; distance becomes too great the color order isnt the same ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=fxngraph.frm formulaname=fxn_pixel function=acosh/sqr/sqr/ident passes=1 center-mag=-4.11534/-4.44089e-015/0.1473281 params=0.5/0 float=y maxiter=1000 outside=summ; colors=@complex2.map colors=00000ezWW77bWz0<3>7zP0zW0u`<3>0at0Wy6Qy<3>W0z000JV2Wz0zFF0kjzzzgW\ uW0zC00<7>K_3Lc3Mh4<2>Pu5Qz6P00<7>N_6Mc7Mh8<3>KzC`00<7>O_AMcCKhD<3>DzJm0\ 0<7>Q_ENcGKhH<3>7zPz00<7>R_INcKIhM<3>0zWz55<7>RZNNbPIeR<3>0u`zAA<7>RYSN`\ UIcW<3>0pezFF<7>RXXN_ZIa`<3>0kjzLL<7>RXaNZcI_f<3>0fozQQ<7>RWfNXhIYk<3>0a\ tzWW<7>RWlNWnIWp<3>0Wyzaa<7>VWnRVpNUr<3>6Qyzgg<7>YVqVTrRRs<3>CKyzmm<7>aT\ sZRtWOu<3>JDyzss<7>eSvbPv_Lw<3>P7y000000 } sqr_pixel{ ; use a complex rendering palette (+-3bit centered on color 141) ; colors 21..28 indicate overflow||underflow in @least one of imag,real ; outside z = sqr(pixel) * factor , p1 = factor, outside = summ, maxit>255 maxit = maxit ; force f.p. IF(real(p1)==0 && imag(p1)==0) ; default coefficient 1 p1 = (1,0) ENDIF z = p1 * sqr(pixel) ; extend: replace with function of z to be graphed z = round(z) ; closest integer r&i components IF(real(z)<-7),r_stat=0,ELSEIF(real(z)>7),r_stat=6,ELSE,r_stat=3,ENDIF IF(imag(z)<-7),i_stat=0,ELSEIF(imag(z)>7),i_stat=2,ELSE,i_stat=1,ENDIF status = r_stat + i_stat IF(status != 4) ; overflow||underflow occurred IF(status<4) ; no middle color in the 3x3 array of o/u colors status = status + 1 ENDIF z = 20 + status - 0.5 ; colors 21..28 ELSE ; ordinary plottable zone of the 225 colors z = 29 + (real(z)+7) * 15 + (imag(z)+7) - 0.5 ; place on rendering palette ENDIF : 1==0 } fxn_pixel{ ;use a complex rendering palette to view fn4(fn3(fn2(fn1(pixel)))) ;outside=summ,maxit>255,for Rayfil generator use fns=(acos,sqr,sqr,ident) maxit = maxit IF(real(p1)==0 && imag(p1)==0) p1 = (1,0) ENDIF z = p1 * fn4(fn3(fn2(fn1(pixel)))) z = round(z) IF(real(z)<-7),r_stat=0,ELSEIF(real(z)>7),r_stat=6,ELSE,r_stat=3,ENDIF IF(imag(z)<-7),i_stat=0,ELSEIF(imag(z)>7),i_stat=2,ELSE,i_stat=1,ENDIF status = r_stat + i_stat IF(status != 4) ; overflow||underflow occurred IF(status<4) ; no middle color in the 3x3 array of o/u colors status = status + 1 ENDIF z = 20 + status - 0.5 ; colors 21..28 ELSE ; ordinary plottable zone of the 225 colors z = 29 + (real(z)+7) * 15 + (imag(z)+7) - 0.5 ENDIF : 1==0 } ++++++++++++++++++END FRM and PARS FOR FUNCTION VIEWER+++++++++++++++++ So amazingly, even though the far field morphology of the functions are different, in an acceptably small neighborhood of the critical points they are the same! And, the phase (the color trend along the positive real axis) is the same too, so qualitatively the "angle of the flat mirror" in my 2-mirrors analogy is equivalent as well. Notice however that there is significant distortion as you proceed angularly around the complex plane-- much compression by the time we get to the negative real direction in the acos curve relative to the sqr curve. That at least rationalizes the evident distortion seen earlier in the intersection fractal. Regards, Hiram