0

The first image below shows the Julia Set at $-1.749512 + 0i$ (close to the base of the Period-3 Cardioid), and I'd like to find the periodic point located at where the white arrow is pointing at. However, this is my first exposure to Julia Sets beyond the Period-1 Cardioid and the Period-2 Main Disk of the Mandelbrot, and my methods of calculating periodic points don't seem to work here.

Working off my question here, I concluded that I needed to use $\frac{1 - \sqrt{1 - 4c}}{2}$ to find the desired point - and this worked as intended for all Julia Sets close to the Period-1 and 2 components of the Mandelbrot. Applying that to this Julia Set, however, centers at the white arrow in the second image (I understand why this is, but I don't know how to work around it).

I also tried using the following formula for finding pre-images of periodic points (which I learned from this question), but the found point never falls on the center, regardless of the combination of pluses and minuses I use...

$$z_{-1}^*(t)=\pm\sqrt{z_0^*(t)-c(t)}=\pm\sqrt{\frac{1\mp\sqrt{1-4c(t)}}{2}-c(t)}$$

enter image description here

enter image description here

Edit:

Thanks to Mark in the comments, I figured it might be beneficial if I just show what I'm looking for - given that I don't quite know which terms to use (although I'm pretty confident I'm looking for fixed points, based off of this question). Here are some videos showing the intended effect on the main cardioid and disk of the Mandelbrot Set (using the algebraic solutions to $z_{p+1}=z_p^2+c$), and what I'd like to replicate with the period-3 cardioid:

Main Cardioid ($z_0=\frac{1 - \sqrt{1 - 4c}}{2}$ - THIS is what I'd like to replicate with the Period-3 Cardioid): https://youtu.be/C22P6ScEU1I

Main Disk ($z_0=\frac{1 - \sqrt{1 - 4c}}{2}$ - NOT what I'm looking for): https://youtu.be/MUuuf8K4SiQ

Main Disk ($z_1=\frac{-1 - \sqrt{-3 - 4c}}{2}$): https://youtu.be/3RuNjWLHuWA

Period-3 Cardioid (THIS is the video I'd like to apply the previous effect on): https://youtu.be/G1tkBMshd2k

Judging by the trend in the videos, I'd like to think that finding the algebraic solution to $z_{p+1}=z_p^2+c$ when $p=2$ would get me the points I'm looking for, but given that Wolfram Alpha has trouble with this (or I'm just not understanding how I can use the answer), I'm unsure of how to get a solution I can work with:

https://www.wolframalpha.com/input/?i=solve+for+z%3A+%28%28%28%28%28%28z%5E2%29+%2B+c%29%5E2%29+%2B+c%29%5E2%29+-+z+%2B+c%29

  • 2
    The periodic points are dense in the Julia set; indeed, one may characterize the Julia set as the closure of the set of repelling periodic points. Thus, you can't simply draw an arrow and expect to uniquely determine a periodic point. If you're looking for an attractive periodic point, you can simply iterate from zero until you detect convergence. I don't know that this particular function has any, though. For other types of periodic points, you might try to solve an equation of the form $f_c^n(z)=z$. – Mark McClure Jul 21 '20 at 12:12
  • This is so cool, thank you for sharing this question. – Taylor Rendon Jul 21 '20 at 16:08
  • @MarkMcClure I don't think simply iterating z will work here, this is a period-3 Julia Set so there would be 3 attractive points... I wished I had more knowledge regarding periodic points, I feel like there's a lot I can still learn. – Ibrahim Mahmoud Jul 21 '20 at 20:26
  • @MarkMcClure I just tried that idea anyways, but none of the 3 attractive points actually get me to the point I'm looking for in this Julia Set (they're all on the x-axis, where the point I'm after is slightly above it). I'm pretty sure that's because this Julia Set is disconnected, and if it was filled then it would have worked. – Ibrahim Mahmoud Jul 25 '20 at 00:44
  • The Julia set that you have drawn appears to be the Julia set for $c=\color{red}-1.749512$, which is definitely connected and (as far as I can tell) has no attractive orbit. Your value of $c=\color{red}+1.749512$ as stated in the problem is certainly totally disconnected and has no attractive orbits. When you write "3 attractive points", perhaps you mean attractive orbit of period 3? A quadratic can have at most one attractive orbit, though you can arrange for the period of that orbit to be anything you want. The quadratic will always have infinitely many repelling periodic orbits. – Mark McClure Jul 25 '20 at 12:01
  • @MarkMcClure Oh yes you're right, thank you for noticing that I fixed it in the question. Yes I did mean attractive orbit of period 3 - I was referring to the 3 periodic points that the orbit is supposed to oscillate between (in filled Julia Sets). Nevertheless, I edited my question to clarify what kind of effect I'm after (I strongly suspect that the desired point is the solution to $z_{p+1}=z_p^2+c$ where $p$ is $2$) – Ibrahim Mahmoud Jul 26 '20 at 01:26

2 Answers2

3

For the promenade around the main cardioid, the point in the Julia set you want is a fixed point $z = f_c(z)$. By tuning (renormalization), the point you want in the "little Julia set" at the center of the Julia set is a periodic point $z = f_c^p(z)$, in this particular case $p = 3$. You can use Newton's method to find the root numerically, the degree is too high for symbolic solution via radicals. You need a good initial guess for Newton's method to converge to the "correct" tuned fixed point (periodic point), as there is another one at the "tip" of the little Julia set (just as there two fixed points for $z = f_c(z)$), and moreover the fixed points $z = f_c(z)$ are also (unwanted) solutions for $z = f_c^p(z)$.

Here is a small C99 program using my mandelbrot-numerics library:

/*
gcc julia-spiral-center.c `PKG_CONFIG_PATH=${HOME}/opt/lib/pkgconfig pkg-config --cflags --libs mandelbrot-numerics` -lm -fopenmp -O3 -std=c99 -Wall -Wextra -pedantic
LD_LIBRARY_PATH=${HOME}/opt/lib/ ./a.out |
ffmpeg -framerate 25 -i - -pix_fmt yuv420p -profile:v high -level:v 4.1 -crf:v 20 -movflags +faststart julia-spiral-center.mp4 -y
*/

#include <complex.h> #include <math.h> #include <stdio.h> #include <stdlib.h>

#ifndef M_PI #define M_PI 3.141592653589793 #endif

// git clone https://code.mathr.co.uk/mandelbrot-numerics.git // make -C mandelbrot-numerics/c/lib prefix=${HOME}/opt install #include <mandelbrot-numerics.h>

double cnorm(double _Complex z) { double x = creal(z); double y = cimag(z); return x * x + y * y; }

int main(int argc, char *argv) { // silence -Wunused-parameter (void) argc; (void) argv; // number of animation frames const int frames = 25 30 * 1; // parameters for Julia set graphics rendering const int iterations = 1024; const double escape_radius_squared = 1 << 24; const int width = 640; const int height = 360; unsigned char pgm = malloc(width height); // how far from the target component to place the moving c // 1.0 is the boundary of the component const double radius = 1.25; // period of the target component const int period = 3; // these don't need to be exact, they will be changed by m_d_interior() double _Complex z = 0; double _Complex c = -1.754; // maximum number of steps of Newton's method const int steps = 64; // needs a good initial guess to converge to the correct attractor double _Complex w = -0.1 - 0.01 * I; for (int frame = 0; frame < frames; ++frame) { // path around the exterior of the component double t = (frame + 0.5) / frames; double _Complex q = radius * cexp(2 * M_PI * I * t); // find c,z such that f_c^p(z) = z and d/dz f_c^p(z) = q m_d_interior(&z, &c, z, c, q, period, steps); // find w such that f_c^p(w) = w // use previous frame's w as initial guess for continuity m_d_attractor(&w, w, c, period, steps); // scaling for view double r = cabs(w); // render Julia set #pragma omp parallel for for (int j = 0; j < height; ++j) { for (int i = 0; i < width; ++i) { // view centered on w double _Complex z0 = ( ((i + 0.5) / width - 0.5) * 2 * width / height - I * ((j + 0.5) / height - 0.5) * 2 ) * r + w; // initialize derivative with pixel spacing double _Complex dz = 2 * r / height; // unescaped pixels will be grey pgm[j * width + i] = 128; for (int k = 0; k < iterations; ++k) { dz = 2 * z0 * dz; z0 = z0 * z0 + c; if (cnorm(z0) > escape_radius_squared) { // compute exterior distance estimate double de = 2 * cabs(z0) * log(cabs(z0)) / cabs(dz); // colour boundary based on distance estimate pgm[j * width + i] = 255 * tanh(de); break; } } } } // output PGM stream to stdout fprintf(stdout, "P5\n%d %d\n255\n", width, height); fwrite(pgm, width * height, 1, stdout); fflush(stdout); } // cleanup free(pgm); return 0; }

The source code for the two functions I used from the library can be browsed at:

They are both applications of Newton's root finding method, in 2 complex variables and 1 complex variables respectively.

You can view the video rendered by this program.

Claude
  • 5,852
0

I think that it should be different question here: how did you found your c value ? If you want to find c value for which polynomial has desired properities then you should tell us what properities you want.

If you have c value and you want to find what properities will have Julia set/periodic points then you need numerical methods.

First easy check using mandel shows that there is no visible components for maximal zoom using double precision.

Using mandelbrot-numerics one can find near your c value 2 components:

- a period 237 cardioid
  with nucleus at -1.7495120000000000000000000000000116053893024686343718029506670414e+00 + +0e+00 i
  the component has size 5.10303e-60 and is pointing west
  the atom domain has size 1.34480e-32
  the atom domain coordinates of the input point are -0.86149 + -0 i
  the atom domain coordinates in polar form are 0.86149 to the west
  the nucleus is 1.16054e-32 to the west of the input point
  the input point is exterior to this component at
  radius 5.87695e+33 and angle 0.500000000000000000 (in turns)
  the multiplier is -5.87695e+33 + +0.00000e+00 i
  a point in the attractor is +2.5892947214253619092848904520135803680047966975848204640792969525e-02 + +0e+00 i
  • a period 756 cardioid with nucleus at -1.74951200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000437443253498601125336414441820009561885311706078736706424485680024027767522121183394207260374919267049e+00 + +0e+00 i the component has size 2.81459e-198 and is pointing west the atom domain has size 8.60400e-102 the atom domain coordinates of the input point are -0.51039 + +0 i the atom domain coordinates in polar form are 0.51039 to the west the nucleus is 4.37443e-102 to the west of the input point the input point is exterior to this component at radius 1.99523e+68 and angle 0.500000000000000000 (in turns) the multiplier is -1.99523e+68 + +0.00000e+00 i a point in the attractor is -1.32154302717027851153258720563184483110950266513429522776342823541752294814605666085090894143487158886716259121852162061940587472967643029955949630872182624723698360235112807868903937707485681031295828661e-02 + +0e+00 i

So I think that you need more numerical precision to solve your question

Adam
  • 1,776
  • Thank you for the link to this library! Unfortunately, I don't think I'm quite understanding how this helps me with my question - perhaps I don't understand what you mean by "$c$ value". Similar to https://youtu.be/C22P6ScEU1I, I found this Julia Set (-1.749512) by tracing the path of the period-3 cardioid - scaled by 1.1 - at the very beginning of the path (shown in this video: https://youtu.be/G1tkBMshd2k). These are all the $c$ values I would like to be using, and the goal is to center each of the frames to get a similar effect like this video: https://youtu.be/C22P6ScEU1I – Ibrahim Mahmoud Jul 30 '20 at 17:49
  • @Ibrahim Mahmoud: c value is a parameter of f(z) = z^2+c. "tracing a path" : do you move along equipotential line ? – Adam Jul 31 '20 at 15:26
  • Ok good, just making sure I understood what you were saying. I move the Julia Set along the boundary of the Period 3 cardioid (scaled by 1.1: https://youtu.be/G1tkBMshd2k - the original unscaled path is https://youtu.be/3oXOD7t_wZM), whose boundary I found using the equations from https://www.ams.org/journals/proc/1995-123-12/S0002-9939-1995-1301497-3/S0002-9939-1995-1301497-3.pdf – Ibrahim Mahmoud Aug 01 '20 at 03:16