• August 02, 2021, 06:52:55 AM

Login with username, password and session length

Author Topic:  Parabolic Julia sets  (Read 5640 times)

0 Members and 1 Guest are viewing this topic.

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #90 on: July 07, 2021, 08:56:27 PM »
can I use your program to find triangle that I can use as a trap a forward orbit of interior points ?

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #91 on: July 08, 2021, 01:52:35 PM »
can I use your program to find triangle that I can use as a trap a forward orbit of interior points ?

In principle, you could use the TPC to detect interior regions that do not touch the boundary of the Julia set,  if you provide their location (i.e. two of the three triangle points). The code is actually not ready for release (a lot of superfluous routines no longer used, I plan on uploading it to my GitHub page shall I succeed in the symbolic numbers or bivariate analysis), but if you don't mind those complications, I can send you the source files.

A few conditions on your triangle must be met:

  • it must contain an attracting periodic point, preferrably deep within, to succeed
  • the dynamics near/inside the triangle must be strongly contracting such that the triangle not only gets  smaller with iteration but also rotates in such a manner, that it fits inside the initial shape - and as that triangle has two narrowing tips, that might turn out tricky, i.e. needing a higher iteration count than the periodic  length
  • as I use IA, overestimation poses a substantial problem. I have not been able to successfully prove a triangle for f[4] so far. So longer cycles probably won't work as of now.
  • there's quite heavy symbolic calculations currently performed which may take some time. And the longer the symbolic expression, the greater the influence of overestimation becomes

To prove a region is actually interior to a Julia set, I would recommend a different approach based on  cell-mapping/affine arithmetics which I once used for area bounds:

1. Approximate a periodic point (rounding errors are not of concern here).
2. Place a simple polygon with that point as roughly the center and convert it to an affine form (for rectangles, I have a routine here, for other polygons I would need to do it manually.
3. Perform 1 to n iterations with solely affine arithmetics.
4. During iteration, additionally convert the affine form into a complex interval (but only use  the AF for iteration). This enlarges the region and check, whether that complex interval lies inside the initial polygon (if the initial shape is a rectangle, that's easy, for axis-parallel triangles - 2 of 3 side - it is manageable, for other forms it gets costly). If inside, the initial shape is contained in the Julia set's interior
5. Then check other small polygons (probably complex squares represented by one pixel) to see if they iterate to the initial polygon (attracted by that point) to get more regions. Fuse geometrically connected regions to a larger shape.
6. Finally you can place your desired trap somewhere in geometrically connected regions that lie inside.


Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #92 on: July 19, 2021, 06:26:24 PM »
After implementing bivariate subdivision to arrive at tighter ranges for the triangle parameterizations, it was now possible to prove triangles being in the filled-in Julia set for derivatives other than real +1 and -1.

For \( z^2+i\cdot z \) with a parabolic (derivative = i) fix-point at the origin, the following triangle is interior by f[4](ABD):

\[
A(0,0)\\
B(-0.25,0)\\
D(-0.25,0.125)
 \]

An automatically generated proof is in the attached file.

Bounding the range of bivariate polynomials was simply achieved by partitioning the domain [0..1] x [0..1] into smaller tiles; evaluating the polynomial via standard interval arithmetics and taking the union of all those miniranges which usually is much tighter than evaluating the polynomial in the entire domain.

The left image shows the output of the assisted TSA placing the triangle from above (yellow) as initial interior. Black is additional interior that forward maps into the triangle or other black regions. Earlier levels (not shown) depict less black, and especially the petal-like structures are bigger, so I think this will also converge to the full interior at ever higher refinements.

Interesting is the right image. The initial triangle only has half the width and height - and now it only shows a windmill-like pattern which only slightly changes at higher levels.

Is this only a momentary output? And at (much?) deeper refinements it will also converge to the full interior?

Maybe the small triangle is contained fully in one attracting petal (a guess) - and the pre-images form a proper subset of the filled-in Julia set, so no detection of the entire interior will occur? - while the larger triangle extends over the petal's boundary and catches regions attracted by the petal?

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #93 on: July 19, 2021, 07:43:14 PM »
My naive analysis :
I draw critical orbit, which in parabolic case is an n=th arm  ( dostorted ) star. Here n= 4
Each arm of the star is a skeleton of attracting petal ( it is also used in the parabolic chessboard )
Then I draw external rays that land on the parabolic fixed point , here 1/15, 2/15, 4/15, 8/15
Near fixed point  the exterior parts are very thin so (aproximately) any triangle which has fixad point on its vortex and is between 2 external rays maybe parabolic petal
The bigger triangle the better

Here my image

In my method the grey petals are repelling petals ( or points which do not escape or not attracts), like on the gif image



HTH

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #94 on: July 20, 2021, 09:32:28 AM »
Near fixed point  the exterior parts are very thin so (aproximately) any triangle which has fixad point on its vortex and is between 2 external rays maybe parabolic petal
Do you have a constructive proof that one can fit a (small) triangle between those rays and located at the parabolic point? It would be interesting to see a (probably) different approach than the parameterization/IA I use.

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #95 on: July 20, 2021, 04:41:58 PM »
Do you have a constructive proof that one can fit a (small) triangle between those rays and located at the parabolic point?

unfortunately I am not a mathematician = I'm not good in prooving. It is more experimental and geometric (IMHO)

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #96 on: July 23, 2021, 05:16:53 PM »
"z^2-1.25 - indirect"

For the quartic mapping
\[
g(z) := z^4+(2\cdot\sqrt{2}-2)\cdot z^3+(2-3\cdot\sqrt{2})\cdot z^2-z
 \]
with a parabolic fix-point at the origin, the following triangle could be proven to reside in the filled-in Julia set (see the attached text file).
\[
A(0,0) \\
B(-0.0625,0) \\
D(-0.0625,0.03125) \\
 \]
g(z) was derived from the function-of-interest f(z) := z^2-1.25 by

  • using the 2-iterate f[2](z) to split the parabolic 2-cycle from f into two parabolic fix-points
  • conjugating to a translation that moves one parabolic point to the origin
The proven triangle was then converted back to one that resides in the filled-in Julia set of f, by reversing the translation and constructing a smaller right triangle that lies inside the proven one with double-representable coordinates, which results in:
\[
A_f( 6949350\cdot 2^{-25} , 0 )\\
B_f( 4852199\cdot2^{-25} , 0 )\\
D_f( 4852199\cdot2^{-25} , 1048575*2^{-25} )
 \]
This was then marked during the TSA analysis using x-axis symmetry (image below, yellow). The computation also converges as in higher refinements the gray shrinks quite substantiually.

Zooming near the yellow tip shows a nice feature (upper right): The set-in triangle has very smooth boundaries, the "triangle"  on the other side of the parabolic periodic point (here in the 2-cycle) has a stair-case boundary, because it forward-maps (in 2 steps) into the yellow one and its ragged boundary is a result of the rectangular shape of the bounding box.

Technical details
  • initially all numbers different from 0 and 1 were hidden in temporary variables to get cancellation  during the symbolic construction of the final rational function
  • actual numbers were inserted in a symbolic number format that knows rules for square-root arithmetics  over positive numbers (especially sqrt(a^2*b)=a*sqrt(b) for positive integers)
  • currently, a subset o algebraic irrationals are accepted: linear combinations of sqrt expressions
  • on my list were transforming f in different ways: rational parabolic point and irrational coefficients or  vice versa, constructed either by translation or scaling by conjugation (but not all were tested)
  • the successful proof takes about 15 min using a fixed-point number type on base 10^9 with 392 . 180 decimals before and after the radix point set at compile time. Evaluation of expressions is done in standard interval arithmetics using Horner's scheme


Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #97 on: July 23, 2021, 08:30:32 PM »
"z^2-1.25 - indirect"

cool. The parameter c is on the real axis = it is a real number ( not complex). It is a "easy" case. I have used circle with parabolic point on it's boundary as an attracting petal
Radius and position of the circle was found by Trial and error method   forward iterating of critical point : radius = half of the distance between point of the critical orbit and parabolic point




For other cases ( c is a complex number) one can use triangles  inside sectors around parabolic points ( defined by the external rays landing on the parabolic point / critical orbit )



https://arxiv.org/abs/math/0505036v2
« Last Edit: July 24, 2021, 07:10:51 AM by Adam Majewski, Reason: mv »

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #98 on: July 24, 2021, 09:54:41 AM »
cool. The parameter c is on the real axis = it is a real number ( not complex). It is a "easy" case.
From an implementational point of view, it was quite a demanding case: period-2 cycle with combined 4 petals lead to heavy symbolic expressions, irrational coordinates of a periodic point and the need to find a triangle inside another one.

But you're right insofar that I haven't tried a compound complex number as a coefficient up to now. I'm curious to see how that will work out next (or not).

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #99 on: July 24, 2021, 01:02:06 PM »
i see it in a geometric way ( orbits , curves, , sets), but you of course see deeper because you are mathematicien. I hope that you program will let me find attracting petals for smth like "A quad. Julia set with 987 parab. petals i"

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #100 on: July 24, 2021, 02:29:24 PM »
I hope that you program will let me find attracting petals for smth like "A quad. Julia set with 987 parab. petals i"
Could you post the specific parameters?`I seem to not be able to get more than an image without description.

But 987 petals - that would be a record! And 987 iterations at least till an initial triangle gets back to its starting petal. So I suppose an explicit symbolic equation is out of the equestion for that and one would attempt this via iterated, reliable arithmetics, maybe a rotated square that consists of two triangles with one tip at the parabolic point and then use affine arithmetics, but one would lose the cancellation capacity of symbolic calculations ...

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #101 on: July 24, 2021, 03:37:04 PM »
Could you post the specific parameters?`I seem to not be able to get more than an image without description.

But 987 petals - that would be a record!

There are many examples but the simplest example is 1/987 ( or 1/n in general)

Mandel gives : c = 0.250010131066671  +0.000000064494660 i   


One can do it manually in c :
Code: [Select]
gcc c.c -lm -Wall
a@zalman:~/Dokumenty/c$ ./a.out
Root point between period 1 component and period 987 component  = c = 0.2500101310666710+0.0000000644946597*I
Internal angle (c) = 1/987
Internal radius (c) = 1.0000000000000000

Here is the full c program:
Code: [Select]
/*
gcc c.c -lm -Wall
./a.out
Root point between period 1 component and period 987 component  = c = 0.2500101310666710+0.0000000644946597*I
Internal angle (c) = 1/987
Internal radius (c) = 1.0000000000000000

*/

#include <stdio.h>
#include <math.h> // M_PI; needs -lm also
#include <complex.h>



/*
   c functions using complex type numbers
   computes c from  component  of Mandelbrot set */
complex double Give_c( int Period,  int p, int q , double InternalRadius )
{
  complex double c;
  complex double w;  // point of reference plane  where image of the component is a unit disk
 // alfa = ax +ay*i = (1-sqrt(d))/2 ; // result
  double t; // InternalAngleInTurns
 
  t  = (double) p/q;
  t = t * M_PI * 2.0; // from turns to radians
 
  w = InternalRadius*cexp(I*t); // map to the unit disk
 
  switch ( Period ) // of component
    {
    case 1: // main cardioid = only one period 1 component
      c = w/2 - w*w/4; // https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set/boundary#Solving_system_of_equation_for_period_1
      break;
    case 2: // only one period 2 component
      c = (w-4)/4 ; // https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set/boundary#Solving_system_of_equation_for_period_2
      break;
      // period > 2
    default:
      printf("higher periods : to do, use newton method \n");
      printf("for each q = Period of the Child component  there are 2^(q-1) roots \n");
      c = 10000.0; // bad value
       
      break; }
  return c;
}



int main (){


int period = 1;
double InternalRadius = 1.0;
// internal angle in turns as a ratio = p/q
int p = 1;
int q = 987;
complex double c = Give_c(period, p, q, InternalRadius);

printf("Root point between period %d component and period %d component  = c = %.16f%+.16f*I\n",period, q, creal(c), cimag(c));
printf("Internal angle (c) = %d/%d\n",p, q);
printf("Internal radius (c) = %.16f\n",InternalRadius);




return 0;

}



see also 89/268
« Last Edit: July 24, 2021, 04:58:40 PM by Adam Majewski, Reason: descr »

Offline Adam Majewski

  • Fractal Frankfurter
  • *
  • Posts: 541
Re: Parabolic Julia sets
« Reply #102 on: July 24, 2021, 04:05:14 PM »
List of all roots between period 1 and period 987 components

Code: [Select]
Root point between period 1 component and period 987 component  = c = 0.2500101310666710+0.0000000644946597*I Internal angle (c) = 1/987
Root point between period 1 component and period 987 component  = c = 0.2500405213927559+0.0000005159415960*I Internal angle (c) = 2/987
Root point between period 1 component and period 987 component  = c = 0.2501620395922977+0.0000041270309808*I Internal angle (c) = 4/987
... The message exceeds the maximum allowed length (80000 characters).

and the program

Code: [Select]
/*
gcc c.c -lm -Wall
./a.out
Root point between period 1 component and period 987 component  = c = 0.2500101310666710+0.0000000644946597
Internal angle (c) = 1/987
Internal radius (c) = 1.0000000000000000

*/

#include <stdio.h>
#include <math.h> // M_PI; needs -lm also
#include <complex.h>






// numer of hyberolic components ( and it's centers ) of Mandelbrot set
int GiveNumberOfCenters(int period){

//int s = 0;
int num = 1;

int f;
int fMax = period-1; //sqrt(period); // https://stackoverflow.com/questions/11699324/algorithm-to-find-all-the-exact-divisors-of-a-given-integer



if (period<1 ) {printf("input error: period should be positive integer \n"); return -1;}
if (period==1) { return 1;}

num = pow(2, period-1);

// minus sum of number of center of all it's divisors (factors)
for (f=1; f<= fMax; ++f){

if (period % f==0)
{num = num - GiveNumberOfCenters(f); }



}







return num ;

}


int ListNumberOfCenters(int period){

int p=1;
int pMax = period;
int num=0;

if (period ==1 || period==2) {printf (" for period %d there is only one component\n", period); return 0;}

for (p=1; p<= pMax; ++p){
num = GiveNumberOfCenters(p);
printf (" for period %d there are %d components\n", p, num);
}

return 0;

}






/*
   c functions using complex type numbers computes c from  component  of Mandelbrot set
   input:
   Period : positive integer
   n<d
   
   InternalRadius in [0.0, 1.0]
     
   */
complex double Give_c( int Period,  int n, int d , double InternalRadius )
{
  complex double c;
  complex double w;  // point of reference plane  where image of the component is a unit disk
 // alfa = ax +ay*i = (1-sqrt(d))/2 ; // result
  double t; // InternalAngleInTurns
 
  if (Period<1 )
{printf("input error: period should be positive integer \n"); return 10000.0;}
 
 
 
  t  = (double) n/d;
  t = t * M_PI * 2.0; // from turns to radians
 
  w = InternalRadius*cexp(I*t); // map to the unit disk
 
  switch ( Period ) // of component
    {
    case 1: // main cardioid = only one period 1 component
      c = w/2 - w*w/4; // https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set/boundary#Solving_system_of_equation_for_period_1
      break;
    case 2: // only one period 2 component
      c = (w-4)/4 ; // https://en.wikibooks.org/wiki/Fractals/Iterations_in_the_complex_plane/Mandelbrot_set/boundary#Solving_system_of_equation_for_period_2
      break;
     
    default: // period > 2
      printf("period = %d ; for higher periods : not works now, to do, use newton method \n", Period);
      printf("for each Period >2 there are more then 1 components.\nHere are 2^(p-1) - s = %d components for period %d\n", GiveNumberOfCenters(Period), Period);
      printf("to choose component use: it's center or external ray or angled internal address \n");
      c = 10000.0; // bad value
       
      break; }
     
     
  return c;
}



void PrintAndDescribe_c( int period,  int n, int d , double InternalRadius ){


complex double c = Give_c(period, n, d, InternalRadius);

printf("Root point between period %d component and period %d component  = c = %.16f%+.16f*I\t",period, d, creal(c), cimag(c));
//printf("Internal radius (c) = %.16f\n",InternalRadius);
printf("Internal angle (c) = %d/%d\n",n, d);




}

/*
https://stackoverflow.com/questions/19738919/gcd-function-for-c
The GCD function uses Euclid's Algorithm.
It computes A mod B, then swaps A and B with an XOR swap.
*/

int gcd(int a, int b)
{
    int temp;
    while (b != 0)
    {
        temp = a % b;

        a = b;
        b = temp;
    }
    return a;
}


int ListAllBifurcationPoints(int period,  int d ){


double InternalRadius = 1.0;
// internal angle in turns as a ratio = n/d
int n = 1;
//int d = 987;

if (period<1 )
{printf("input error: period should be positive integer \n"); return 1;}
if (period >2)
{printf("input error: not works now. TODO \n"); return 2;}
// n/d = local angle in turns
  for (n = 1; n < d; ++n ){
      if (gcd(n,d)==1 )// irreducible fraction
        { PrintAndDescribe_c(period, n,d,InternalRadius); }
        }       
        return 0;

}






int main (){

int period = 1;
double InternalRadius = 1.0;
// internal angle in turns as a ratio = p/q
int n = 1;
int d = 987;
complex double c;

//c = Give_c(period, n,d , InternalRadius);
//PrintAndDescribe_c(period, n,d , InternalRadius);

ListAllBifurcationPoints(period,d);

//ListNumberOfCenters(period);

return 0;

}

« Last Edit: July 25, 2021, 10:56:20 AM by Adam Majewski »

Offline marcm200

  • 3e
  • *****
  • Posts: 1013
Re: Parabolic Julia sets
« Reply #103 on: July 29, 2021, 12:36:26 PM »
"Compound complex"
\[
f(z) := z^2 + (-\frac{1}{2}+i\cdot \frac{1}{2}\cdot \sqrt{3})\cdot z
 \]
with a parabolic fix point at z=0 with 3 petals, the triangle
\[
A(0,0) \\
B(-0.125,0) \\
D(-0.125,0.0625)
 \]
resides inside the filled-in Julia set.

I focus on the sets \( z^2+z\cdot e^{2\pi\cdot i\frac{p}{q}} \), as those allow me to set the fix  point at the origin, and in particular at rationally complex coordinates that are exactly representable.  As sine and cosine of angles being a rational multiple of 2*pi are algebraic integers, I looked for values of the denominator q where the degree was suitable for my implementation,  i.e. 1, 2 or - if larger - a degree=2 in disguise. The values 3,5,6 were then selected. The above set is p/q=1/3 (literature below).

As the seed was irrationally complex, for the TSA I needed to use small complex intervals to  construct an image. Those, however, will comprise values from outside the unicritical parameter-space  as the parabolic seed is on the boundary. As I use outward rounding and basic operations, inclusion property of interval arithmetics assures that area that maps into the triangle (or other detected inteior) under the interval seed is true interior of the filled-in parabolic Julia set of interest.

Here I used \( z^2+([-16777216..-16777216]+i\cdot [29058990..29058991])*2^{-25}\cdot z \).
The image's lower left pixel's coordinates are \( 3056\cdot w-4 + i\cdot (2544\cdot w-4) \) and the width of a pixel w=8/8192.


The proof-of-concept stage is now completed. In principle, the TPC could prove triangles for many Julia sets, provided enough time and memory. For z^2+c there is the difficulty that one usually is not able to describe a periodic point in exactness for longer cycles or larger petal number, so I had to resort to the z^2+A*z case which in principle could be conjugated to one another. Would one extend the symbolic number capabilities to more than square roots, it should be possible to get sets with a larger number of petals. However, I suspect the time needed to grow tremendously large (I currently stop a set if after 1 day there's no answer of the TPC in either success or failure).

Literature
Lehmer DH. A note on trigonometric algebraic numbers.
Besin S, DeAngelo V. The minimal polynomial of sin(2pi/p) and cos(2pi/p).


xx
Definition of parabolic Julia sets

Started by marcm200 on Noob's Corner

3 Replies
468 Views
Last post August 10, 2019, 03:54:04 PM
by marcm200
clip
interior of parabolic julia set

Started by Adam Majewski on Programming

4 Replies
506 Views
Last post March 25, 2019, 04:28:50 PM
by marcm200
xx
Parabolic sepals of cauliflower Julia set

Started by Adam Majewski on Fractal Image Gallery

0 Replies
260 Views
Last post November 16, 2018, 07:00:45 PM
by Adam Majewski
clip
Julia Set made of Embedded julia sets (no screenshot, time cut short)

Started by Mr Rebooted on Fractal Image Gallery

2 Replies
216 Views
Last post May 14, 2021, 02:39:34 PM
by Mr Rebooted
clip
Quadratic Julia sets

Started by pauldelbrot on Image Threads

48 Replies
4191 Views
Last post July 27, 2021, 07:10:52 PM
by pauldelbrot