Fractals/Iterations in the complex plane/subwake

How to find the angles of external rays that land on the root point of any Mandelbrot set's component which is accesible from main cardioid ( M0) by a finite number of boundary crossing ?[1]

Algorithm = Douady tuningEdit

"The r/s internal ray in   is the landing point of external rays   obtained from   by replacing:

  • the digit 0 by repeating block ( of length q) from  
  • the digit 1 by repeating block ( of length q) from   "

"By repeating the same process ( which is known as 'tuning') we can compute the arguments of external rays landing on the boundary of any component which is accesible from   by a finite number of boundary crossing." ( Shaun Bullett )

Douady tuning [2]

Examples by number of internal anglesEdit

 
Wakes near the period 1 continent in the Mandelbrot set. Boundary of the Mandelbrot set rendered with distance estimation (exterior and interior). Labelled with periods (blue), internal angles and rays (green) and external angles and rays (red).


1 angleEdit

2 anglesEdit

Angled internal address:

  

describes a way:

  • from center of period 1 hyberbolic component c=0
  • along internal ray for angle p/q toward root point ( p/q-bond )
  • along internal ray for angle r/s toward center ( nucleus) of s*q component of hyperbolic component

where:

  • 1, q,s are periods of hyperbolic components
  • p/q, r/s are internal angles

(1/2, 1/3)Edit

Angled internal address:

  


First compute external angles for p/q = 1/2 and r/s=1/3 wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Using this c program one gets:


input string = sIn = 0.(001)
Input Length = 3

replace string for digit 0 = sR0 = 0.(01)
Length of sR0 = 2

replace string for digit 1 = sR1 = 0.(10)
Length of sR1 = 2
output string in plain form sOut = 0.(010110)
Output Length = 6

output string in wikipedia math formula form = sOutf = 
 0.(\ {\color{Blue}01}\ {\color{Blue}01}\ {\color{Red}10})
sR0 displayed as a blue and sR1 as a red font
input string = sIn = 0.(010)
Input Length = 3

replace string for digit 0 = sR0 = 0.(01)
Length of sR0 = 2

replace string for digit 1 = sR1 = 0.(10)
Length of sR1 = 2
output string in plain form sOut = 0.(011001)
Output Length = 6

output string in wikipedia math formula form = sOutf = 
 0.(\ {\color{Blue}01}\ {\color{Red}10}\ {\color{Blue}01})
sR0 displayed as a blue and sR1 as a red font


Result:

 

 


Check it with Mandel by Wolf Jung

The angle  22/63  or  p010110
has  preperiod = 0  and  period = 6.
The conjugate angle is  25/63  or  p011001 .
The kneading sequence is  ABABA*  and
the internal address is  1-2-6 .
The corresponding parameter rays land
at the root of a satellite component of period 6.
root c = -1.125000000000000  +0.216506350946110 i    period = 10000
It bifurcates from period 2.
Center = c = -1.138000666650965  +0.240332401262098 i    period = 6

(1/3,1/25)Edit

Angled internal address:

  

First compute external angles for p/q and r/s wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Using this c program one gets:

input string = sIn = 0.(0000000000000000000000001)
Input Length = 25

replace string for digit 0 = sR0 = 0.(001)
Length of sR0 = 3

replace string for digit 1 = sR1 = 0.(010)
Length of sR1 = 3
output string in plain form sOut = 0.(001001001001001001001001001001001001001001001001001001001001001001001001010)
Output Length = 75

output string in wikipedia math formula form = sOutf = 
 0.(\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Blue}001}\ {\color{Red}010})

so the result is:

 
 

One can not check it using :

  • program Mandel by Wolf Jung because period 75 exceeds the capacity of Mandel (verison 5.14)
  • knowledgedoor calculator : "There are more than 100000 fractional digits in the new number. We are sorry, but we had to abort the calculation to control the loading on our server" [3]
  • Binary to Decimal converter from xploringbinary because : ***ERROR: invalid characters in input[4]

Floating point decimal value can be computed ( xploringbinary calculator):

0.00100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100101000100100100100100100100100100100100100100100100100100100100100100100100101000100100100100100100100100100100100100100100100100100100100100100100100101000100100100100100100100100100100100100100100100100100100100100100100100101 = 0.14285714285714285714288739403383051072639529883365108929843563075583153775763414823768752002069960029227911125999721923628800596414804821292109009060239475901499810101181257672784693799296426200506484998155193353019205064595746824097168836030939675768822757699065155639759014879516081816465598503673993914613650270765449619097486325642647311484333459622592887076714167693559186268814330532241007104844902043043591808926221035405535394453260989380025345642382995407618853788922160842622677279223353252746164798736572265625

note that

1/7 = 0.(001) = 0.(142857)= 0.1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428...

so the difference is on the 23 decimal position

Using mandelbrot-symbolics:

 ./m-binangle-to-rational ".(001001001001001001001001001001001001001001001001001001001001001001001001010)"
 5396990266136737387082/37778931862957161709567
 ./m-binangle-to-rational ".(001001001001001001001001001001001001001001001001001001001001001001001010001)"
 5396990266136737387089/37778931862957161709567

Or using web interface with input : 1_1/3->3_1/25->75

(1/3,1/2)Edit

Angled internal address:

  

First compute external angles for p/q and r/s wakes :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

 
 

One can check it using program Mandel by Wolf Jung :

The angle  10/63  or  p001010
has  preperiod = 0  and  period = 6.
The conjugate angle is  17/63  or  p010001 .
The kneading sequence is  AABAA*  and
the internal address is  1-3-6 .
The corresponding parameter rays are landing
at the root of a satellite component of period 6.
It is bifurcating from period 3.
Do you want to draw the rays and to shift c
to the corresponding center?

(1/3,1/3)Edit

First compute external angles for p/q and r/s wakes ( here p/q=r/s) :

 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

 
 

One can check it using program Mandel by Wolf Jung :

The angle  74/511  or  p001001010
has  preperiod = 0  and  period = 9.
The conjugate angle is  81/511  or  p001010001 .
The kneading sequence is  AABAABAA*  and
the internal address is  1-3-9 .
The corresponding parameter rays are landing
at the root of a satellite component of period 9.
It is bifurcating from period 3.
Do you want to draw the rays and to shift c
to the corresponding center?

(1/3,1/4)Edit

First compute external angles for p/q and r/s wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

 
 

One can check it using program Mandel by Wolf Jung :

The angle  586/4095  or  p001001001010
has  preperiod = 0  and  period = 12.
The conjugate angle is  593/4095  or  p001001010001 .
The kneading sequence is  AABAABAABAA*  and
the internal address is  1-3-12 .
The corresponding parameter rays are landing
at the root of a satellite component of period 12.
It is bifurcating from period 3.
Do you want to draw the rays and to shift c
to the corresponding center?

(1/3,3/4)Edit

First compute external angles for p/q and r/s wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

 
 

One can check it in program Mandel by Wolf Jung :

The angle  1162/4095  or  p010010001010
has  preperiod = 0  and  period = 12.
The conjugate angle is  1169/4095  or  p010010010001 .
The kneading sequence is  AABAABAABAA*  and
the internal address is  1-3-12 .
The corresponding parameter rays are landing
at the root of a satellite component of period 12.
It is bifurcating from period 3.
Do you want to draw the rays and to shift c
to the corresponding center?

(1/3,1/89)Edit

 
Part of parameter plane with external 5 rays landing on the Mandelbrot set.

Angled internal address:

  

(1/4, 1/5)Edit

Input is :

 

First compute external angles for p/q and r/s wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

 
 

One can check it using program Mandel by Wolf Jung :

The angle  69906/1048575  or  p00010001000100010010
has  preperiod = 0  and  period = 20.
The conjugate angle is  69921/1048575  or  p00010001000100100001 .
The kneading sequence is  AAABAAABAAABAAABAAA*  and
the internal address is  1-4-20 .
The corresponding parameter rays are landing
at the root of a satellite component of period 20.
It is bifurcating from period 4.
Do you want to draw the rays and to shift c
to the corresponding center?

(4/5, 1/17)Edit

 
Mandelbrot set - subwake 1-( 4/5)->5-(1/17)->85

Angled internal address is :

  •  
  • 1-(4/5)-> 5 -(1/17)-> 85

Input is :

 

First compute external angles for p/q and r/s wakes  :

 
 
 
 

then in   replace :

  • digit 0 by block of length q from  
  • digit 1 by block of length q from  

Result is :

  
 

One can not check it using program Mandel by Wolf Jung because period is too big. It gives answers only for period up to 64



One can check it online using web interface by Claude

  • .(1110111101111011110111101111011110111101111011110111101111011110111101111011110111110)
  • .(1110111101111011110111101111011110111101111011110111101111011110111101111011111011101)

3 anglesEdit

(1/2, 1/3, 1/4)Edit

We go thru the list of angles from right to left

First compute (1/3,1/4) wake which will be used as a a new r/s wake :

  
  

After that compute 1/2 wake ( most left), which will be used as a p/q wake :

  
  

then in   replace :

  • digit 0 by repeating block (of length q, color blue) from  
  • digit 1 by repeating block (of length q, color red) from  

Result is :

 
 

in plain text format ( for copy )  :

 theta_minus(1/2, 1/3, 1/4) = 0.(010110010110010110011001)
 theta_plus( 1/2, 1/3, 1/4) = 0.(010110010110010110010110)

One can check this wake in program Mandel by Wolf Jung using ray to point command ( Ctrl+e) :

The angle  5858713/16777215  or  p010110010110010110011001
has  preperiod = 0  and  period = 24.
The conjugate angle is  5858902/16777215  or  p010110010110011001010110 .
The kneading sequence is  ABABAAABABAAABABAAABABA*  and
the internal address is  1-2-6-24 .
The corresponding parameter rays are landing
at the root of a satellite component of period 24.
It is bifurcating from period 6.
Do you want to draw the rays and to shift c
to the corresponding center?

(1/3, 1/4, 1/5)Edit

Input is a list :

(1/3, 1/4, 1/5)

We go thru the list of angles from right to left and divide list into 2 sublists :

 

 

First compute (1/4,1/5) wake which will be used as a a new r/s wake :

 
 

After that compute 1/3 wake ( most left), which will be used as a p/q wake :

  
  

then in   replace :

  • digit 0 by repeating block (of length q, color blue) from  
  • digit 1 by repeating block (of length q, color red) from  

Result is :

 
 

One can check it using program Mandel by Wolf Jung :

The angle  164984615799661137/1152921504606846975  or  p001001001010001001001010001001001010001001001010001001010001
has  preperiod = 0  and  period = 60.
The conjugate angle is  164984615799689802/1152921504606846975  or  p001001001010001001001010001001001010001001010001001001001010 .
The kneading sequence is  AABAABAABAAAAABAABAABAAAAABAABAABAAAAABAABAABAAAAABAABAABAA*  and
the internal address is  1-3-12-60 .
The corresponding parameter rays are landing
at the root of a satellite component of period 60.
It is bifurcating from period 12.
Do you want to draw the rays and to shift c
to the corresponding center?

4 angles listEdit

(1/2, 1/3, 1/4, 1/5)Edit

Input is a list :

(1/2, 1/3, 1/4, 1/5)

so the internal addres should be :

1-2-6-24-120

One can not check it using program Mandel because it is limited to period 64.

We go thru the list of input angles from right to left and divide list into 2 sublists :

 

 

First compute (1/3, 1/4, 1/5) wake which will be used as a a new r/s wake :

 
 

After that compute 1/2 wake ( most left), which will be used as a p/q wake :

  
  

then in   replace :

  • digit 0 by repeating block (of length q, color blue) from  
  • digit 1 by repeating block (of length q, color red) from  

Result is ( to check !!!!) :

 

 

theta_minus(1/2, 1/3, 1/4, 1/5) = 0.(010110010110010110011001010110010110010110011001010110010110010110011001010110010110010110011001010110010110011001010110)
theta_plus(1/2, 1/3, 1/4, 1/5)  = 0.(010110010110010110011001010110010110010110011001010110010110010110011001010110010110011001010110010110010110010110011001)

One can check it visually using book program by Claude Heiland-Allen

size 640 360
view 53 -1.113644126576409e+00 2.5205986428803329e-01 3.9234950282896473e-04
ray_in 2000 .(010110010110010110011001010110010110010110011001010110010110010110011001010110010110011001010110010110010110010110011001)
ray_in 2000 .(010110010110010110011001010110010110010110011001010110010110010110011001010110010110010110011001010110010110011001010110)
text 53 -1.1152327443471231e+00 2.5276283972645397e-01 1/4
text 53 -1.1136201098499858e+00 2.5201617701965662e-01 1/5
text 53 -1.1152327443471231e+00 2.5276283972645397e-01 1/4
text 53 -1.1138472738947567e+00 2.5348331923684125e-01 24

multi angleEdit

1-(1/2)-> 2 -(1/3)-> 6 -(1/2)-> 12 -(1/3)-> 36 -(1/2)-> 72 -(2/3)-> 216 -(1/2)-> 432 -(1/3)-> 1296 -(1/2)-> 2592 -(2/3)-> 7776   -> main misiurewicz point -> right branch


Try mandelbrot-web[5]

CodeEdit

/*

------------ git --------------------
https://gitlab.com/adammajewski/c-string-replaceing

cd existing_folder
git init
git remote add origin git@gitlab.com:adammajewski/c-string-replace.git
git add .
git commit
git push -u origin master

-------------- 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 c.c -Wall
----------- run ----------------------

./a.out



*/


#define _GNU_SOURCE // asprintf
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // strlen
 
int main() {
    // output = theta+(p/q, r/s) or theta-(p/q, r/s)
    char *sOut  = ""; // in plaint text format
    char *sOutf = ""; // formatted for wikipedia math formula 
    // input
    char *sIn = "00000000000000010";  // rs+ or rs-
    
    // strings which will replace 0 and 1 digit in the input 
    // length(sR0) = length(sR1)
    char *sR0 = "11101"; // pq-
    char *sR1 = "11110"; // pq+


   int iMax; // length of the input string
   int i; 


   iMax = (int) strlen(sIn);

   for (i=0; i<iMax; i++){

   // printf("i = %d, sIn[i] = %c = %d\n", i, sIn[i],  sIn[i] - '0');
    // create sOut by replaceing digit (0 or 1) from aIn by a block of digits :  sR0 or sR1
    if (((int) sIn[i] -'0') == 0 ) // http://stackoverflow.com/questions/868496/how-to-convert-char-to-integer-in-c
       {asprintf(&sOut, "%s%s", sOut, sR0);
       asprintf(&sOutf, "%s\\ {\\color{Blue}%s}", sOutf, sR0); }
       
       else // if sIn[i]==1 
       {asprintf(&sOut, "%s%s", sOut, sR1);
       asprintf(&sOutf, "%s\\ {\\color{Red}%s}", sOutf, sR1);}
   }
      


    printf("input string = sIn = 0.(%s)\n", sIn);
    printf("Input Length = %d\n\n", iMax);
    
    
    printf("replace string for digit 0 = sR0 = 0.(%s)\n", sR0);
    printf("Length of sR0 = %d\n\n", (int) strlen(sR0));
    
    printf("replace string for digit 1 = sR1 = 0.(%s)\n", sR1);
    printf("Length of sR1 = %d\n", (int) strlen(sR1));
    
    
    
    printf("output string in plain form sOut = 0.(%s)\n", sOut);
    printf("Output Length = %d\n\n",  (int) strlen(sOut));
    printf("output string in wikipedia math formula form = sOutf = \n 0.(%s)\n", sOutf);
    printf("sR0 displayed as a blue and sR1 as a red font\n");

    free(sOut); 
    free(sOutf); 
    return 0;
}

Output:

input string = sIn = 0.(00000000000000010)
Input Length = 17

replace string for digit 0 = sR0 = 0.(11101)
Length of sR0 = 5

replace string for digit 1 = sR1 = 0.(11110)
Length of sR1 = 5
output string in plain form sOut = 0.(1110111101111011110111101111011110111101111011110111101111011110111101111011111011101)
Output Length = 85

output string in wikipedia math formula form = sOutf = 
 0.(\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Blue}11101}\ {\color{Red}11110}\ {\color{Blue}11101})
sR0 displayed as a blue and sR1 as a red font

See alsoEdit

ReferencesEdit

  1. Shaun Bullett : Lectures on one-dimensional complex dynamics' (7th-10th November 2005), lecture 4, page 43, section 4.5
  2. Ordered orbits of the shift, square roots, and the devil's staircase by Shaun Bulletta and Pierrette Sentenac
  3. knowledgedoor calculator
  4. exploring binary : binary-converter
  5. mandelbrot web