home *** CD-ROM | disk | FTP | other *** search
/ ftp.xmission.com / 2014.06.ftp.xmission.com.tar / ftp.xmission.com / pub / lists / fractint / archive / v01.n570 < prev    next >
Internet Message Format  |  2001-06-08  |  61KB

  1. From: owner-fractint-digest@lists.xmission.com (fractint-digest)
  2. To: fractint-digest@lists.xmission.com
  3. Subject: fractint-digest V1 #570
  4. Reply-To: fractint-digest
  5. Sender: owner-fractint-digest@lists.xmission.com
  6. Errors-To: owner-fractint-digest@lists.xmission.com
  7. Precedence: bulk
  8.  
  9.  
  10. fractint-digest          Friday, June 8 2001          Volume 01 : Number 570
  11.  
  12.  
  13.  
  14.  
  15. ----------------------------------------------------------------------
  16.  
  17. Date: Fri, 08 Jun 2001 07:25:49 +0000
  18. From: "Thierry B." <oulala@chez.com>
  19. Subject: Re: (fractint) Some intriguing stuff.
  20.  
  21. > These formulas make it possible to investigate the escape behavior of t=
  22. he Henon map:
  23. =20
  24. > x -> a - by + x^2
  25. > y -> x
  26.  
  27.     I've also a few research on the mappin of H=E9non diagram.
  28.     http://la.buvette.org/fractales/map_henon.euh
  29.     Sorry, this is only a Fortran source, but I can write some
  30.     explanation in english this weekend.
  31.  
  32. =20
  33. - --=20
  34. Thierry, 42++
  35.  
  36. - --------------------------------------------------------------
  37. Thanks for using Fractint, The Fractals and Fractint Discussion List
  38. Post Message:   fractint@lists.xmission.com
  39. Get Commands:   majordomo@lists.xmission.com "help"
  40. Administrator:  twegner@fractint.org
  41. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractint"
  42.  
  43. ------------------------------
  44.  
  45. Date: Fri, 08 Jun 2001 09:57:44 +0200
  46. From: Guy Marson <guy.marson@mnhn.lu>
  47. Subject: Re: (fractint) Some intriguing stuff.
  48.  
  49. At 07:25 08/06/01 +0000, you wrote:
  50. >> These formulas make it possible to investigate the escape behavior of
  51. the Henon map:
  52. >=20
  53. >> x -> a - by + x^2
  54. >> y -> x
  55. >
  56. >    I've also a few research on the mappin of H=E9non diagram.
  57. >    http://la.buvette.org/fractales/map_henon.euh
  58. >    Sorry, this is only a Fortran source, but I can write some
  59. >    explanation in english this weekend.
  60.  
  61.  
  62. mais pas dans la buvette, avec des Jupiler s.v.p. (hickkk..)=20
  63.  
  64. >
  65. >=20
  66. >--=20
  67. >Thierry, 42++
  68. >
  69.  
  70. cheers,=20
  71.  
  72. guy 47+
  73.  
  74.  
  75.  
  76.  
  77.  
  78. - --------------------------------------------------------------
  79. Thanks for using Fractint, The Fractals and Fractint Discussion List
  80. Post Message:   fractint@lists.xmission.com
  81. Get Commands:   majordomo@lists.xmission.com "help"
  82. Administrator:  twegner@fractint.org
  83. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractint"
  84.  
  85. ------------------------------
  86.  
  87. Date: Fri, 8 Jun 2001 09:15:51 EDT
  88. From: JimMuth@aol.com
  89. Subject: (fractint) C-FOTD  08-06-01  (Too Much Fractal [7])
  90.  
  91. Classic FOTD -- June 08, 2001 (Rating 7)
  92.  
  93. Fractal visionaries and enthusiasts:
  94.  
  95. It seems strange to denigrate a fractal with a rating two points 
  96. above average, but that's what I feel I must do with today's 
  97. image.
  98.  
  99. Sometimes, even in the world of fractals, it's possible to have 
  100. too much of a good thing.  Today's image is an example of such 
  101. fractal excess.  The image simply goes too far with too little.  
  102. The midget at the center is too small to act as a center of 
  103. attention, leaving the surrounding decorations with nothing to 
  104. decorate.  And the color is excessive.  Vibrant color can be 
  105. spectacular when it is done properly.  When it's not done right, 
  106. the result is boring gaudiness.  Today's image just doesn't give 
  107. me that "this color is right" feeling.
  108.  
  109. Oh, the scene has a surface glitter that brings its rating up to 
  110. a 7, but it lacks the depth that could bring a rating of 8 or 9. 
  111. I named the image "Too Much Fractal" in response to my feelings 
  112. about it.
  113.  
  114. Today's scene lies in another valley, directly across the bay 
  115. from yesterday's, though it is some distance back from the 
  116. shoreline, and at a considerable greater depth.  It is actually 
  117. located at the center of a figure-8 ring, which the area is 
  118. filled with.
  119.  
  120. The 4-1/2 minute render time is marginal, making it the viewers 
  121. choice whether to go online and download the GIF image from:
  122.  
  123.           <http://home.att.net/~Paul.N.Lee/FotD/FotD.html>
  124.  
  125. or from:
  126.  
  127.           <http://sdboyd.dyndns.org/~sdboyd/fotd/index.html>
  128.  
  129. The fractal weather today started with rain, but the rain ended 
  130. in mid-morning, and the sun returned in mid-afternoon, sending 
  131. the temperature up to 75F (24C).  The fractal cats celebrated by 
  132. venturing cautiously into the still-wet grass.
  133.  
  134. It's now time to get busy on other things, so until next time, 
  135. take care and check the fractal on the cover of the latest issue 
  136. of "Skeptic" magazine.
  137.  
  138.  
  139. Jim Muth
  140. jamth@mindspring.com
  141.  
  142.  
  143. START 20.0 PAR-FORMULA FILE================================
  144.  
  145. Too_Much_Fractal   { ; time=0:04:25.66--SF5 on a P200
  146.   reset=2001 type=formula formulafile=allinone.frm
  147.   formulaname=MandelbrotMix4 function=recip passes=b
  148.   center-mag=+10.09705566264443000/-15.5438271495980\
  149.   4000/1.007928e+011/1/166.953/-0.502
  150.   params=-0.6/-1.3/-0.006/-3/0/1000 float=y
  151.   maxiter=1500 inside=255 logmap=133 periodicity=10
  152.   colors=0800DL0DL0DO0DR0DU0DX0D_0Db0De0Dh0Dk0Dn0Dq6\
  153.   FtGGwPDzZIzhQzrXzzdzzlzztzzwzwzwYjlnZrzQyzGzZIf0IN\
  154.   0QW0V`0bf0hl0pt0vz0wz1wz1wz8wzGwzNrzWjzbbzjVzrOzzG\
  155.   zzDzzDzzDzzDzzDzzDvzDnzDfyD`tDUpGLlIGhM8dO1`R0YT0W\
  156.   V0ZX0bX0dX0hX0jX0nX1rX4tX8yXAzXEzXHzXJzwJzwPywUvwY\
  157.   tw`vwYywWywRzwPzwLzwJzwGzwEzwCzwGzwHztJzpNzjPzdRz`\
  158.   WzVYzQZzM`zOdzQfzRjzTlzVnzXrzZtz`yzbzzbzzfzzhzzlzz\
  159.   nzzrzztzzwzzwzlnzWbnETZ0IL0D80F40I14M0EQ0LT0UX0bb0\
  160.   jf0rj0zn0zr0zv0zt0zr0zp0zp0z`0jO0PD06D0ED0JD0RD2YG\
  161.   6dMAjQErVHyZLzbNvfPphPhlRbnRYrRPtUJwUEwU6wW1wW0wW0\
  162.   rN0bG0O80T00Z00d00j00n00r00v06w0Cw0Jw0Rw0Yw0dw0lw0\
  163.   rw0fw4YwUNwrEwzCwzCwzCvzCtzArzApzAnzAlzAlzHvzNwzWw\
  164.   z`wzfwzbwz`wzZwzWnzUdzRVzYRzbOzfKzlGzpDtvDpzDjzDdz\
  165.   DZzDUzDNzDJzDLzDNrIPfTRWbULlWAvY0wZ0w`0wb0wb0wW2wN\
  166.   JfH`OApD4rD4tD6vD6CwfGwdHwbLwZNwYRwWUwUZwWdwYhwZnw\
  167.   `rwbywdzwflwnYwtHwz2wz0D0
  168.   }
  169.  
  170. frm:MandelbrotMix4 {; Jim Muth
  171. a=real(p1), b=imag(p1), d=real(p2), f=imag(p2),
  172. g=1/f, h=1/d, j=1/(f-b), z=(-a*b*g*h)^j,
  173. k=real(p3)+1, l=imag(p3)+100, c=fn1(pixel):
  174. z=k*((a*(z^b))+(d*(z^f)))+c,
  175. |z| < l
  176. }
  177.  
  178. END 20.0 PAR-FORMULA FILE==================================
  179.  
  180. - --------------------------------------------------------------
  181. Thanks for using Fractint, The Fractals and Fractint Discussion List
  182. Post Message:   fractint@lists.xmission.com
  183. Get Commands:   majordomo@lists.xmission.com "help"
  184. Administrator:  twegner@fractint.org
  185. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractint"
  186.  
  187. ------------------------------
  188.  
  189. Date: Fri, 8 Jun 2001 21:29:56 -0400
  190. From: "Multiple Bogeys" <neo_1061@hotmail.com>
  191. Subject: (fractint) Hairy Newton
  192.  
  193. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0
  194. Content-Type: text/plain; charset="iso-8859-1"
  195. Content-Transfer-Encoding: quoted-printable
  196.  
  197. Yesterday evening I set out to find an interesting family of Newton-based=
  198.  Mandelbrot mappings. The result was the collection of formulae below.
  199.  
  200. You'll note the lack of 3D disease -- false alarm. All my posts to anothe=
  201. r listserv had it, but I now think it must be that listserv rather than M=
  202. SN Exploder. Or rather, some interaction between the two (since some post=
  203. s from that listserv don't have it), like the weird "email laser" that ha=
  204. ppened with this listserv last week (lots of peoples' messages were being=
  205.  duplicated, but for some reason mine were showing up in sets of five or =
  206. six!)...Anyone who's an expert on listservs care to speculate further on =
  207. what might be going on? One thing is clear: recent mail software and list=
  208. servs have unnecessary complexity, and while we like complexity in our fr=
  209. actals, we could do without chaos erupting in the mail system we depend o=
  210. n to communicate here...
  211.  
  212. The hrynewt_j and hrynewt_m formulae iterate Newton's method for p(z) =3D=
  213.  (z^n - 1)(z^3 - az - 1). Both n and a are parameters, as is the toleranc=
  214. e, an inverse bailout radius about the roots of p. The Mandelbrot variant=
  215.  has a vary over the screen while initial z is zero; this is a critical p=
  216. oint but not a root of p for n real and greater than 2. You can plug in o=
  217. ther values of n -- arbitrary negative or even complex values -- but won'=
  218. t generally be able to find minibrots unless n has a positive real part g=
  219. reater than two. If n is not an integer, there will be branch cuts in bot=
  220. h the Mandelbrot and the Julia variants.
  221.  
  222. The hrynewtnnn_j and _m formulae are optimized versions with specific val=
  223. ues for n, mostly small positive integers. They avoid a slow arbitrary ex=
  224. ponentiation, and for the smaller values of n re-use powers that are used=
  225.  on both sides of the polynomial or its derivative. The hrynewt2_m formul=
  226. a also has the feature of using a critical point for initial z, instead o=
  227. f zero (which is *not* a critical point for n =3D 2). The result is a pro=
  228. per Mandelbrot view, but it has a branch cut due to a square root in the =
  229. calculation of the critical point, which is a-dependent. The branch cut h=
  230. as been intentionally manipulated to put it in a fairly unobtrusive place=
  231. , but can't be eliminated; the full Mandelbrot for this one lives on a tw=
  232. o-layer Riemann sheet like that of the square root function.
  233.  
  234. The hrynewtnnn_m formulae also use an (XAXIS) symmetry declaration. (The =
  235. generic hrynewt_m can't use this without trashing the output for non-real=
  236.  values of n.)
  237.  
  238. Observations:
  239. * Certain choices of n produce three-fold-symmetric Mandelbrot sets. Find=
  240.  out which!
  241. * Mangled and occasionally also intact Mandelbrots can be extracted when =
  242. n is "strange" but has a real part greater than 2.
  243. * You get radial petals with n real, concentric patterns with n imaginary=
  244. , and logarithmic spirals with complex n; the ratio of
  245.    real to imaginary parts determines whether the spiral is steep (n clos=
  246. e to real) or shallow (n close to imaginary).
  247. * The Mandelbrots are always quadratic -- for real n > 2, the critical po=
  248. int at zero is nondegenerate, and the critical point
  249.    pair for hrynewt2_m is degenerate only at one specific value of a.
  250.  
  251. The formula file begins with an extensive comment that details the mathem=
  252. atical constructions that informed their design.
  253.  
  254. comment {
  255.   We want a Newton's method with a large number of basins, most of which =
  256. are fixed and predictable.
  257.   This is accomplished by choosing a polynomial function to solve compose=
  258. d of two factors, one with many fixed roots,
  259.   the other with a few mobile ones:
  260.   p(z) =3D (z^n-1)(z^3-az-1).
  261.   The Newton iteration is:
  262.   z -> r(z)
  263.   where
  264.   r(z) =3D z - p(z)/p'(z)
  265.        =3D (zp'(z) - p(z))/p'(z)
  266.   We easily discover p'(z) to be
  267.   p'(z) =3D (z^n-1)(3z^2-a) + (nz^(n-1))(z^3-az-1)
  268.         =3D (3+n)z^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a
  269.   so
  270.   (zp'(z) - p(z)) =3D (z^n-1)(3z^3-az)+(nz^n)(z^3-az-1) - (z^n-1)(z^3-az-=
  271. 1)
  272.                   =3D (z^n-1)(2z^3+1)+(nz^n)(z^3-az-1)
  273.                   =3D (2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1
  274.   and
  275.   r(z) =3D ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)/((3+n)z^(n+2)=
  276.  - a(n+1)z^n - nz^(n-1) - 3z^2 + a)
  277.   Using the quotient rule the numerator of r'(z) is
  278.   ((3+n)z^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a)((n+2)(n+3)z^(n+2) - an=
  279. (n+1)z^n - n(n-1)z^(n-1) - 6z^2) -
  280.     ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)((n+2)(n+3)z^(n+1) - =
  281. an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  282.   which factors into
  283.   ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  284.   and
  285.   ((3+n)z^(n+3) - a(n+1)z^(n+1) - nz^n - 3z^3 + az) - ((2+n)z^(n+3) - anz=
  286. ^(n+1) - (n-1)z^n - 2z^3 - 1)
  287.   which simplifies to
  288.   z^(n+3) - az^(n+1) - z^n - z^3 + az + 1
  289.   Note that p(z) =3D z^(n+3) - az^(n+1) - z^n - z^3 + az + 1.
  290.   Thus the critical points of r(z) are the roots of p(z) and the roots of
  291.   q(z) :=3D ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  292.   These latter are the "interesting" critical points, as the other critic=
  293. al points of r(z) are all superattracting.
  294.   Note that q(z) is divisible by z, so 0 is an "interesting" critical poi=
  295. nt of r(z), for n not one of 2, 1, or -1.
  296.   This is the critical point used in the below hrynewt_m formulas except =
  297. for hrynewt2_m. For n =3D 2,
  298.   q(z)/2 =3D 10z^3 - 3(a+1)z - 1
  299.   Put z =3D y + (a+1)/10y to get
  300.   q(z)/2 =3D y^6 - y^3/10 + (a+1)^3/1000
  301.   so
  302.   2y^3 =3D 1/10 +/-sqrt(1/100 - 4(a+1)^3/1000),
  303.   y =3D ((1/10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3)
  304.   and
  305.   z =3D ((1/10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3) + (a+1)/((1/10 +/=
  306. - -sqrt(1/100 - 4(a+1)^3)/1000)/2)^(1/3)
  307. }
  308.  
  309. hrynewt_j { ; p1 is Julia parameter, p2 is exponent n, p3 is tolerance (i=
  310. f 0, will act like 0.001).
  311.             ; SLOW. Use predefined hrynewtnnn_j where possible.
  312.   z =3D pixel, a =3D p1, n =3D p2, n1 =3D n - 1, r =3D p3
  313.   IF(r =3D=3D 0)
  314.     r =3D 0.001
  315.   ENDIF
  316.   :
  317.   z2 =3D sqr(z)
  318.   z3 =3D z*z2
  319.   zn1 =3D z^n1
  320.   zno =3D (z*zn1 - 1)
  321.   zzz =3D (z3 - a*z - 1)
  322.   pz =3D zno*zzz
  323.   ppz =3D zno*(3*z2 - a) + n*zn1*zzz
  324.   z =3D z - pz/ppz,
  325.   |pz| > r
  326. }
  327.  
  328. hrynewt_m { ; p2 is exponent n, p3 is tolerance (if 0, will act like 0.00=
  329. 1).
  330.             ; SLOW. Use predefined hrynewtnnn_m where possible.
  331.   z =3D 0, a =3D pixel, n =3D p2, n1 =3D n - 1, r =3D p3
  332.   IF(r =3D=3D 0)
  333.     r =3D 0.001
  334.   ENDIF
  335.   :
  336.   z2 =3D sqr(z)
  337.   z3 =3D z*z2
  338.   zn1 =3D z^n1
  339.   zn =3D z*zn1
  340.   zno =3D (zn - 1)
  341.   zzz =3D (z3 - a*z - 1)
  342.   pz =3D zno*zzz
  343.   ppz =3D zno*(3*z2 - a) + n*zn1*zzz
  344.   z =3D z - pz/ppz,
  345.   |pz| > r
  346. }
  347.  
  348. hrynewt2_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  349. e 0.001).
  350.              ; n =3D 2.
  351.   z =3D pixel, a =3D p1, r =3D p3
  352.   IF(r =3D=3D 0)
  353.     r =3D 0.001
  354.   ENDIF
  355.   :
  356.   z2 =3D sqr(z)
  357.   z3 =3D z*z2
  358.   zno =3D (z2 - 1)
  359.   zzz =3D (z3 - a*z - 1)
  360.   pz =3D zno*zzz
  361.   ppz =3D zno*(3*z2 - a) + 2*z*zzz
  362.   z =3D z - pz/ppz,
  363.   |pz| > r
  364. }
  365.  
  366. hrynewt2_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  367.              ; n =3D 2.
  368.   a =3D pixel,
  369.   ap1 =3D a + 1,
  370.   IF((real(ap1) >=3D 0) || ((abs(real(ap1))*(3^(0.5))) < abs(imag(ap1))))
  371.     t =3D ((0.1 + (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),
  372.   ELSE
  373.     t =3D ((0.1 - (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),
  374.   ENDIF
  375.   z =3D t + 0.1*ap1/t, r =3D p3
  376.   IF(r =3D=3D 0)
  377.     r =3D 0.001
  378.   ENDIF
  379.   :
  380.   z2 =3D sqr(z)
  381.   z3 =3D z*z2
  382.   zno =3D (z2 - 1)
  383.   zzz =3D (z3 - a*z - 1)
  384.   pz =3D zno*zzz
  385.   ppz =3D zno*(3*z2 - a) + 2*z*zzz
  386.   z =3D z - pz/ppz,
  387.   |pz| > r
  388. }
  389.  
  390. hrynewt3_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  391. e 0.001).
  392.              ; n =3D 3.
  393.   z =3D pixel, a =3D p1, r =3D p3
  394.   IF(r =3D=3D 0)
  395.     r =3D 0.001
  396.   ENDIF
  397.   :
  398.   z2 =3D sqr(z)
  399.   z3 =3D z*z2
  400.   zno =3D (z3 - 1)
  401.   zzz =3D zno - a*z
  402.   tz2 =3D 3*z2
  403.   pz =3D zno*zzz
  404.   ppz =3D zno*(tz2 - a) + tz2*zzz
  405.   z =3D z - pz/ppz,
  406.   |pz| > r
  407. }
  408.  
  409. hrynewt3_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  410.              ; n =3D 3.
  411.   z =3D 0, a =3D pixel, r =3D p3
  412.   IF(r =3D=3D 0)
  413.     r =3D 0.001
  414.   ENDIF
  415.   :
  416.   z2 =3D sqr(z)
  417.   z3 =3D z*z2
  418.   zno =3D (z3 - 1)
  419.   zzz =3D zno - a*z
  420.   tz2 =3D 3*z2
  421.   pz =3D zno*zzz
  422.   ppz =3D zno*(tz2 - a) + tz2*zzz
  423.   z =3D z - pz/ppz,
  424.   |pz| > r
  425. }
  426.  
  427. hrynewt4_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  428. e 0.001).
  429.              ; n =3D 4.
  430.   z =3D pixel, a =3D p1, r =3D p3
  431.   IF(r =3D=3D 0)
  432.     r =3D 0.001
  433.   ENDIF
  434.   :
  435.   z2 =3D sqr(z)
  436.   z3 =3D z*z2
  437.   zno =3D (z*z3 - 1)
  438.   zzz =3D (z3 - a*z - 1)
  439.   pz =3D zno*zzz
  440.   ppz =3D zno*(3*z2 - a) + 4*z3*zzz
  441.   z =3D z - pz/ppz,
  442.   |pz| > r
  443. }
  444.  
  445. hrynewt4_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  446.              ; n =3D 4.
  447.   z =3D 0, a =3D pixel, r =3D p3
  448.   IF(r =3D=3D 0)
  449.     r =3D 0.001
  450.   ENDIF
  451.   :
  452.   z2 =3D sqr(z)
  453.   z3 =3D z*z2
  454.   zno =3D (z*z3 - 1)
  455.   zzz =3D (z3 - a*z - 1)
  456.   pz =3D zno*zzz
  457.   ppz =3D zno*(3*z2 - a) + 4*z3*zzz
  458.   z =3D z - pz/ppz,
  459.   |pz| > r
  460. }
  461.  
  462. hrynewt5_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  463. e 0.001).
  464.              ; n =3D 5.
  465.   z =3D pixel, a =3D p1, r =3D p3
  466.   IF(r =3D=3D 0)
  467.     r =3D 0.001
  468.   ENDIF
  469.   :
  470.   z2 =3D sqr(z)
  471.   z3 =3D z*z2
  472.   zn1 =3D sqr(z2)
  473.   zno =3D (z*zn1 - 1)
  474.   zzz =3D (z3 - a*z - 1)
  475.   pz =3D zno*zzz
  476.   ppz =3D zno*(3*z2 - a) + 5*zn1*zzz
  477.   z =3D z - pz/ppz,
  478.   |pz| > r
  479. }
  480.  
  481. hrynewt5_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  482.              ; n =3D 5.
  483.   z =3D 0, a =3D pixel, r =3D p3
  484.   IF(r =3D=3D 0)
  485.     r =3D 0.001
  486.   ENDIF
  487.   :
  488.   z2 =3D sqr(z)
  489.   z3 =3D z*z2
  490.   zn1 =3D sqr(z2)
  491.   zno =3D (z*zn1 - 1)
  492.   zzz =3D (z3 - a*z - 1)
  493.   pz =3D zno*zzz
  494.   ppz =3D zno*(3*z2 - a) + 5*zn1*zzz
  495.   z =3D z - pz/ppz,
  496.   |pz| > r
  497. }
  498.  
  499. hrynewt17_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act li=
  500. ke 0.001).
  501.               ; n =3D 17.
  502.   z =3D pixel, a =3D p1, r =3D p3
  503.   IF(r =3D=3D 0)
  504.     r =3D 0.001
  505.   ENDIF
  506.   :
  507.   z2 =3D sqr(z)
  508.   z3 =3D z*z2
  509.   zn1 =3D sqr(sqr(sqr(z2)))
  510.   zno =3D (z*zn1 - 1)
  511.   zzz =3D (z3 - a*z - 1)
  512.   pz =3D zno*zzz
  513.   ppz =3D zno*(3*z2 - a) + 17*zn1*zzz
  514.   z =3D z - pz/ppz,
  515.   |pz| > r
  516. }
  517.  
  518. hrynewt17_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  519.               ; n =3D 17.
  520.   z =3D 0, a =3D pixel, r =3D p3
  521.   IF(r =3D=3D 0)
  522.     r =3D 0.001
  523.   ENDIF
  524.   :
  525.   z2 =3D sqr(z)
  526.   z3 =3D z*z2
  527.   zn1 =3D sqr(sqr(sqr(z2)))
  528.   zno =3D (z*zn1 - 1)
  529.   zzz =3D (z3 - a*z - 1)
  530.   pz =3D zno*zzz
  531.   ppz =3D zno*(3*z2 - a) + 17*zn1*zzz
  532.   z =3D z - pz/ppz,
  533.   |pz| > r
  534. }
  535.  
  536. hrynewt33_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act li=
  537. ke 0.001).
  538.               ; n =3D 33.
  539.   z =3D pixel, a =3D p1, r =3D p3
  540.   IF(r =3D=3D 0)
  541.     r =3D 0.001
  542.   ENDIF
  543.   :
  544.   z2 =3D sqr(z)
  545.   z3 =3D z*z2
  546.   zn1 =3D sqr(sqr(sqr(sqr(z2))))
  547.   zno =3D (z*zn1 - 1)
  548.   zzz =3D (z3 - a*z - 1)
  549.   pz =3D zno*zzz
  550.   ppz =3D zno*(3*z2 - a) + 33*zn1*zzz
  551.   z =3D z - pz/ppz,
  552.   |pz| > r
  553. }
  554.  
  555. hrynewt33_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  556.               ; n =3D 33.
  557.   z =3D 0, a =3D pixel, r =3D p3
  558.   IF(r =3D=3D 0)
  559.     r =3D 0.001
  560.   ENDIF
  561.   :
  562.   z2 =3D sqr(z)
  563.   z3 =3D z*z2
  564.   zn1 =3D sqr(sqr(sqr(sqr(z2))))
  565.   zno =3D (z*zn1 - 1)
  566.   zzz =3D (z3 - a*z - 1)
  567.   pz =3D zno*zzz
  568.   ppz =3D zno*(3*z2 - a) + 33*zn1*zzz
  569.   z =3D z - pz/ppz,
  570.   |pz| > r
  571. }<br clear=3Dall><hr>Get Your Private, Free E-mail from MSN Hotmail at <a=
  572.  href=3D"http://www.hotmail.com">http://www.hotmail.com</a>.<br></p>
  573.  
  574. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0
  575. Content-Type: text/html; charset="iso-8859-1"
  576. Content-Transfer-Encoding: quoted-printable
  577.  
  578. <HTML><BODY STYLE=3D"font:10pt verdana; border:none;"><DIV>Yesterday even=
  579. ing I set out to find an interesting family of Newton-based Mandelbrot ma=
  580. ppings. The result was the collection of formulae below.</DIV> <DIV> =
  581. ;</DIV> <DIV>You'll note the lack of 3D disease -- false alarm. All my po=
  582. sts to another listserv had it, but I now think it must be that listserv =
  583. rather than MSN Exploder. Or rather, some interaction between the two (si=
  584. nce some posts from that listserv don't have it), like the weird "em=
  585. ail laser" that happened with this listserv last week (lots of peoples' m=
  586. essages were being duplicated, but for some reason mine were showing up i=
  587. n sets of five or six!)...Anyone who's an expert on listservs care to spe=
  588. culate further on what might be going on? One thing is clear: recent mail=
  589.  software and listservs have unnecessary complexity, and while we like co=
  590. mplexity in our fractals, we could do without chaos erupting in the mail =
  591. system we depend on to communicate here...</DIV> <DIV> </DIV> <DIV>T=
  592. he hrynewt_j and hrynewt_m formulae iterate Newton's method for p(z) =3D =
  593. (z^n - 1)(z^3 - az - 1). Both n and a are parameters, as is the tolerance=
  594. , an inverse bailout radius about the roots of p. The Mandelbrot variant =
  595. has a vary over the screen while initial z is zero; this is a critical po=
  596. int but not a root of p for n real and greater than 2. You can =
  597. plug in other values of n -- arbitrary negative or even complex values --=
  598.  but won't generally be able to find minibrots unless n has a positive re=
  599. al part greater than two. If n is not an integer, there will be branch cu=
  600. ts in both the Mandelbrot and the Julia variants.</DIV> <DIV> </DIV>=
  601.  <DIV>The hrynewtnnn_j and _m formulae are optimized versions with specif=
  602. ic values for n, mostly small positive integers. They avoid a slow arbitr=
  603. ary exponentiation, and for the smaller values of n re-use powers that ar=
  604. e used on both sides of the polynomial or its derivative. The hrynewt2_m =
  605. formula also has the feature of using a critical point for initial z, ins=
  606. tead of zero (which is *not* a critical point for n =3D 2). The result is=
  607.  a proper Mandelbrot view, but it has a branch cut due to a square root i=
  608. n the calculation of the critical point, which is a-dependent. The branch=
  609.  cut has been intentionally manipulated to put it in a fairly unobtrusive=
  610.  place, but can't be eliminated; the full Mandelbrot for this one lives o=
  611. n a two-layer Riemann sheet like that of the square root function.</DIV> =
  612. <DIV> </DIV> <DIV>The hrynewtnnn_m formulae also use an (XAXIS) symm=
  613. etry declaration. (The generic hrynewt_m can't use this without trashing =
  614. the output for non-real values of n.)</DIV> <DIV> </DIV> <DIV>Observ=
  615. ations:</DIV> <DIV>* Certain choices of n produce three-fold-symmetric Ma=
  616. ndelbrot sets. Find out which!</DIV> <DIV>* Mangled and occasionally also=
  617.  intact Mandelbrots can be extracted when n is "strange" but has a real p=
  618. art greater than 2.</DIV> <DIV>* You get radial petals with n real, conce=
  619. ntric patterns with n imaginary, and logarithmic spirals with complex n; =
  620. the ratio of</DIV> <DIV>   real to imaginary parts determines w=
  621. hether the spiral is steep (n close to real) or shallow (n close to imagi=
  622. nary).</DIV> <DIV>* The Mandelbrots are always quadratic -- for real n &g=
  623. t; 2, the critical point at zero is nondegenerate, and the critical point=
  624. </DIV> <DIV>   pair for hrynewt2_m is degenerate only at o=
  625. ne specific value of a.</DIV> <DIV> </DIV> <DIV>The formula file beg=
  626. ins with an extensive comment that details the mathematical constructions=
  627.  that informed their design.</DIV> <DIV> </DIV> <DIV>comment {<BR>&n=
  628. bsp; We want a Newton's method with a large number of basins, most of whi=
  629. ch are fixed and predictable.<BR>  This is accomplished by choosing =
  630. a polynomial function to solve composed of two factors, one with many fix=
  631. ed roots,<BR>  the other with a few mobile ones:<BR>  p(z) =3D =
  632. (z^n-1)(z^3-az-1).<BR>  The Newton iteration is:<BR>  z -> r=
  633. (z)<BR>  where<BR>  r(z) =3D z - p(z)/p'(z)<BR>  &nbs=
  634. p;    =3D (zp'(z) - p(z))/p'(z)<BR>  We easily discov=
  635. er p'(z) to be<BR>  p'(z) =3D (z^n-1)(3z^2-a) + (nz^(n-1))(z^3-az-1)=
  636. <BR>        =3D (3+n)z^(n+2) - a(n+1)z=
  637. ^n - nz^(n-1) - 3z^2 + a<BR>  so<BR>  (zp'(z) - p(z)) =3D (z^n-=
  638. 1)(3z^3-az)+(nz^n)(z^3-az-1) - (z^n-1)(z^3-az-1)<BR>   &nb=
  639. sp;           &nbs=
  640. p;  =3D (z^n-1)(2z^3+1)+(nz^n)(z^3-az-1)<BR>    =
  641.             &=
  642. nbsp; =3D (2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1<BR>  and<BR=
  643. >  r(z) =3D ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)/((3+n)z=
  644. ^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a)<BR>  Using the quotient ru=
  645. le the numerator of r'(z) is<BR>  ((3+n)z^(n+2) - a(n+1)z^n - nz^(n-=
  646. 1) - 3z^2 + a)((n+2)(n+3)z^(n+2) - an(n+1)z^n - n(n-1)z^(n-1) - 6z^2) -<B=
  647. R>    ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)((n+=
  648. 2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)<BR>  which fac=
  649. tors into<BR>  ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) -=
  650.  6z)<BR>  and<BR>  ((3+n)z^(n+3) - a(n+1)z^(n+1) - nz^n - 3z^3 =
  651. + az) - ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)<BR>  which =
  652. simplifies to<BR>  z^(n+3) - az^(n+1) - z^n - z^3 + az + 1<BR> =
  653.  Note that p(z) =3D z^(n+3) - az^(n+1) - z^n - z^3 + az + 1.<BR>  Th=
  654. us the critical points of r(z) are the roots of p(z) and the roots of<BR>=
  655.   q(z) :=3D ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z=
  656. )<BR>  These latter are the "interesting" critical points, as the ot=
  657. her critical points of r(z) are all superattracting.<BR>  Note that =
  658. q(z) is divisible by z, so 0 is an "interesting" critical point of r(z), =
  659. for n not one of 2, 1, or -1.<BR>  This is the critical point used i=
  660. n the below hrynewt_m formulas except for hrynewt2_m. For n =3D 2,<BR>&nb=
  661. sp; q(z)/2 =3D 10z^3 - 3(a+1)z - 1<BR>  Put z =3D y + (a+1)/10y to g=
  662. et<BR>  q(z)/2 =3D y^6 - y^3/10 + (a+1)^3/1000<BR>  so<BR> =
  663. ; 2y^3 =3D 1/10 +/-sqrt(1/100 - 4(a+1)^3/1000),<BR>  y =3D ((1/10 +/=
  664. - -sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3)<BR>  and<BR>  z =3D ((1/=
  665. 10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3) + (a+1)/((1/10 +/-sqrt(1/100 =
  666. - - 4(a+1)^3)/1000)/2)^(1/3)<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt_j { =
  667. ; p1 is Julia parameter, p2 is exponent n, p3 is tolerance (if 0, will ac=
  668. t like 0.001).<BR>         &=
  669. nbsp;  ; SLOW. Use predefined hrynewtnnn_j where possible.<BR> =
  670.  z =3D pixel, a =3D p1, n =3D p2, n1 =3D n - 1, r =3D p3<BR>  IF(r =3D=
  671. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  672. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D z^n1<BR> =
  673. ; zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D z=
  674. no*zzz<BR>  ppz =3D zno*(3*z2 - a) + n*zn1*zzz<BR>  z =3D z - p=
  675. z/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt_m =
  676. { ; p2 is exponent n, p3 is tolerance (if 0, will act like 0.001).<BR>&nb=
  677. sp;           ; SLOW. U=
  678. se predefined hrynewtnnn_m where possible.<BR>  z =3D 0, a =3D pixel=
  679. , n =3D p2, n1 =3D n - 1, r =3D p3<BR>  IF(r =3D=3D 0)<BR> &nbs=
  680. p;  r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<=
  681. BR>  z3 =3D z*z2<BR>  zn1 =3D z^n1<BR>  zn =3D z*zn1<BR>&n=
  682. bsp; zno =3D (zn - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D z=
  683. no*zzz<BR>  ppz =3D zno*(3*z2 - a) + n*zn1*zzz<BR>  z =3D z - p=
  684. z/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt2_j=
  685.  { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<=
  686. BR>           &nbs=
  687. p; ; n =3D 2.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  IF(r =3D=
  688. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  689. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z2 - 1)<BR>&=
  690. nbsp; zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D z=
  691. no*(3*z2 - a) + 2*z*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r=
  692. <BR>}</DIV> <DIV> </DIV> <DIV>hrynewt2_m (XAXIS) { ; p3 is tolerance=
  693.  (if 0, will act like 0.001).<BR>      &nbs=
  694. p;      ; n =3D 2.<BR>  a =3D pixel,<BR>&nb=
  695. sp; ap1 =3D a + 1,<BR>  IF((real(ap1) >=3D 0) || ((abs(real(ap1))=
  696. *(3^(0.5))) < abs(imag(ap1))))<BR>    t =3D ((0.1 + (0.=
  697. 01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),<BR>  ELSE<BR>  &=
  698. nbsp; t =3D ((0.1 - (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),<BR> =
  699. ; ENDIF<BR>  z =3D t + 0.1*ap1/t, r =3D p3<BR>  IF(r =3D=3D 0)<=
  700. BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z=
  701. 2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z2 - 1)<BR>  z=
  702. zz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z=
  703. 2 - a) + 2*z*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</=
  704. DIV> <DIV> </DIV> <DIV>hrynewt3_j { ; p1 is Julia parameter, p3 is t=
  705. olerance (if 0, will act like 0.001).<BR>     &n=
  706. bsp;       ; n =3D 3.<BR>  z =3D pixel=
  707. , a =3D p1, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D=
  708.  0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D=
  709.  z*z2<BR>  zno =3D (z3 - 1)<BR>  zzz =3D zno - a*z<BR>  tz=
  710. 2 =3D 3*z2<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(tz2 - a) + tz2=
  711. *zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV>&n=
  712. bsp;</DIV> <DIV>hrynewt3_m (XAXIS) { ; p3 is tolerance (if 0, will act li=
  713. ke 0.001).<BR>          =
  714. ;   ; n =3D 3.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>&nbs=
  715. p; IF(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>&n=
  716. bsp; :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z=
  717. 3 - 1)<BR>  zzz =3D zno - a*z<BR>  tz2 =3D 3*z2<BR>  pz =3D=
  718.  zno*zzz<BR>  ppz =3D zno*(tz2 - a) + tz2*zzz<BR>  z =3D z - pz=
  719. /ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt4_j =
  720. { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<B=
  721. R>            =
  722. ; ; n =3D 4.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  IF(r =3D=
  723. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  724. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z*z3 - 1)<BR=
  725. >  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D=
  726.  zno*(3*z2 - a) + 4*z3*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| >=
  727. ; r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt4_m (XAXIS) { ; p3 is tolera=
  728. nce (if 0, will act like 0.001).<BR>      &=
  729. nbsp;      ; n =3D 4.<BR>  z =3D 0, a =3D p=
  730. ixel, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D 0.001=
  731. <BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z=
  732. 2<BR>  zno =3D (z*z3 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR> =
  733.  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 4*z3*zzz<BR>  z =3D=
  734.  z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hryn=
  735. ewt5_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.=
  736. 001).<BR>          &nbs=
  737. p;  ; n =3D 5.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  I=
  738. F(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR> =
  739.  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(z2=
  740. )<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR> =
  741. ; pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 5*zn1*zzz<BR>  z=
  742.  =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>=
  743. hrynewt5_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).<BR>&n=
  744. bsp;            ; =
  745. n =3D 5.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>  IF(r =3D=3D 0=
  746. )<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR> =
  747.  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(z2)<BR>  =
  748. zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno=
  749. *zzz<BR>  ppz =3D zno*(3*z2 - a) + 5*zn1*zzz<BR>  z =3D z - pz/=
  750. ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt17_j =
  751. { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<B=
  752. R>            =
  753. ;  ; n =3D 17.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  I=
  754. F(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR> =
  755.  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(sq=
  756. r(sqr(z2)))<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1=
  757. )<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 17*zn1*zzz<=
  758. BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> <=
  759. /DIV> <DIV>hrynewt17_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0=
  760. .001).<BR>          &nb=
  761. sp;   ; n =3D 17.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>&=
  762. nbsp; IF(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR=
  763. >  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D=
  764.  sqr(sqr(sqr(z2)))<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - =
  765. a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 17*z=
  766. n1*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV>=
  767.  </DIV> <DIV>hrynewt33_j { ; p1 is Julia parameter, p3 is tolerance =
  768. (if 0, will act like 0.001).<BR>       =
  769. ;       ; n =3D 33.<BR>  z =3D pixel, =
  770. a =3D p1, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D 0=
  771. .001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D=
  772.  z*z2<BR>  zn1 =3D sqr(sqr(sqr(sqr(z2))))<BR>  zno =3D (z*zn1 -=
  773.  1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  p=
  774. pz =3D zno*(3*z2 - a) + 33*zn1*zzz<BR>  z =3D z - pz/ppz,<BR>  =
  775. |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt33_m (XAXIS) { ; p3 =
  776. is tolerance (if 0, will act like 0.001).<BR>    &nbs=
  777. p;         ; n =3D 33.<BR>  =
  778. z =3D 0, a =3D pixel, r =3D p3<BR>  IF(r =3D=3D 0)<BR>  &n=
  779. bsp; r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>&=
  780. nbsp; z3 =3D z*z2<BR>  zn1 =3D sqr(sqr(sqr(sqr(z2))))<BR>  zno =
  781. =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz=
  782. <BR>  ppz =3D zno*(3*z2 - a) + 33*zn1*zzz<BR>  z =3D z - pz/ppz=
  783. ,<BR>  |pz| > r<BR>}<BR></DIV></BODY></HTML><DIV><BR><br clear=3D=
  784. all><hr>Get Your Private, Free E-mail from MSN Hotmail at <a href=3D"http=
  785. ://www.hotmail.com">http://www.hotmail.com</a>.<br></p></DIV>
  786.  
  787. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0--
  788.  
  789. - --------------------------------------------------------------
  790. Thanks for using Fractint, The Fractals and Fractint Discussion List
  791. Post Message:   fractint@lists.xmission.com
  792. Get Commands:   majordomo@lists.xmission.com "help"
  793. Administrator:  twegner@fractint.org
  794. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractint"
  795.  
  796. ------------------------------
  797.  
  798. Date: Fri, 8 Jun 2001 21:29:56 -0400
  799. From: "Multiple Bogeys" <neo_1061@hotmail.com>
  800. Subject: (fractint) Hairy Newton
  801.  
  802. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0
  803. Content-Type: text/plain; charset="iso-8859-1"
  804. Content-Transfer-Encoding: quoted-printable
  805.  
  806. Yesterday evening I set out to find an interesting family of Newton-based=
  807.  Mandelbrot mappings. The result was the collection of formulae below.
  808.  
  809. You'll note the lack of 3D disease -- false alarm. All my posts to anothe=
  810. r listserv had it, but I now think it must be that listserv rather than M=
  811. SN Exploder. Or rather, some interaction between the two (since some post=
  812. s from that listserv don't have it), like the weird "email laser" that ha=
  813. ppened with this listserv last week (lots of peoples' messages were being=
  814.  duplicated, but for some reason mine were showing up in sets of five or =
  815. six!)...Anyone who's an expert on listservs care to speculate further on =
  816. what might be going on? One thing is clear: recent mail software and list=
  817. servs have unnecessary complexity, and while we like complexity in our fr=
  818. actals, we could do without chaos erupting in the mail system we depend o=
  819. n to communicate here...
  820.  
  821. The hrynewt_j and hrynewt_m formulae iterate Newton's method for p(z) =3D=
  822.  (z^n - 1)(z^3 - az - 1). Both n and a are parameters, as is the toleranc=
  823. e, an inverse bailout radius about the roots of p. The Mandelbrot variant=
  824.  has a vary over the screen while initial z is zero; this is a critical p=
  825. oint but not a root of p for n real and greater than 2. You can plug in o=
  826. ther values of n -- arbitrary negative or even complex values -- but won'=
  827. t generally be able to find minibrots unless n has a positive real part g=
  828. reater than two. If n is not an integer, there will be branch cuts in bot=
  829. h the Mandelbrot and the Julia variants.
  830.  
  831. The hrynewtnnn_j and _m formulae are optimized versions with specific val=
  832. ues for n, mostly small positive integers. They avoid a slow arbitrary ex=
  833. ponentiation, and for the smaller values of n re-use powers that are used=
  834.  on both sides of the polynomial or its derivative. The hrynewt2_m formul=
  835. a also has the feature of using a critical point for initial z, instead o=
  836. f zero (which is *not* a critical point for n =3D 2). The result is a pro=
  837. per Mandelbrot view, but it has a branch cut due to a square root in the =
  838. calculation of the critical point, which is a-dependent. The branch cut h=
  839. as been intentionally manipulated to put it in a fairly unobtrusive place=
  840. , but can't be eliminated; the full Mandelbrot for this one lives on a tw=
  841. o-layer Riemann sheet like that of the square root function.
  842.  
  843. The hrynewtnnn_m formulae also use an (XAXIS) symmetry declaration. (The =
  844. generic hrynewt_m can't use this without trashing the output for non-real=
  845.  values of n.)
  846.  
  847. Observations:
  848. * Certain choices of n produce three-fold-symmetric Mandelbrot sets. Find=
  849.  out which!
  850. * Mangled and occasionally also intact Mandelbrots can be extracted when =
  851. n is "strange" but has a real part greater than 2.
  852. * You get radial petals with n real, concentric patterns with n imaginary=
  853. , and logarithmic spirals with complex n; the ratio of
  854.    real to imaginary parts determines whether the spiral is steep (n clos=
  855. e to real) or shallow (n close to imaginary).
  856. * The Mandelbrots are always quadratic -- for real n > 2, the critical po=
  857. int at zero is nondegenerate, and the critical point
  858.    pair for hrynewt2_m is degenerate only at one specific value of a.
  859.  
  860. The formula file begins with an extensive comment that details the mathem=
  861. atical constructions that informed their design.
  862.  
  863. comment {
  864.   We want a Newton's method with a large number of basins, most of which =
  865. are fixed and predictable.
  866.   This is accomplished by choosing a polynomial function to solve compose=
  867. d of two factors, one with many fixed roots,
  868.   the other with a few mobile ones:
  869.   p(z) =3D (z^n-1)(z^3-az-1).
  870.   The Newton iteration is:
  871.   z -> r(z)
  872.   where
  873.   r(z) =3D z - p(z)/p'(z)
  874.        =3D (zp'(z) - p(z))/p'(z)
  875.   We easily discover p'(z) to be
  876.   p'(z) =3D (z^n-1)(3z^2-a) + (nz^(n-1))(z^3-az-1)
  877.         =3D (3+n)z^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a
  878.   so
  879.   (zp'(z) - p(z)) =3D (z^n-1)(3z^3-az)+(nz^n)(z^3-az-1) - (z^n-1)(z^3-az-=
  880. 1)
  881.                   =3D (z^n-1)(2z^3+1)+(nz^n)(z^3-az-1)
  882.                   =3D (2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1
  883.   and
  884.   r(z) =3D ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)/((3+n)z^(n+2)=
  885.  - a(n+1)z^n - nz^(n-1) - 3z^2 + a)
  886.   Using the quotient rule the numerator of r'(z) is
  887.   ((3+n)z^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a)((n+2)(n+3)z^(n+2) - an=
  888. (n+1)z^n - n(n-1)z^(n-1) - 6z^2) -
  889.     ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)((n+2)(n+3)z^(n+1) - =
  890. an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  891.   which factors into
  892.   ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  893.   and
  894.   ((3+n)z^(n+3) - a(n+1)z^(n+1) - nz^n - 3z^3 + az) - ((2+n)z^(n+3) - anz=
  895. ^(n+1) - (n-1)z^n - 2z^3 - 1)
  896.   which simplifies to
  897.   z^(n+3) - az^(n+1) - z^n - z^3 + az + 1
  898.   Note that p(z) =3D z^(n+3) - az^(n+1) - z^n - z^3 + az + 1.
  899.   Thus the critical points of r(z) are the roots of p(z) and the roots of
  900.   q(z) :=3D ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)
  901.   These latter are the "interesting" critical points, as the other critic=
  902. al points of r(z) are all superattracting.
  903.   Note that q(z) is divisible by z, so 0 is an "interesting" critical poi=
  904. nt of r(z), for n not one of 2, 1, or -1.
  905.   This is the critical point used in the below hrynewt_m formulas except =
  906. for hrynewt2_m. For n =3D 2,
  907.   q(z)/2 =3D 10z^3 - 3(a+1)z - 1
  908.   Put z =3D y + (a+1)/10y to get
  909.   q(z)/2 =3D y^6 - y^3/10 + (a+1)^3/1000
  910.   so
  911.   2y^3 =3D 1/10 +/-sqrt(1/100 - 4(a+1)^3/1000),
  912.   y =3D ((1/10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3)
  913.   and
  914.   z =3D ((1/10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3) + (a+1)/((1/10 +/=
  915. - -sqrt(1/100 - 4(a+1)^3)/1000)/2)^(1/3)
  916. }
  917.  
  918. hrynewt_j { ; p1 is Julia parameter, p2 is exponent n, p3 is tolerance (i=
  919. f 0, will act like 0.001).
  920.             ; SLOW. Use predefined hrynewtnnn_j where possible.
  921.   z =3D pixel, a =3D p1, n =3D p2, n1 =3D n - 1, r =3D p3
  922.   IF(r =3D=3D 0)
  923.     r =3D 0.001
  924.   ENDIF
  925.   :
  926.   z2 =3D sqr(z)
  927.   z3 =3D z*z2
  928.   zn1 =3D z^n1
  929.   zno =3D (z*zn1 - 1)
  930.   zzz =3D (z3 - a*z - 1)
  931.   pz =3D zno*zzz
  932.   ppz =3D zno*(3*z2 - a) + n*zn1*zzz
  933.   z =3D z - pz/ppz,
  934.   |pz| > r
  935. }
  936.  
  937. hrynewt_m { ; p2 is exponent n, p3 is tolerance (if 0, will act like 0.00=
  938. 1).
  939.             ; SLOW. Use predefined hrynewtnnn_m where possible.
  940.   z =3D 0, a =3D pixel, n =3D p2, n1 =3D n - 1, r =3D p3
  941.   IF(r =3D=3D 0)
  942.     r =3D 0.001
  943.   ENDIF
  944.   :
  945.   z2 =3D sqr(z)
  946.   z3 =3D z*z2
  947.   zn1 =3D z^n1
  948.   zn =3D z*zn1
  949.   zno =3D (zn - 1)
  950.   zzz =3D (z3 - a*z - 1)
  951.   pz =3D zno*zzz
  952.   ppz =3D zno*(3*z2 - a) + n*zn1*zzz
  953.   z =3D z - pz/ppz,
  954.   |pz| > r
  955. }
  956.  
  957. hrynewt2_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  958. e 0.001).
  959.              ; n =3D 2.
  960.   z =3D pixel, a =3D p1, r =3D p3
  961.   IF(r =3D=3D 0)
  962.     r =3D 0.001
  963.   ENDIF
  964.   :
  965.   z2 =3D sqr(z)
  966.   z3 =3D z*z2
  967.   zno =3D (z2 - 1)
  968.   zzz =3D (z3 - a*z - 1)
  969.   pz =3D zno*zzz
  970.   ppz =3D zno*(3*z2 - a) + 2*z*zzz
  971.   z =3D z - pz/ppz,
  972.   |pz| > r
  973. }
  974.  
  975. hrynewt2_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  976.              ; n =3D 2.
  977.   a =3D pixel,
  978.   ap1 =3D a + 1,
  979.   IF((real(ap1) >=3D 0) || ((abs(real(ap1))*(3^(0.5))) < abs(imag(ap1))))
  980.     t =3D ((0.1 + (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),
  981.   ELSE
  982.     t =3D ((0.1 - (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),
  983.   ENDIF
  984.   z =3D t + 0.1*ap1/t, r =3D p3
  985.   IF(r =3D=3D 0)
  986.     r =3D 0.001
  987.   ENDIF
  988.   :
  989.   z2 =3D sqr(z)
  990.   z3 =3D z*z2
  991.   zno =3D (z2 - 1)
  992.   zzz =3D (z3 - a*z - 1)
  993.   pz =3D zno*zzz
  994.   ppz =3D zno*(3*z2 - a) + 2*z*zzz
  995.   z =3D z - pz/ppz,
  996.   |pz| > r
  997. }
  998.  
  999. hrynewt3_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  1000. e 0.001).
  1001.              ; n =3D 3.
  1002.   z =3D pixel, a =3D p1, r =3D p3
  1003.   IF(r =3D=3D 0)
  1004.     r =3D 0.001
  1005.   ENDIF
  1006.   :
  1007.   z2 =3D sqr(z)
  1008.   z3 =3D z*z2
  1009.   zno =3D (z3 - 1)
  1010.   zzz =3D zno - a*z
  1011.   tz2 =3D 3*z2
  1012.   pz =3D zno*zzz
  1013.   ppz =3D zno*(tz2 - a) + tz2*zzz
  1014.   z =3D z - pz/ppz,
  1015.   |pz| > r
  1016. }
  1017.  
  1018. hrynewt3_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  1019.              ; n =3D 3.
  1020.   z =3D 0, a =3D pixel, r =3D p3
  1021.   IF(r =3D=3D 0)
  1022.     r =3D 0.001
  1023.   ENDIF
  1024.   :
  1025.   z2 =3D sqr(z)
  1026.   z3 =3D z*z2
  1027.   zno =3D (z3 - 1)
  1028.   zzz =3D zno - a*z
  1029.   tz2 =3D 3*z2
  1030.   pz =3D zno*zzz
  1031.   ppz =3D zno*(tz2 - a) + tz2*zzz
  1032.   z =3D z - pz/ppz,
  1033.   |pz| > r
  1034. }
  1035.  
  1036. hrynewt4_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  1037. e 0.001).
  1038.              ; n =3D 4.
  1039.   z =3D pixel, a =3D p1, r =3D p3
  1040.   IF(r =3D=3D 0)
  1041.     r =3D 0.001
  1042.   ENDIF
  1043.   :
  1044.   z2 =3D sqr(z)
  1045.   z3 =3D z*z2
  1046.   zno =3D (z*z3 - 1)
  1047.   zzz =3D (z3 - a*z - 1)
  1048.   pz =3D zno*zzz
  1049.   ppz =3D zno*(3*z2 - a) + 4*z3*zzz
  1050.   z =3D z - pz/ppz,
  1051.   |pz| > r
  1052. }
  1053.  
  1054. hrynewt4_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  1055.              ; n =3D 4.
  1056.   z =3D 0, a =3D pixel, r =3D p3
  1057.   IF(r =3D=3D 0)
  1058.     r =3D 0.001
  1059.   ENDIF
  1060.   :
  1061.   z2 =3D sqr(z)
  1062.   z3 =3D z*z2
  1063.   zno =3D (z*z3 - 1)
  1064.   zzz =3D (z3 - a*z - 1)
  1065.   pz =3D zno*zzz
  1066.   ppz =3D zno*(3*z2 - a) + 4*z3*zzz
  1067.   z =3D z - pz/ppz,
  1068.   |pz| > r
  1069. }
  1070.  
  1071. hrynewt5_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act lik=
  1072. e 0.001).
  1073.              ; n =3D 5.
  1074.   z =3D pixel, a =3D p1, r =3D p3
  1075.   IF(r =3D=3D 0)
  1076.     r =3D 0.001
  1077.   ENDIF
  1078.   :
  1079.   z2 =3D sqr(z)
  1080.   z3 =3D z*z2
  1081.   zn1 =3D sqr(z2)
  1082.   zno =3D (z*zn1 - 1)
  1083.   zzz =3D (z3 - a*z - 1)
  1084.   pz =3D zno*zzz
  1085.   ppz =3D zno*(3*z2 - a) + 5*zn1*zzz
  1086.   z =3D z - pz/ppz,
  1087.   |pz| > r
  1088. }
  1089.  
  1090. hrynewt5_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  1091.              ; n =3D 5.
  1092.   z =3D 0, a =3D pixel, r =3D p3
  1093.   IF(r =3D=3D 0)
  1094.     r =3D 0.001
  1095.   ENDIF
  1096.   :
  1097.   z2 =3D sqr(z)
  1098.   z3 =3D z*z2
  1099.   zn1 =3D sqr(z2)
  1100.   zno =3D (z*zn1 - 1)
  1101.   zzz =3D (z3 - a*z - 1)
  1102.   pz =3D zno*zzz
  1103.   ppz =3D zno*(3*z2 - a) + 5*zn1*zzz
  1104.   z =3D z - pz/ppz,
  1105.   |pz| > r
  1106. }
  1107.  
  1108. hrynewt17_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act li=
  1109. ke 0.001).
  1110.               ; n =3D 17.
  1111.   z =3D pixel, a =3D p1, r =3D p3
  1112.   IF(r =3D=3D 0)
  1113.     r =3D 0.001
  1114.   ENDIF
  1115.   :
  1116.   z2 =3D sqr(z)
  1117.   z3 =3D z*z2
  1118.   zn1 =3D sqr(sqr(sqr(z2)))
  1119.   zno =3D (z*zn1 - 1)
  1120.   zzz =3D (z3 - a*z - 1)
  1121.   pz =3D zno*zzz
  1122.   ppz =3D zno*(3*z2 - a) + 17*zn1*zzz
  1123.   z =3D z - pz/ppz,
  1124.   |pz| > r
  1125. }
  1126.  
  1127. hrynewt17_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  1128.               ; n =3D 17.
  1129.   z =3D 0, a =3D pixel, r =3D p3
  1130.   IF(r =3D=3D 0)
  1131.     r =3D 0.001
  1132.   ENDIF
  1133.   :
  1134.   z2 =3D sqr(z)
  1135.   z3 =3D z*z2
  1136.   zn1 =3D sqr(sqr(sqr(z2)))
  1137.   zno =3D (z*zn1 - 1)
  1138.   zzz =3D (z3 - a*z - 1)
  1139.   pz =3D zno*zzz
  1140.   ppz =3D zno*(3*z2 - a) + 17*zn1*zzz
  1141.   z =3D z - pz/ppz,
  1142.   |pz| > r
  1143. }
  1144.  
  1145. hrynewt33_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act li=
  1146. ke 0.001).
  1147.               ; n =3D 33.
  1148.   z =3D pixel, a =3D p1, r =3D p3
  1149.   IF(r =3D=3D 0)
  1150.     r =3D 0.001
  1151.   ENDIF
  1152.   :
  1153.   z2 =3D sqr(z)
  1154.   z3 =3D z*z2
  1155.   zn1 =3D sqr(sqr(sqr(sqr(z2))))
  1156.   zno =3D (z*zn1 - 1)
  1157.   zzz =3D (z3 - a*z - 1)
  1158.   pz =3D zno*zzz
  1159.   ppz =3D zno*(3*z2 - a) + 33*zn1*zzz
  1160.   z =3D z - pz/ppz,
  1161.   |pz| > r
  1162. }
  1163.  
  1164. hrynewt33_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).
  1165.               ; n =3D 33.
  1166.   z =3D 0, a =3D pixel, r =3D p3
  1167.   IF(r =3D=3D 0)
  1168.     r =3D 0.001
  1169.   ENDIF
  1170.   :
  1171.   z2 =3D sqr(z)
  1172.   z3 =3D z*z2
  1173.   zn1 =3D sqr(sqr(sqr(sqr(z2))))
  1174.   zno =3D (z*zn1 - 1)
  1175.   zzz =3D (z3 - a*z - 1)
  1176.   pz =3D zno*zzz
  1177.   ppz =3D zno*(3*z2 - a) + 33*zn1*zzz
  1178.   z =3D z - pz/ppz,
  1179.   |pz| > r
  1180. }<br clear=3Dall><hr>Get Your Private, Free E-mail from MSN Hotmail at <a=
  1181.  href=3D"http://www.hotmail.com">http://www.hotmail.com</a>.<br></p>
  1182.  
  1183. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0
  1184. Content-Type: text/html; charset="iso-8859-1"
  1185. Content-Transfer-Encoding: quoted-printable
  1186.  
  1187. <HTML><BODY STYLE=3D"font:10pt verdana; border:none;"><DIV>Yesterday even=
  1188. ing I set out to find an interesting family of Newton-based Mandelbrot ma=
  1189. ppings. The result was the collection of formulae below.</DIV> <DIV> =
  1190. ;</DIV> <DIV>You'll note the lack of 3D disease -- false alarm. All my po=
  1191. sts to another listserv had it, but I now think it must be that listserv =
  1192. rather than MSN Exploder. Or rather, some interaction between the two (si=
  1193. nce some posts from that listserv don't have it), like the weird "em=
  1194. ail laser" that happened with this listserv last week (lots of peoples' m=
  1195. essages were being duplicated, but for some reason mine were showing up i=
  1196. n sets of five or six!)...Anyone who's an expert on listservs care to spe=
  1197. culate further on what might be going on? One thing is clear: recent mail=
  1198.  software and listservs have unnecessary complexity, and while we like co=
  1199. mplexity in our fractals, we could do without chaos erupting in the mail =
  1200. system we depend on to communicate here...</DIV> <DIV> </DIV> <DIV>T=
  1201. he hrynewt_j and hrynewt_m formulae iterate Newton's method for p(z) =3D =
  1202. (z^n - 1)(z^3 - az - 1). Both n and a are parameters, as is the tolerance=
  1203. , an inverse bailout radius about the roots of p. The Mandelbrot variant =
  1204. has a vary over the screen while initial z is zero; this is a critical po=
  1205. int but not a root of p for n real and greater than 2. You can =
  1206. plug in other values of n -- arbitrary negative or even complex values --=
  1207.  but won't generally be able to find minibrots unless n has a positive re=
  1208. al part greater than two. If n is not an integer, there will be branch cu=
  1209. ts in both the Mandelbrot and the Julia variants.</DIV> <DIV> </DIV>=
  1210.  <DIV>The hrynewtnnn_j and _m formulae are optimized versions with specif=
  1211. ic values for n, mostly small positive integers. They avoid a slow arbitr=
  1212. ary exponentiation, and for the smaller values of n re-use powers that ar=
  1213. e used on both sides of the polynomial or its derivative. The hrynewt2_m =
  1214. formula also has the feature of using a critical point for initial z, ins=
  1215. tead of zero (which is *not* a critical point for n =3D 2). The result is=
  1216.  a proper Mandelbrot view, but it has a branch cut due to a square root i=
  1217. n the calculation of the critical point, which is a-dependent. The branch=
  1218.  cut has been intentionally manipulated to put it in a fairly unobtrusive=
  1219.  place, but can't be eliminated; the full Mandelbrot for this one lives o=
  1220. n a two-layer Riemann sheet like that of the square root function.</DIV> =
  1221. <DIV> </DIV> <DIV>The hrynewtnnn_m formulae also use an (XAXIS) symm=
  1222. etry declaration. (The generic hrynewt_m can't use this without trashing =
  1223. the output for non-real values of n.)</DIV> <DIV> </DIV> <DIV>Observ=
  1224. ations:</DIV> <DIV>* Certain choices of n produce three-fold-symmetric Ma=
  1225. ndelbrot sets. Find out which!</DIV> <DIV>* Mangled and occasionally also=
  1226.  intact Mandelbrots can be extracted when n is "strange" but has a real p=
  1227. art greater than 2.</DIV> <DIV>* You get radial petals with n real, conce=
  1228. ntric patterns with n imaginary, and logarithmic spirals with complex n; =
  1229. the ratio of</DIV> <DIV>   real to imaginary parts determines w=
  1230. hether the spiral is steep (n close to real) or shallow (n close to imagi=
  1231. nary).</DIV> <DIV>* The Mandelbrots are always quadratic -- for real n &g=
  1232. t; 2, the critical point at zero is nondegenerate, and the critical point=
  1233. </DIV> <DIV>   pair for hrynewt2_m is degenerate only at o=
  1234. ne specific value of a.</DIV> <DIV> </DIV> <DIV>The formula file beg=
  1235. ins with an extensive comment that details the mathematical constructions=
  1236.  that informed their design.</DIV> <DIV> </DIV> <DIV>comment {<BR>&n=
  1237. bsp; We want a Newton's method with a large number of basins, most of whi=
  1238. ch are fixed and predictable.<BR>  This is accomplished by choosing =
  1239. a polynomial function to solve composed of two factors, one with many fix=
  1240. ed roots,<BR>  the other with a few mobile ones:<BR>  p(z) =3D =
  1241. (z^n-1)(z^3-az-1).<BR>  The Newton iteration is:<BR>  z -> r=
  1242. (z)<BR>  where<BR>  r(z) =3D z - p(z)/p'(z)<BR>  &nbs=
  1243. p;    =3D (zp'(z) - p(z))/p'(z)<BR>  We easily discov=
  1244. er p'(z) to be<BR>  p'(z) =3D (z^n-1)(3z^2-a) + (nz^(n-1))(z^3-az-1)=
  1245. <BR>        =3D (3+n)z^(n+2) - a(n+1)z=
  1246. ^n - nz^(n-1) - 3z^2 + a<BR>  so<BR>  (zp'(z) - p(z)) =3D (z^n-=
  1247. 1)(3z^3-az)+(nz^n)(z^3-az-1) - (z^n-1)(z^3-az-1)<BR>   &nb=
  1248. sp;           &nbs=
  1249. p;  =3D (z^n-1)(2z^3+1)+(nz^n)(z^3-az-1)<BR>    =
  1250.             &=
  1251. nbsp; =3D (2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1<BR>  and<BR=
  1252. >  r(z) =3D ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)/((3+n)z=
  1253. ^(n+2) - a(n+1)z^n - nz^(n-1) - 3z^2 + a)<BR>  Using the quotient ru=
  1254. le the numerator of r'(z) is<BR>  ((3+n)z^(n+2) - a(n+1)z^n - nz^(n-=
  1255. 1) - 3z^2 + a)((n+2)(n+3)z^(n+2) - an(n+1)z^n - n(n-1)z^(n-1) - 6z^2) -<B=
  1256. R>    ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)((n+=
  1257. 2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z)<BR>  which fac=
  1258. tors into<BR>  ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) -=
  1259.  6z)<BR>  and<BR>  ((3+n)z^(n+3) - a(n+1)z^(n+1) - nz^n - 3z^3 =
  1260. + az) - ((2+n)z^(n+3) - anz^(n+1) - (n-1)z^n - 2z^3 - 1)<BR>  which =
  1261. simplifies to<BR>  z^(n+3) - az^(n+1) - z^n - z^3 + az + 1<BR> =
  1262.  Note that p(z) =3D z^(n+3) - az^(n+1) - z^n - z^3 + az + 1.<BR>  Th=
  1263. us the critical points of r(z) are the roots of p(z) and the roots of<BR>=
  1264.   q(z) :=3D ((n+2)(n+3)z^(n+1) - an(n+1)z^(n-1) - n(n-1)z^(n-2) - 6z=
  1265. )<BR>  These latter are the "interesting" critical points, as the ot=
  1266. her critical points of r(z) are all superattracting.<BR>  Note that =
  1267. q(z) is divisible by z, so 0 is an "interesting" critical point of r(z), =
  1268. for n not one of 2, 1, or -1.<BR>  This is the critical point used i=
  1269. n the below hrynewt_m formulas except for hrynewt2_m. For n =3D 2,<BR>&nb=
  1270. sp; q(z)/2 =3D 10z^3 - 3(a+1)z - 1<BR>  Put z =3D y + (a+1)/10y to g=
  1271. et<BR>  q(z)/2 =3D y^6 - y^3/10 + (a+1)^3/1000<BR>  so<BR> =
  1272. ; 2y^3 =3D 1/10 +/-sqrt(1/100 - 4(a+1)^3/1000),<BR>  y =3D ((1/10 +/=
  1273. - -sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3)<BR>  and<BR>  z =3D ((1/=
  1274. 10 +/-sqrt(1/100 - 4(a+1)^3/1000))/2)^(1/3) + (a+1)/((1/10 +/-sqrt(1/100 =
  1275. - - 4(a+1)^3)/1000)/2)^(1/3)<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt_j { =
  1276. ; p1 is Julia parameter, p2 is exponent n, p3 is tolerance (if 0, will ac=
  1277. t like 0.001).<BR>         &=
  1278. nbsp;  ; SLOW. Use predefined hrynewtnnn_j where possible.<BR> =
  1279.  z =3D pixel, a =3D p1, n =3D p2, n1 =3D n - 1, r =3D p3<BR>  IF(r =3D=
  1280. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  1281. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D z^n1<BR> =
  1282. ; zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D z=
  1283. no*zzz<BR>  ppz =3D zno*(3*z2 - a) + n*zn1*zzz<BR>  z =3D z - p=
  1284. z/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt_m =
  1285. { ; p2 is exponent n, p3 is tolerance (if 0, will act like 0.001).<BR>&nb=
  1286. sp;           ; SLOW. U=
  1287. se predefined hrynewtnnn_m where possible.<BR>  z =3D 0, a =3D pixel=
  1288. , n =3D p2, n1 =3D n - 1, r =3D p3<BR>  IF(r =3D=3D 0)<BR> &nbs=
  1289. p;  r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<=
  1290. BR>  z3 =3D z*z2<BR>  zn1 =3D z^n1<BR>  zn =3D z*zn1<BR>&n=
  1291. bsp; zno =3D (zn - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D z=
  1292. no*zzz<BR>  ppz =3D zno*(3*z2 - a) + n*zn1*zzz<BR>  z =3D z - p=
  1293. z/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt2_j=
  1294.  { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<=
  1295. BR>           &nbs=
  1296. p; ; n =3D 2.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  IF(r =3D=
  1297. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  1298. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z2 - 1)<BR>&=
  1299. nbsp; zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D z=
  1300. no*(3*z2 - a) + 2*z*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r=
  1301. <BR>}</DIV> <DIV> </DIV> <DIV>hrynewt2_m (XAXIS) { ; p3 is tolerance=
  1302.  (if 0, will act like 0.001).<BR>      &nbs=
  1303. p;      ; n =3D 2.<BR>  a =3D pixel,<BR>&nb=
  1304. sp; ap1 =3D a + 1,<BR>  IF((real(ap1) >=3D 0) || ((abs(real(ap1))=
  1305. *(3^(0.5))) < abs(imag(ap1))))<BR>    t =3D ((0.1 + (0.=
  1306. 01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),<BR>  ELSE<BR>  &=
  1307. nbsp; t =3D ((0.1 - (0.01 - 0.004*sqr(ap1)*ap1)^(0.5))/2)^(1/3),<BR> =
  1308. ; ENDIF<BR>  z =3D t + 0.1*ap1/t, r =3D p3<BR>  IF(r =3D=3D 0)<=
  1309. BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z=
  1310. 2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z2 - 1)<BR>  z=
  1311. zz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z=
  1312. 2 - a) + 2*z*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</=
  1313. DIV> <DIV> </DIV> <DIV>hrynewt3_j { ; p1 is Julia parameter, p3 is t=
  1314. olerance (if 0, will act like 0.001).<BR>     &n=
  1315. bsp;       ; n =3D 3.<BR>  z =3D pixel=
  1316. , a =3D p1, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D=
  1317.  0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D=
  1318.  z*z2<BR>  zno =3D (z3 - 1)<BR>  zzz =3D zno - a*z<BR>  tz=
  1319. 2 =3D 3*z2<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(tz2 - a) + tz2=
  1320. *zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV>&n=
  1321. bsp;</DIV> <DIV>hrynewt3_m (XAXIS) { ; p3 is tolerance (if 0, will act li=
  1322. ke 0.001).<BR>          =
  1323. ;   ; n =3D 3.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>&nbs=
  1324. p; IF(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>&n=
  1325. bsp; :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z=
  1326. 3 - 1)<BR>  zzz =3D zno - a*z<BR>  tz2 =3D 3*z2<BR>  pz =3D=
  1327.  zno*zzz<BR>  ppz =3D zno*(tz2 - a) + tz2*zzz<BR>  z =3D z - pz=
  1328. /ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt4_j =
  1329. { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<B=
  1330. R>            =
  1331. ; ; n =3D 4.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  IF(r =3D=
  1332. =3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR>&=
  1333. nbsp; z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zno =3D (z*z3 - 1)<BR=
  1334. >  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D=
  1335.  zno*(3*z2 - a) + 4*z3*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| >=
  1336. ; r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt4_m (XAXIS) { ; p3 is tolera=
  1337. nce (if 0, will act like 0.001).<BR>      &=
  1338. nbsp;      ; n =3D 4.<BR>  z =3D 0, a =3D p=
  1339. ixel, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D 0.001=
  1340. <BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z=
  1341. 2<BR>  zno =3D (z*z3 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR> =
  1342.  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 4*z3*zzz<BR>  z =3D=
  1343.  z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hryn=
  1344. ewt5_j { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.=
  1345. 001).<BR>          &nbs=
  1346. p;  ; n =3D 5.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  I=
  1347. F(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR> =
  1348.  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(z2=
  1349. )<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR> =
  1350. ; pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 5*zn1*zzz<BR>  z=
  1351.  =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>=
  1352. hrynewt5_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0.001).<BR>&n=
  1353. bsp;            ; =
  1354. n =3D 5.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>  IF(r =3D=3D 0=
  1355. )<BR>    r =3D 0.001<BR>  ENDIF<BR>  :<BR> =
  1356.  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(z2)<BR>  =
  1357. zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno=
  1358. *zzz<BR>  ppz =3D zno*(3*z2 - a) + 5*zn1*zzz<BR>  z =3D z - pz/=
  1359. ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt17_j =
  1360. { ; p1 is Julia parameter, p3 is tolerance (if 0, will act like 0.001).<B=
  1361. R>            =
  1362. ;  ; n =3D 17.<BR>  z =3D pixel, a =3D p1, r =3D p3<BR>  I=
  1363. F(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR> =
  1364.  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D sqr(sq=
  1365. r(sqr(z2)))<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1=
  1366. )<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 17*zn1*zzz<=
  1367. BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV> <=
  1368. /DIV> <DIV>hrynewt17_m (XAXIS) { ; p3 is tolerance (if 0, will act like 0=
  1369. .001).<BR>          &nb=
  1370. sp;   ; n =3D 17.<BR>  z =3D 0, a =3D pixel, r =3D p3<BR>&=
  1371. nbsp; IF(r =3D=3D 0)<BR>    r =3D 0.001<BR>  ENDIF<BR=
  1372. >  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D z*z2<BR>  zn1 =3D=
  1373.  sqr(sqr(sqr(z2)))<BR>  zno =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - =
  1374. a*z - 1)<BR>  pz =3D zno*zzz<BR>  ppz =3D zno*(3*z2 - a) + 17*z=
  1375. n1*zzz<BR>  z =3D z - pz/ppz,<BR>  |pz| > r<BR>}</DIV> <DIV>=
  1376.  </DIV> <DIV>hrynewt33_j { ; p1 is Julia parameter, p3 is tolerance =
  1377. (if 0, will act like 0.001).<BR>       =
  1378. ;       ; n =3D 33.<BR>  z =3D pixel, =
  1379. a =3D p1, r =3D p3<BR>  IF(r =3D=3D 0)<BR>    r =3D 0=
  1380. .001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>  z3 =3D=
  1381.  z*z2<BR>  zn1 =3D sqr(sqr(sqr(sqr(z2))))<BR>  zno =3D (z*zn1 -=
  1382.  1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz<BR>  p=
  1383. pz =3D zno*(3*z2 - a) + 33*zn1*zzz<BR>  z =3D z - pz/ppz,<BR>  =
  1384. |pz| > r<BR>}</DIV> <DIV> </DIV> <DIV>hrynewt33_m (XAXIS) { ; p3 =
  1385. is tolerance (if 0, will act like 0.001).<BR>    &nbs=
  1386. p;         ; n =3D 33.<BR>  =
  1387. z =3D 0, a =3D pixel, r =3D p3<BR>  IF(r =3D=3D 0)<BR>  &n=
  1388. bsp; r =3D 0.001<BR>  ENDIF<BR>  :<BR>  z2 =3D sqr(z)<BR>&=
  1389. nbsp; z3 =3D z*z2<BR>  zn1 =3D sqr(sqr(sqr(sqr(z2))))<BR>  zno =
  1390. =3D (z*zn1 - 1)<BR>  zzz =3D (z3 - a*z - 1)<BR>  pz =3D zno*zzz=
  1391. <BR>  ppz =3D zno*(3*z2 - a) + 33*zn1*zzz<BR>  z =3D z - pz/ppz=
  1392. ,<BR>  |pz| > r<BR>}<BR></DIV></BODY></HTML><DIV><BR><br clear=3D=
  1393. all><hr>Get Your Private, Free E-mail from MSN Hotmail at <a href=3D"http=
  1394. ://www.hotmail.com">http://www.hotmail.com</a>.<br></p></DIV>
  1395.  
  1396. - ------=_NextPart_001_0000_01C0F062.2AD5F4A0--
  1397.  
  1398. - --------------------------------------------------------------
  1399. Thanks for using Fractint, The Fractals and Fractint Discussion List
  1400. Post Message:   fractint@lists.xmission.com
  1401. Get Commands:   majordomo@lists.xmission.com "help"
  1402. Administrator:  twegner@fractint.org
  1403. Unsubscribe:    majordomo@lists.xmission.com "unsubscribe fractint"
  1404.  
  1405. ------------------------------
  1406.  
  1407. End of fractint-digest V1 #570
  1408. ******************************
  1409.  
  1410.