Fractals/Iterations in the complex plane/pcheckerboard

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Task[edit | edit source]

How to show dynamics inside parabolic basin ?


Parameter c is a parabolic point

Attractor (limit set, attracting cycle / fixed point )

  • belongs to Julia set ( not as in other cases )
  • is weakly attracting ( lazy dynamics)


Algorithm[edit | edit source]

Star = Parabolic critical orbit with 5 arms in different colors

Color depends on:

  • sign of imaginary part of numerically approximated Fatou coordinate (numerical explanation )
  • position of under in relation to one arm of critical orbit star: above or below ( geometric explanation)


Attracting ( critical orbit) and repelling axes ( external rays landing on the parabolic fixed point ) divide niegbourhood of fixed point intio sectors

Name of the algorithm[edit | edit source]

Steps[edit | edit source]

First choose:

  • choose target set, which is a circle with :
    • center in parabolic fixed point
    • radius such small that width of exterior between components is smaller then pixel width
  • Target set consist of fragments of p components ( sectors). Divide each part of target set into 2 subsectors ( above and below critical orbit ) = binary decomposition

Steps:

  • take = initial point of the orbit ( pixel)
  • make forward iterations
    • if points escapes = exterior
    • if point do not escapes then check if point is near fixed point ( in the target set)
      • if no then make some extra iterations
      • if is then check in what half of target set it ( binary decomposition)

How to find trap ?[edit | edit source]

Steps for parabolic basin

  • choose component with critical point inside
  • choose trap
  • decompose trap disk for binary decomposition = divide into 2 parts : above and beyond the critical orbit


Trap features:

  • is inside component with critical point inside
  • trap has parabolic point on it's boundary
  • center of the trap is midpoint between last point of critical orbit and fixed point
  • radius of the trap is half of distance between fixed point and last point of critical orbit



Target set

  • for periods 1 and 2 in case of complex quadratic polynomial : circle
  • for periods >2: curvilinear sectors of circle around fixed point, 2 triangles described by :



Nota that one trap for components is bigger then two traps for BDM

  • trap for componets : triangle
  • trap for BDM : triangle

where

  • z1, z2 are the last point of external rays bounding component ( usually the biggest one, with critical point inside )
  • is the critical point, or it's forward image in case thet critical orbit arm is not straight line
  • is parabolic fixed point

Because of lazy dynamics one stops the computation before critical orbit and external rays land on the parabolic fixed point. The remaining gap is filled (approximated) with line from the last point to the landing point.

How to compute preimages of critical point ?[edit | edit source]

Here a and b are 2 inverse ( or backward ) iterations ( multivalued with argument adjusted ) used in the program Mandel by Wolf Jung:

  • 1-st inverse function = key a =
  • 2-nd inverse function = key b =
   "Use the keys a and b for the inverse mapping. (The two branches are approximately mapping to the parts A and B of the itinerary.)


 
/* *****************************************************************************************
 *************************** inverse function of f(z) = z^2 + c ****************************
 *******************************************************************************************
*/

 /*f^{-1}(z) =  inverse with argument adjusted
    "When you write the real and imaginary parts in the formulas as complex numbers again,
       you see that it is sqrt( -c / |c|^2 )  *  sqrt( |c|^2 - conj(c)*z ) ,
     so this is just sqrt( z - c )  except for the overall sign:
    the standard square-root takes values in the right halfplane,  but this is rotated by the squareroot of -c .
    The new line between the two planes has half the argument of -c .
    (It is not orthogonal to c ...  )" 
    ...
    "the argument adjusting in the inverse branch has nothing to do with computing external arguments.  It is related to itineraries and kneading sequences,  ...
    Kneading sequences are explained in demo 4 or 5, in my slides on the stripping algorithm, and in several papers by Bruin and Schleicher.
 
    W Jung " */
complex double fa(const complex double z0){

	double t = cabs(c);
  	t = t*t;
  	complex double z =  csqrt(-c/t)*csqrt(t-z0*conj(c)); 
  	return - z;


}

complex double fb(const complex double z0){

	double t = cabs(c);
  	t = t*t;
  	complex double z =  csqrt(-c/t)*csqrt(t-z0*conj(c)); 
  	return  z;


}


complex double give_preimage_a(complex double z0){

	int i;
	int iMax = child_period;
	complex double z = z0;
	
	
	
	for (i = 0; i < iMax; ++i){
		z = fa(z); }
	return z;

}


complex double give_preimage_b(complex double z0){

	int i;
	int iMax = child_period;
	complex double z = z0;
	
	
	
	
	for (i = 0; i < iMax-1; ++i){
		z = fa(z); }
	z = fb(z);
	return z;

}


int Draw_preimages(complex double z0, unsigned char iColor, unsigned char A[]){

	complex double z = z0;
	int i;
	int iMax = 100;
	
	
	for (i = 0; i < iMax; ++i){
		z = give_preimage_a(z);
 		dDrawPoint(z, iColor, A);
 		}
 		
 	z = z0;	
 	
 	z = give_preimage_b(z);
 	dDrawPoint(z, iColor, A);
 	for (i = 0; i < iMax - 1; ++i){
		z = give_preimage_a(z);
 		dDrawPoint(z, iColor, A);
 		}
 	
	
	return 0;
}

dictionary[edit | edit source]

  • The chessboard is the name of this decomposition of A into a graph and boxes
  • the chessboard graph
  • the chessboard boxes :" The connected components of its complement in A are called the chessboard boxes (in an actual chessboard they are called squares but here they have infinitely many corners and not just four). " [1]
  • the two principal or main chessboard boxes
  • trap = target set = attracting petal

Visualizing Structures with the Chessboard Graph

  "An often used and very useful technique of visualization of ramified covers (and partial cover structures that are not too messy) consists in cutting the range in domains, often simply connected, along lines joining singular values, and taking the pre-image of these pieces, which gives a new set of pieces. The way they connect together and the way they map to the range give information about the structure." Arnaud Chéritat Near Parabolic Renormalization for Unicritical Holomorphic Maps by Arnaud Chéritat
Parabolic orbits insidse upper main chessboard box for f(z) = z^2 +0.25

description[edit | edit source]

"A nice way to visualize the extended Fatou coordinates is to make use of the parabolic graph and chessboard." [2]

Color points according to :[3]

  • the integer part of Fatou coordinate
  • the sign of imaginary part

Corners of the chessboard ( where four tiles meet ) are precritical points [4]

or

1/1[edit | edit source]

The parabolic chessboard for the polynomial  z + z^2  normalizing  
* each yellow tile biholomorphically maps to the upper half plane
* each blue tile biholomorphically maps to the lower half plane under 
* The pre-critical points of  or equivalently the critical points of  are located where four tiles meet"[5]

Images[edit | edit source]

Click on the images to see the code and descriptions on the Commons !




evolution on the escape route 0

  • start with nucleus of component with period 1 (c = 0)
  • go along internal ray for angle = 0
  • parabolic point (c = 1/4)
  • on the external ray for angle 0





Examples :

  • Tiles: Tessellation of the Interior of Filled Julia Sets by T Kawahira[6]
  • coloured cauliflower by A Cheritat [7]

code[edit | edit source]

For the internal angle 0/1 and 1/2 critical orbit is on the real line ( Im(z) = 0). It is easy to compute parabolic chessboard because one have to check only imaginary part of z. For other cases it is not so easy

0/1[edit | edit source]

How the target set is changing along an internal ray 0

Cpp code by Wolf Jung see function parabolic from file mndlbrot.cpp ( program mandel ) [8][9]

To see effect :

  • run Mandel
  • (on parameter plane ) find parabolic point for angle 0, which is c=0.25. To do it use key c, in window input 0 and return.

C code :

  // in function uint mndlbrot::esctime(double x, double y)
  if (b == 0.0 && !drawmode && sign < 0
      && (a == 0.25 || a == -0.75)) return parabolic(x, y);
 // uint mndlbrot::parabolic(double x, double y)
 if (Zx>=0 && Zx <= 0.5 && (Zy > 0 ? Zy : -Zy)<= 0.5 - Zx) 
            { if (Zy>0) data[i]=200; // show petal
                     else data[i]=150;}

Gnuplot code :

reset
f(x,y)=  x>=0 && x<=0.5 &&  (y > 0 ? y : -y) <= 0.5 - x
unset colorbox
set isosample 300, 300
set xlabel 'x'
set ylabel 'y'
set sample 300
set pm3d map
splot [-2:2] [-2:2] f(x,y)

1/2 or fat basilica[edit | edit source]

Cpp code by Wolf Jung see function parabolic from file mndlbrot.cpp ( program mandel ) [10] To see effect :

  • run Mandel
  • (on parameter plane ) find parabolic point for angle 1/2, which is c=-0.75. To do it use key c, in window input 0 and return.

C code :

  // in function uint mndlbrot::esctime(double x, double y)
  if (b == 0.0 && !drawmode && sign < 0
      && (a == 0.25 || a == -0.75)) return parabolic(x, y);
 // uint mndlbrot::parabolic(double x, double y)
  if (A < 0 && x >= -0.5 && x <= 0 && (y > 0 ? y : -y) <= 0.3 + 0.6*x)
      {  if (j & 1) return (y > 0 ? 65282u : 65290u);
         else return (y > 0 ? 65281u : 65289u);
      }


1/3[edit | edit source]


Numerical approximation of Julia set for fc(z)= z^2 + c 
child_period  = 3 
internal argument in turns = 1 / 3
parameter c = -0.1250000000000000 +0.6495190528383290*I 
fixed point alfa z = a = -0.2500000000000000 +0.4330127018922194*I 
external angles of rays landing on the fixed point  : t = 1/7 	t = 2/7 	t = 4/7
critical point z = zcr = 0.0000000000000000 +0.0000000000000000*I 
precritical point z = z_precritical = -0.2299551351162811 -0.1413579816050052*I  
external argument in turns of first ray landing on fixed point = 1 / 7

1/4[edit | edit source]

Julia set for fc(z)= z^2 + c 
internal argument in turns = 1/4
parameter c = 0.2500000000000000 +0.5000000000000000*I 
fixed point alfa z = a = 0.0000000000000000 +0.5000000000000000*I 
critical point z = zcr = 0.0000000000000000 +0.0000000000000000*I 
precritical point z = z_precritical = -0.2288905993372869 -0.0151096456992677*I  
external angles of rays landing on fixed point: 1/15, 2/15, 4/15, 8/15 ( in turns)

5/11[edit | edit source]

Numerical approximation of Julia set for fc(z)= z^2 + c 
parameter c = ( -0.6900598700150440 ; 0.2760264827846140 ) 
fixed point alfa z = a = ( -0.4797464868072486 ; 0.1408662784207147 ) 
external angle of ray landing on fixed point: 341/2047

See also[edit | edit source]

references[edit | edit source]

  1. Near parabolic renormalization for unisingular holomorphic maps by Arnaud Cheritat
  2. About Inou and Shishikura’s near parabolic renormalization by Arnaud Cheritat
  3. Applications of near-parabolic renormalization by Mitsuhiro Shishikura
  4. Complex Dynamical Systems by Robert L. Devaney, page
  5. Antiholomorphic Dynamics: Topology of Parameter Spaces and Discontinuity of Straightening by Sabyasachi Mukherjee
  6. tiles by T Kawahira
  7. checkerboards by A Cheritat
  8. commons:Category:Fractals created with Mandel
  9. Program Mandel by Wolf Jung
  10. Program Mandel by Wolf Jung
  11. Oleg Ivrii (Tel Aviv University), "Shapes of trees"