411 REFERENCE · Wikibooks
Fractals/Iterations in the complex plane/subwake
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
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 ?Shaun Bullett : Lectures on one-dimensional complex dynamics' (7th-10th November 2005), lecture 4, page 43, section 4.5
Key words
Tuning
external ray
external angle in the binary number form
Algorithm = Douady tuning
"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 Ordered orbits of the shift, square roots, and the devil's staircase by Shaun Bulletta and Pierrette Sentenac
Examples by number of internal angles
thumb|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 angle
1/2 family
2 angles
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)
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)
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 (version 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" knowledgedoor calculator
Binary to Decimal converter from xploringbinary because : ***ERROR: invalid characters in inputexploring binary : binary-converter
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)
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)
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)
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)
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)
thumb|right|Part of parameter plane with external 5 rays landing on the Mandelbrot set.
Angled internal address:
(1/4, 1/5)
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)
thumb|right|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 angles
(1/2, 1/3, 1/4)
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)
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 list
(1/2, 1/3, 1/4, 1/5)
Input 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
period 776
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-webmandelbrot web
period 20
Info 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
/*
------------ 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
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