Fractals/Iterations in the complex plane/1over2 family

From Wikibooks, open books for an open world
Jump to navigation Jump to search
Pariod doubleing cascade in the Mandelbrot set ( 1/2 family) showed by the exponential mapping

Periods of the period doubling cascade[1]:



Angled internal address:



where:

  • is the Myrberg-Feigenbaum point c = −1.401155 with external angles = (0.412454... , 0,58755...)


External angles[edit]

External angle of the parameter rays landin on the root points of hyperbolic componnets from the 1/2 family

Binary[edit]

angles ( binary periodic fractions) of hyperbolic components from the period doubling cascade 1*2^n
period = 1 	 0.(0)	                                                                 0.(1)
period = 2 	 0.(01)	                                                                 0.(10)
period = 4 	 0.(0110)	                                                         0.(1001)
period = 8 	 0.(01101001)	                                                         0.(10010110)
period = 16 	 0.(0110100110010110)	                                                 0.(1001011001101001)
period = 32 	 0.(01101001100101101001011001101001)	                                 0.(10010110011010010110100110010110)
period = 64 	 0.(0110100110010110100101100110100110010110011010010110100110010110)	 0.(1001011001101001011010011001011001101001100101101001011001101001)
period = 128 	 0.(01101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001)	 
                 0.(10010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110)
period = 256 	 
0.(0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110)	 
0.(1001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001100101100110100101101001100101101001011001101001011010011001011001101001100101101001011001101001)


Note that :


String Concatenation[edit]

MSS-harmonics [2] ( Metropolis, Stein and Stein[3] ):

in the form of binary fraction:

I can be computed with c code :

/*
Operating with external arguments in the Mandelbrot set antenna
by G Pastor, M Romera, G Alvarez and F Montoya, December 16, 2004

-------------- asprintf --------------------------------------
Using asprintf instead of sprintf or snprintf by james
http://www.stev.org/post/2012/02/10/Using-saprintf-instead-of-sprintf-or-snprintf.aspx

http://ubuntuforums.org/showthread.php?t=279801


gcc c.c -D_GNU_SOURCE -Wall // without #define _GNU_SOURCE

gcc h.c -Wall
cppcheck h.c


----------- run ----------------------

./a.out
./a.out > h.txt 

----------------
*/


#define _GNU_SOURCE // asprintf
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // strlen
 
int main() {
    	// output = angles of p*2^n component
    	char *sOut1  = ""; // in plaint text format
    	char *sOut2  = ""; // in plaint text format
    
    	// input = angles of period p=1 component
    	char *sIn1 = "0"; 
    	char *sIn2 = "1"; 
	
	int n = 0;    
	int nMax = 10;
	int p =1;  
	
  	printf(" angles ( binary periodic fractions) of hyperbolic components from the period doubling cascade %d*2^n\n ", p);
	printf(" period = %d \t 0.(%s)\t 0.(%s)\n", p, sIn1, sIn2);
    	
	
  
   	for (n=1; n<nMax; n++){

   		p *= 2; // period doubling cascade
   		// MSS-harmonic h(sIn1. sIn2) = (sOut1, sOut2) = (sIn1+sIn2, sIn2 + sIn1  ) here + means concat the strings 
   		asprintf(&sOut1, "%s%s", sIn1, sIn2);
   		asprintf(&sOut2, "%s%s", sIn2, sIn1);
   		
       		//
		printf(" period = %d \t 0.(%s)\t 0.(%s)\n", p, sOut1, sOut2);
		// 
		sIn1 = sOut1;
		sIn2 = sOut2;
		
		}
    	

    	//
    	free(sOut1);
    	free(sOut2); 
   
    	return 0;
}

string replacing[edit]

What external rays land on the Myrberg-Feigenbaum point ? The candidate upper external angle is obtained by using the substitution: 0 -> 01 and 1 -> 10 repeatedly:

  • 0
  • 01
  • 0110
  • 01101001
  • 0110100110010110
  • ...

But it is not known whether the rays actually lands; maybe M is not locally connected at the Feigenbaum point and some long decorations are shielding it from external rays.

One can compute it using Maxima CAS program :


kill(all);
remvalue(all);


f(x):=if (x=0) then [0,1] else [1,0];
compile(all);


a:[];
a:endcons([0],a);


for n:2 thru 10 step 1 do (
   a:endcons([],a),
   for x in a[n-1] do (
      a[n]:endcons(first(f(x)),a[n]),
      a[n]:endcons(second(f(x)),a[n])),
      print(n,a[n])
);

Decimal[edit]

  • 0.412454

Root points of the hyperbolic componnets[edit]

n Period = 2n Root point (cn)
0 1 0.25
1 2 −0.75
2 4 −1.25
3 8 −1.3680989
4 16 −1.3940462
5 32 −1.3996312
6 64 −1.4008287
7 128 −1.4010853
8 256 −1.4011402
9 512 −1.401151982029
10 1024 −1.401154502237
−1.4011551890

Centers[edit]

Centers of hyperbolic components are easier to compute then root points ( bifurcation points).

Period =          1 	center =  0.000000000000000000
Period =          2 	center = -1.000000000000000000
Period =          4 	center = -1.310702641336832884
Period =          8 	center = -1.381547484432061470
Period =         16 	center = -1.396945359704560642
Period =         32 	center = -1.400253081214782798
Period =         64 	center = -1.400961962944841041
Period =        128 	center = -1.401113804939776124
Period =        256 	center = -1.401146325826946179
Period =        512 	center = -1.401153290849923882
Period =       1024 	center = -1.401154782546617839 
Period =       2048 	center = -1.401155102022463976
Period =       4096 	center = -1.401155170444411267
Period =       8192 	center = -1.401155185098297292
Period =      16384 	center = -1.401155188236710937
Period =      32768 	center = -1.401155188908863045
Period =      65536 	center = -1.401155189052817413
Period =     131072 	center = -1.401155189083648072
Period =     262144 	center = -1.401155189090251057
Period =     524288 	center = -1.401155189091665208
Period =    1048576 	center = -1.401155189091968106
Period =    2097152 	center = -1.401155189092033014
Period =    4194304 	center = -1.401155189092046745
Period =    8388608 	center = -1.401155189092049779
Period =   16777216 	center = -1.401155189092050532
Period =   33554432 	center = -1.401155189092051127
Period =   67108864 	center = -1.401155189092050572
Period =  134217728 	center = -1.401155189092050593
Period =  268435456 	center = -1.401155189092050599


It is computed with cpp program using the code from Mandel

 
/*

This is not official program by W Jung,
but it usess his code ( I hope in a good way)
   These functions are part of Mandel  by Wolf Jung (C) 
   which is free software; you can
   redistribute and / or modify them under the terms of the GNU General
   Public License as published by the Free Software Foundation; either
   version 3, or (at your option) any later version. In short: there is
   no warranty of any kind; you must redistribute the source code as well.
   
   http://www.mndynamics.com/indexp.html
   
   to compile :
   g++ f.cpp -Wall -lm
   ./a.out
   
  
*/


#include <iostream> // std::cout
#include <cmath>     // sqrt
#include <limits>
#include <cfloat>
  
typedef  unsigned int  uint;
typedef  long double  mdouble; // mdynamo.h


// from the file qmnshell.cpp  by Wolf Jung (C) 2007-2018
mdouble cFb = -1.40115518909205060052L; 
mdouble dFb = 4.66920160910299067185L;
    

mdouble bailout = 16.0L; // mdynamoi.h


// c = A+B*i
mdouble A= 0.0L;  
mdouble B = 0.0L;

/* 
   function from mndlbrot.cpp  by Wolf Jung (C) 2007-2017 ...
   part of Mandel 5.14, which is free software; you can
   redistribute and / or modify them under the terms of the GNU General
   Public License as published by the Free Software Foundation; either
   version 3, or (at your option) any later version. In short: there is
   no warranty of any kind; you must redistribute the source code as well.
   
   http://www.mndynamics.com/indexp.html
   ----------------------------------------------
   
   it is used to find :
   * periodic or preperiodic points on dynamic plane 
   * on parameter plane 
   ** centers
   ** Misiurewicz points
   
   using Newton method
  
   
*/
int find(int sg, uint preper, uint per, mdouble &x, mdouble &y) 
{  mdouble a = A, b = B, fx, fy, px, py, w;
  uint i, j;
   
  for (i = 0; i < 30; i++)
    { if (sg > 0) // parameter plane
	{ a = x; b = y; } 
         
      if (!preper) // preperiod==0
	{  if (sg > 0) // parameter plane
	    { fx = 0; 
	      fy = 0; 
	      px = 0; 
	      py = 0; }
	       
	  else // dynamic plane
	    { fx = -x; 
	      fy = -y; 
	      px = -1; 
	      py = 0; }
	}
	
      else // preperiod > 0
	{ fx = x; 
	  fy = y; 
	  px = 1.0; 
	  py = 0;
	  
	  for (j = 1; j < preper; j++)
	    {  if (px*px + py*py > 1e100) return 1;
	      w = 2*(fx*px - fy*py); 
	      py = 2*(fx*py + fy*px);
	      px = w; 
	      if (sg > 0) px++; // parameter plane
	      w = fx*fx - fy*fy + a; 
	      fy = 2*fx*fy + b; 
	      fx = w;
	    }
	}
	
      mdouble Fx = fx, Fy = fy, Px = px, Py = py;
      
      for (j = 0; j < per; j++)
	{  if (px*px + py*py > 1e100) return 2;
	  w = 2*(fx*px - fy*py); 
	  py = 2*(fx*py + fy*px);
	  px = w; 
	  if (sg > 0) px++; // parameter plane
	  w = fx*fx - fy*fy + a; 
	  fy = 2*fx*fy + b; 
	  fx = w;
	}
      fx += Fx; 
      fy += Fy; 
      px += Px; 
      py += Py;
      w = px*px + py*py; 
      if (w < 1e-100) return -1;
      x -= (fx*px + fy*py)/w; 
      y += (fx*py - fy*px)/w;
    }
  return 0;
}







int main()
{

  
	int plane = 1; // positive is parameter plane, negative is dynamic plane = signtype
  	uint preper = 0; // " the usual convention is to use the preperiod of the critical value. This has the advantage, that the angles of the critical value have the same preperiod under doubling as the point, and the same angles are found in the parameter plane." ( Wolf Jung )
  	uint per ; // period
  	mdouble x ;
  	mdouble y = 0.0L;
  	int n;
  
  	// Starting with a center of period  n
  	per = 1;
	x = 0.0L;
	
	// find an approximation for the center of period  2n 
	for (n=1; n<30; n++){
     
     		 printf("Period = %10u \tcenter = %.18Lf\n", per, x);
        
        	// next center
      		per *= 2; // period doubling 
        	// aproximate  of next value using Feigenbaum rescaling ( in the 1/2-limb )
        	x = cFb + (x - cFb)/dFb; 
        	// more precise value of x useing Newton method  
        	find(plane, preper, per, x, y); 
      
   }


  return 0;
}

See also[edit]

  • real slice of the Mandelbrot set[4]
  • biaccessible points on the Mandelbrot set[5]
  • Feigenbaum_constants[6]

References[edit]

  1. wikipedia: Period-doubling_bifurcation
  2. OPERATING WITH EXTERNAL ARGUMENTS IN THE MANDELBROT SET ANTENNA by G. Pastor, M. Romera, G. Alvarez, and F. Montoya
  3. On Finite Limit Sets for Transformations on the Unit interval by N. METROPOLIS, M. L. STEIN, AND P. R. STEIN
  4. External rays and the real slice of the Mandelbrot set by Saeed Zakeri ( paper in pdf from arxiv)
  5. ON BIACCESSIBLE POINTS OF THE MANDELBROT SET by SAEED ZAKERI
  6. wikipedia: Feigenbaum_constants