> "Jim Muth" <jamth(a)mindspring.com> previously opined:
>
> > Unable to find any really good or bad features in the image for
> > today, I rated it at an average 5.
>
> After "Fractal Nonsense", which I think you also rated a 5, I don't put
much
> credance in your ratings Jim. That one, which showed a morphologically
> sextic midget in the main filament of a fractal with a quartic generator,
> showed something fundamental about Mandeloid generation and thus ought to
be
> ranked somewhere near the top of the scale regardless of whether your
> colorist's skills were in evidence that day or not.
>
> > The parent fractal was created by combining portions of
> > Z^(-1.95) and Z^(-5.91), then adding (1/C).
>
> Transforming the C part only in this kind of generator doesn't really
> generate a new fractal; it stretches the domain (the complex plane) so you
> get a distorted copy of what the fractal would look like if you used C
> instead. I think 1/C should give you an eversion with reflection across
the
> real axis. I'm not sure whether this class of fractals should be called
> mixes either. That would make me think that they had features similar to
> the fractals generated from the monomials in the sum. "Fractal Nonsense"
> showed that not to be always true.
>
> Also I believe you've used similar generating parameters for a series of
> FOTDs. There are some details of this that bother me though. A while
back
> you chided Sherlok Merfy for not initializing z on a critical point in one
> of his fractals. That would seem to imply that you value the concept of
> purposeful intent in fractal creation, rather than just randomly trying a
> lot of parameter combinations in hope of hitting something interesting.
In
> that instance I suppose you wanted Sherlok to understand how to apply the
> Fatou Theorem to generate a maximal set of fractal points. Which is
> commendable, and yet you've used the following deceptively simple formala
> and its brethren:
>
> > frm:MandelbrotMix2 {; Jim Muth
> > a=real(p1), b=imag(p1), d=real(p2), f=imag(p2),
> > g=1/f, h=1/d, j=1/(f-b), z=(((-a*b*g*h)^j)+(p4)),
> > k=real(p3)+1, l=imag(p3)+100, c=fn1(pixel):
> > z=k*((a*(z^b))+(d*(z^f)))+c,
> > |z| < l }
>
> many times. The initialization of z in the above appears to initialize z
on
> a particular critical point of the generator. But as I understand the
Fatou
> Theorem (please correct me if I'm wrong about this) it shows that every
> point which converges using a particular polynomial generator (rationals
> too?) for some initial z will converge for at least one z_init = a
critical
> point of the generating function. Emphatically not that it will converge
for
> any one of the critical points. So if you're trying to generate the full
> fractal as above, there is a problem. You didn't test the other critical
> points. In general, 0 will be one of them. The others will be the
complex
> roots of your first derivative equation (in your variable names) z^(f-b)
> = -a*b*g*h . They do matter, as shown below.
> Actually testing them all could be time consuming when f-b gets far away
> from being an integer: today's FOTD has an exponent difference of 3.96 =
> 99/25, so for n/(99/25) = integer the least value of n is 99 and it looks
to
> me like there are 100 critical points that need to be tested to get a
> maximal set of inside points. Otherwise you get a lot of perturbed set
> "eroded" boundaries. The fractals below illustrate the need to test all
> critical points; I've only used integer valued exponents so far but I see
no
> reason it doesn't apply to fractional power generators too.
>
> Also, you greatly overspecify the number of parameters in the generating
> formula. Notice that the expression
>
> z_1 = k*(a*z_0^b+d*z_0^f)+C can take a change of variable z = k1*w where
k1
> = (k*a)^(1/(1-b)) to normalize it to
>
> w_1 = w_0^b + k2*w_0^f + C/k1, where k2 is the constant
> k*d*(k*a)^((f-1)/(1-b))
>
> Anyway, these fractals use a trick to render the different inside areas
> different colors according to whether the point converges for the
"critical
> point of interest" or one of the other critical points but not the one of
> interest. Right before bailing out, the value of z is reset to a value
> that will be interpreted by the "inside=zmag" option as the desired color.
> I've found that this works well for the inside for things like viewing the
> intersection of two fractals to see if you can superimpose them. Does
> anyone know if there is a comparable way to do this for outside points?
> There isn't an "outside=zmag" option.
>
> In these fractals, the red regions converge for the "critical point of
> interest" while the yellow and purple regions converge for other critical
> points but not the one of interest. To make the formula work the
exponents
> have to be entered as a rational pair of integers, and the number of
> critical points (as well as which one (an integer) is the c.p.o.i.) have
to
> be entered manually, though it ought to be possible to improve this
> situation by having the formula calculate the number of cps.
>
> ==========PARS FOLLOW================
> AnOrder2sub2Mset { ; z->z^3+z^2+C, which has 2 critical points. Red
areas
> are
> ; points which converge for one c.p. Yellow areas
show
> ; where the other c.p. converges but the former one
> doesnt
> ; Fractint Version 2003 Patchlevel 1
> reset=2003 type=formula formulafile=fatouthm.frm
> formulaname=RatnlExpMandelO2 passes=1
> center-mag=-0.406646/1.0165e-005/1.041674/1/-90/3.88578058618804789e-016
> params=3/1/2/1/1/0/5/2/0/0 float=y inside=zmag periodicity=0;
> colors=(a)2col_ins.map
> colors=000zG0jz00ee<103>022022011<2>000000010<132>SwSSwSTxT<3>UzU000000
> }
>
> AnOrder2sub3_Mset { ; z->z^3+(0+1i)*z^5+C. Iterations starting from all 3
> ; critical points are necessary to generate the full
> set.
> ; Antisymmetry in the minibrots is interesting.
> ; Fractint Version 2003 Patchlevel 1
> reset=2003 type=formula formulafile=fatouthm.frm
> formulaname=RatnlExpMandelO2 passes=1
> center-mag=-1.905e-006/1.0165e-005/0.6666712
> params=3/1/5/1/0/1/10/3/0/0 float=y maxiter=1000 inside=zmag
> periodicity=0; colors=(a)3col_ins.map
>
colors=000zG0jz0c0w0ee<102>022022011<2>000000010<132>SwSSwSTxT<3>UzU0000\
> 00
> }
>
> ===========PARS END====================
> ===========FRM FOLLOWS================
> RatnlExpMandelO2{ ; normalized order 2 M-set with rational real exponents
> ; generator z -> z^A + k*z^B + C. p1=(A_num,A_denom) p_2=(B_num,B_denom)
> ; p3=k(complex) p4=(bailout-4,# crit pts) p5=(crit pt of interest(int),0)
> use
> ; inside=zmag,periodity=off.Ins cols: 1=cpoi converged >1=sequential
number
> of
> ; cp after cpoi which converged
> IF(isinit==0)
> ; 0 default proxies:
> bailout = real(p4) + 4
> p1 = trunc(p1), p2 = trunc(p2)
> IF(real(p1)==0), An = 3, ELSE, An = real(p1), ENDIF
> IF(imag(p1)==0), Ad = 1, ELSE, Ad = imag(p1), ENDIF
> IF(real(p2)==0), Bn = 2, ELSE, Bn = real(p2), ENDIF
> IF(imag(p2)==0), Bd = 1, ELSE, Bd = imag(p2), ENDIF
> ; end default proxies
> k = p3, A = An / Ad, B = Bn / Bd, cps = imag(p4), cpoi = real(p5)
> maxit = maxit
> diff = A - B
> angle = 2 * pi / diff ; angle to rotate critical points
> rfactor = cos(angle) + flip(sin(angle)) ; rotate by complex mult
> cpmod = ( -k*B / A ) ^ ( 1/diff ) ; real part only crit pt
> isnotdiff = 0, execseq = 0 ; flags
> IF(cpoi<0 || cpoi>=cps)
> isnotdiff = 1 ; flag to not do difference map
> execseq = 1 ; flag cp sequence 0 -> cpmod -> cpmod
multiples
> cpfirst = 0
> ELSEIF(cpoi == 0)
> execseq = 1
> cpfirst = 0
> ELSE ; ordinary cp sequence cpoi -> 0 -> cpoi multiples
> IF(cpoi == 1)
> cpfirst = cpmod
> ELSE
> angle1 = angle * (cpoi - 1)
> cpfirst = cpmod * ( cos(angle1) + flip(sin(angle1)) )
> ENDIF
> ENDIF
> isinit = 1
> ENDIF
> zp = cpcurr = cpfirst ; z proxy--inside z is used for rendering
> cpctr = 0, C = pixel, diverged = 0, iter = 1
> :
> iter = iter + 1
> IF(diverged) ; then go to next critical point
> cpctr = cpctr + 1 ; increment counter
> IF( (execseq==1 && cpctr>1) || (execseq==0 && cpctr>2) )
> zp = cpcurr = cpcurr * rfactor
> ELSEIF(execseq==1)
> zp = cpcurr = cpmod
> ELSEIF(cpctr==1)
> zp = cpcurr = 0
> ELSE
> zp = cpcurr = cpfirst * rfactor
> ENDIF
> ENDIF
> IF(cpctr<cps)
> zp = zp^A + k*zp^B + C
> diverged = ( |zp| > bailout )
> ENDIF
> z = zp ; for outside rendering
> IF(diverged==0 && iter==maxit) ; inside point: set z for zmag
rendering
> ins_col = cpctr + 1
> z = sqrt( (ins_col*2-1) / maxit )
> ENDIF
> cpctr<cps || diverged==0
> }
>
> ============FRM ENDS=====================
>
> Regards,
>
> Hiram
>
>