Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Fractals/Iterations in the complex plane/MandelbrotSetExteriorComplex potential

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

right|thumb| Uniformization of complement of Mandelbrot set Complex potential on the parameter plane The green procedure is named after the British mathematician George Green Complex potential is a complex number, so it has 2 parts: a real part = real potential = absolute value an imaginary part = external angle One can take also its: curl divergence So on one image one can use more than one variable to color image. The Mandelbrot Function by John J. G. Savard Implementations: MatemathicaReference wolfram: MandelbrotSetBoettcher Names: Boettcher coordinate Real potential = CPM/M Names: eponimes: Douady-Hubbard PotentialDouady Hubbard Potential by Linas Vepstas Hubbard-Douady potential i quilezles : distance fractals electric: The electric potential lecture10 by Professor Douglas C. Ravenel the voltage Distance estimation method for drawing Mandelbrot and Julia sets Dr. Lindsay Robert Wilson Green function = G(c) In Fractint : potential = log(modulus)/2^iterations One can use real potential to: smooth (continuous) coloringSmooth colouring is the key to the Mandelbrot set by Tony Finch discrete coloring ( level sets of potential) 3D view Code: c code from mandel by Wolf Jung Here is Delphi function which gives level of potential : Function GiveLevelOfPotential(potential:extended):integer; var r:extended; begin r:= log2(abs(potential)); result:=ceil(r); end; /******************************************************************/ // /fractint/common/calcfrac.c /* CALCFRAC.C contains the high level ("engine") code for calculating the fractal images (well, SOMEBODY had to do it!). Original author Tim Wegner, but just about ALL the authors have contributed SOME code to this routine at one time or another, or contributed to one of the many massive restructurings. The following modules work very closely with CALCFRAC.C: FRACTALS.C the fractal-specific code for escape-time fractals. FRACSUBR.C assorted subroutines belonging mainly to calcfrac. CALCMAND.ASM fast Mandelbrot/Julia integer implementation Additional fractal-specific modules are also invoked from CALCFRAC: LORENZ.C engine level and fractal specific code for attractors. JB.C julibrot logic PARSER.C formula fractals and more -------------------------------------------------------------------- */ /* Continuous potential calculation for Mandelbrot and Julia */ /* Reference: Science of Fractal Images p. 190. */ /* Special thanks to Mark Peterson for his "MtMand" program that */ /* beautifully approximates plate 25 (same reference) and spurred */ /* on the inclusion of similar capabilities in FRACTINT. */ /* */ /* The purpose of this function is to calculate a color value */ /* for a fractal that varies continuously with the screen pixels */ /* locations for better rendering in 3D. */ /* */ /* Here "magnitude" is the modulus of the orbit value at */ /* "iterations". The potparms[] are user-entered paramters */ /* controlling the level and slope of the continuous potential */ /* surface. Returns color. - Tim Wegner 6/25/89 */ /* */ /* -- Change history -- */ /* */ /* 09/12/89 - added floatflag support and fixed float underflow */ /* */ /******************************************************************/ static int _fastcall potential(double mag, long iterations) { float f_mag,f_tmp,pot; double d_tmp; int i_pot; long l_pot; if(iterations < maxit) { pot = (float)(l_pot = iterations+2); if(l_pot <= 0 || mag <= 1.0) pot = (float)0.0; else /* pot = log(mag) / pow(2.0, (double)pot); */ { if(l_pot < 120 && !floatflag) /* empirically determined limit of fShift */ { f_mag = (float)mag; fLog14(f_mag,f_tmp); /* this SHOULD be non-negative */ fShift(f_tmp,(char)-l_pot,pot); } else { d_tmp = log(mag)/(double)pow(2.0,(double)pot); if(d_tmp > FLT_MIN) /* prevent float type underflow */ pot = (float)d_tmp; else pot = (float)0.0; } } /* following transformation strictly for aesthetic reasons */ /* meaning of parameters: potparam[0] -- zero potential level - highest color - potparam[1] -- slope multiplier -- higher is steeper potparam[2] -- rqlim value if changeable (bailout for modulus) */ if(pot > 0.0) { if(floatflag) pot = (float)sqrt((double)pot); else { fSqrt14(pot,f_tmp); pot = f_tmp; } pot = (float)(potparam[0] - pot*potparam[1] - 1.0); } else pot = (float)(potparam[0] - 1.0); if(pot < 1.0) pot = (float)1.0; /* avoid color 0 */ } else if(inside >= 0) pot = inside; else /* inside < 0 implies inside=maxit, so use 1st pot param instead */ pot = (float)potparam[0]; i_pot = (int)((l_pot = (long)(pot * 256)) >> 8); if(i_pot >= colors) { i_pot = colors - 1; l_pot = 255; } if(pot16bit) { if (dotmode != 11) /* if putcolor won't be doing it for us */ writedisk(col+sxoffs,row+syoffs,i_pot); writedisk(col+sxoffs,row+sydots+syoffs,(int)l_pot); } return(i_pot); } External angle and external ( parameter) ray Example code ( Mathematica) Image[Table[If[ColorQ@#,#,Black]&@Hue[(Arg[MandelbrotSetBoettcher[x+I y]]+Pi)/(2Pi)],{y,-2,2,.005},{x,-2,2,.005}]] conjugate ange Conjugate angle angles of the wake For the Mandelbrot set, considering strictly periodic rays with period >= 2, the other in the pair can be found in O(period^2) time using Henk Bruin and Dierk Schleicher's Symbolic Dynamics of Quadratic Polynomials : Algorithm 13.3: Code: https://code.mathr.co.uk/mandelbrot-symbolics/blob/82378e281c6ef149c7280d2b10076fffd83e0a8c:/c/lib/m_q_unlinked.c https://code.mathr.co.uk/mandelbrot-symbolics/blob/82378e281c6ef149c7280d2b10076fffd83e0a8c:/c/lib/m_q_conjugate.c Methods First find angle of last iteration. It is easy to compute and shows some external rays as a borders of level sets. binary decomposition of LSM/M nth-decomposition : color of exterior is proportional to quadrant in which last iteration lands. ( see below ) exterior grid coordinates: (arg(final z),log(|final z|)/log(escaperadius)) fractalforums.org : mandelbrot-external-angles stripe average coloring Then one go further. automatically calculate external angles from nucleus and period by Claude Heiland-Allen calculate external angles from nucleus and period by Claude Heiland-Allen Methods: newton method Tomoki Kawahira paper An algorithm to draw external rays of the Mandelbrot set by Tomoki Kawahira Wolf Jung explanationWolf Jung explanation speeding up external ray tracing by Mandelbrot set Newton basins - Claude Heiland-Allen Claude Heiland-Allenmandelbrot_set_newton_basins by lines perpendicular to equipotential lines A Method to Solve the Limitations in Drawing External Rays of the Mandelbrot Set M. Romera,1 G. Pastor, A. B. Orue,1 A. Martin, M.-F. Danca,and F. Montoya field line calculations, images and videos by Michael T Everest field lines by Chris M. Thomasson Fractal forum : Plotting field lines during iteration... using Runge-Kutta integration by fractalforums : smooth-external-angle-of-mandelbrot-set images mandelbrot-phase-angle-gif-loop Tests The Wolf Jung test thumbnail|right|Part of parameter plane with external rays 1/7, 321685687669320/2251799813685247 and 321685687669322/2251799813685247 landing on the Mandelbrot set The external parameter rays for angles (in turns) 321685687669320/2251799813685247 (period 51, lands on c1 = -0.088891642419446 +0.650955631292636i ) 321685687669322/2251799813685247 ( period 51 lands on c2 = -0.090588078906990 +0.655983860334813i ) 1/7 ( period 3, lands on c3 = -0.125000000000000 +0.649519052838329i ) Angles differ by about , but the landing points of the corresponding parameter rays are about 0.035 apart.Wolf Jung's test for precision of drawing parameter rays It can be computed with Maxima CAS : (%i1) c1: -0.088891642419446 +0.650955631292636*%i; (%o1) 0.650955631292636*%i−0.088891642419446 (%i2) c2:-0.090588078906990 +0.655983860334813*%i; (%o2) 0.655983860334813*%i−0.09058807890699 (%i3) abs(c2-c1); (%o3) .005306692383854863 (%i4) c3: -0.125000000000000 +0.649519052838329*%i$ (%i5) abs(c3-c1); (%o5) .03613692356607755 (%i6) a3:1/7$ (%i7) float(abs(a3-a1)); (%o7) 4.440892098500628*10^−16 Informations from W Jung program : The angle 1/7 or p001 has preperiod = 0 and period = 3. The conjugate angle is 2/7 or p010 . The kneading sequence is AA* and the internal address is 1-3 . The corresponding parameter rays are landing at the root of a satellite component of period 3. It is bifurcating from period 1. The angle 321685687669320/2251799813685247 or p001001001001001001001001001001001001001001001001000 has preperiod = 0 and period = 51. The conjugate angle is 321685687669319/2251799813685247 or p001001001001001001001001001001001001001001001000111 . The kneading sequence is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB* and the internal address is 1-49-50-51 . The corresponding parameter rays are landing at the root of a primitive component of period 51. The angle 321685687669322/2251799813685247 or p001001001001001001001001001001001001001001001001010 has preperiod = 0 and period = 51. The conjugate angle is 321685687669329/2251799813685247 or p001001001001001001001001001001001001001001001010001 . The kneading sequence is AABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAA* and the internal address is 1-3-51 . The corresponding parameter rays are landing at the root of a satellite component of period 51. It is bifurcating from period 3. The test by G. Pastor and Miguel Romera The external parameter rays for angles (in turns) 6871947673/34359738367 ( period 35 ) 9162596898/34359738367 ( period 35 ) the central babies Mandelbrot sets of the cauliflowers located at -0.153756141 + 1.030383223i (not that 34359738367 = 2^35 - 1) test by M. Romera,1 G. Pastor, A. B. Orue,1 A. Martin, M.-F. Danca,and F. Montoya thumbnail|right|Part of parameter plane with external 5 rays landing on the Mandelbrot set.png G Pastor gave an example of external rays for which the resolution of the IEEE 754 is not sufficient:A Method to Solve the Limitations in Drawing External Rays of the Mandelbrot Set M. Romera,1 G. Pastor, A. B. Orue,1 A. Martin, M.-F. Danca,and F. Montoya ( period 3, lands on root point of period 3 component c3 = -0.125000000000000 +0.649519052838329i ) One can analyze these angles using program by Claude Heiland-Allen : ./bin/mandelbrot_describe_external_angle ".(001)" binary: .(001) decimal: 1/7 preperiod: 0 period: 3 ./bin/mandelbrot_describe_external_angle ".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010)" binary: .(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010) decimal: 33877456965431938318210482471113262183356704085033125021829876006886584214655562/237142198758023568227473377297792835283496928595231875152809132048206089502588927 preperiod: 0 period: 267 ./bin/mandelbrot_describe_external_angle ".(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010001)" binary: .(001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010001) decimal: 33877456965431938318210482471113262183356704085033125021829876006886584214655569/237142198758023568227473377297792835283496928595231875152809132048206089502588927 preperiod: 0 period: 267 ./bin/mandelbrot_describe_external_angle ".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010001)" binary: .(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010001) decimal: 67754913930863876636420964942226524366713408170066250043659752013773168429311121/474284397516047136454946754595585670566993857190463750305618264096412179005177855 preperiod: 0 period: 268 ./bin/mandelbrot_describe_external_angle ".(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010)" binary: .(0010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010) decimal: 67754913930863876636420964942226524366713408170066250043659752013773168429311122/474284397516047136454946754595585670566993857190463750305618264096412179005177855 preperiod: 0 period: 268 Landing points of above rays are roots with angled internal addresses ( description by Claude Heiland-Allen) : the upper one will be 1 -> 1/3 -> 3 -> 1/(period/3) -> period because it's the nearest bulb to the lower root cusp of 1/3 bulb and child bulbs of 1/3 bulb have periods 3 * denominator(internal angle) ie, 1 -> 1/3 -> 3 -> 1/89 -> 267 the lower one will be 1 -> floor(period/3)/period -> period because it's the nearest bulb below the 1/3 cusp ie, 1 -> 89/268 -> 268 the middle ray .(001) lands at the root of 1 -> 1/3 -> 3, from the cusp on the lower side (which is on the right in a standard unrotated view) References Category:Book:Fractals