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 accessible from main cardioid ( M0) by a finite number of boundary crossing ?[1]
Key words
edit- Tuning
- external ray
- external angle in the binary number form
Algorithm = Douady tuning
edit"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 accessible from by a finite number of boundary crossing." ( Shaun Bullett )
Douady tuning [2]
Examples by number of internal angles
edit
1 angle
edit2 angles
edit
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)
editAngled 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)
editAngled 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)
editAngled 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)
editFirst 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)
editFirst 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)
editFirst 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)
editAngled internal address:
(1/4, 1/5)
editInput 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)
editAngled 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 angles
edit(1/2, 1/3, 1/4)
editWe 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)
editInput 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 list
edit(1/2, 1/3, 1/4, 1/5)
editInput is a list :
(1/2, 1/3, 1/4, 1/5)
so the internal adders 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 angle
editperiod 776
edit1-(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]
period 20
editInfo from Mandelbrot-web by Claude
- External Angle ( wiggled external ray )
- binary = .(00000000001111111111)
- decimal in Rational form = 1/1025
- Period = 20
- Kneading 1111111111000000000★
- Internal Address : 1→11→12→13→14→15→16→17→18→19→20
- Landings .00000000001111111111 1/1025 .00000000010000000000 1024/1048575
Angled internal addres:
Info from program Mandel by Wolf Jung
- The angle 1023/1048575 or p00000000001111111111
- has preperiod = 0 and period = 20.
- The conjugate angle is 1024/1048575 or p00000000010000000000 .
- The kneading sequence is AAAAAAAAAABBBBBBBBB* and
- the internal address is 1-11-12-13-14-15-16-17-18-19-20 .
- The corresponding parameter rays land at the root of a primitive component of period 20 with center c = 0.329617350093832 +0.042415693708911 i
Code
edit/*
------------ 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 also
edit- islands
- Mandelbrot symbolics in the browser by Claude Heiland-Allen
- automatically_finding_external_angles by Claude Heiland-Allen
- book program by Claude Heiland-Allen
- Trees of visible components in the Mandelbrot set by Virpi K a u k o - the tree structures of the sublimbs of the Mandelbrot set M, using internal addresses of hyperbolic components
References
edit- ↑ Shaun Bullett : Lectures on one-dimensional complex dynamics' (7th-10th November 2005), lecture 4, page 43, section 4.5
- ↑ Ordered orbits of the shift, square roots, and the devil's staircase by Shaun Bulletta and Pierrette Sentenac
- ↑ knowledgedoor calculator
- ↑ exploring binary : binary-converter
- ↑ mandelbrot web