• May 08, 2021, 04:03:33 AM

Login with username, password and session length

Author Topic:  Julia sets: True shape and escape time  (Read 14400 times)

0 Members and 1 Guest are viewing this topic.

Offline Adam Majewski

  • Fractal Frogurt
  • ******
  • Posts: 472

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #301 on: August 18, 2020, 11:56:04 AM »
@Adam: Brute-force means that I basically compute for "guessed" c values whether they fit the desired outcome (here a repelling cycle and an attracting cycle near parabolic). The more problem-suited this guess becomes, the less work you have to find an example, but the more complicated the initial analysis to arrive at that guess-strategy becomes.

So when I write brute-force, it means I did not spend too much time on pre-selecting regions of c values that might suit the problem, but rather computed a bunch of them and verifying for the desired property. Here the pre-selecting was simply following the vector from one bulb's center to another one's which passes through/or near the parabolic point, so should find the desired c values.

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #302 on: August 25, 2020, 06:03:57 AM »

That is how I imagine an X-ray/angiogramm overlay of an alien - bones and some weirdly fluorescent organs.

Constructed degree-5 polynomial with (partially) interval coefficients and a parabolic 3-cycle (no interior found at L20), and an unintended attracting 3-cycle (immediate basins in turquois). Interestingly, I did not find any additional cycles longer than 3 in the polynomials constructed so far.


A5=[-183927998..-183927997]*2^-25 + 0*i
A4={350457400..350457401]*2^-25 + 0*i
A3=[-48467513..-48467512]*2^-25 + 0*i
A2=[-201947971..-201947970]*2^-25 + 0*i

The image was reliably downscaled, rotated (positive x-axis direction is downwards, positive y-axis direction is to the right) and automatically cropped to cover the entire gray area.

Upper left pixel represents [a..a+w] + i * [b..b+w]:
  w=width of pixel's underlying complex square = 4 / 8192
  a=2304*w -2
  b=2816*w -2

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #303 on: August 27, 2020, 12:05:23 PM »
Now with the recursive monotonicity check (RMC) working, I equipped the TSApredictor with that capability and re-checked some of my old, not yet finished images to see what can be improved.

Below is a degree-6 polynomial with a period-2 cycle (orange triangle) and a period-18 one (green, lower right). Its computation history shows nicely the course of the improvements made over time.

Up to level 17, I used the f107 number type by Robert Munafo and my hard-coded z^6+A3*z^3+c function in the mean-value form without RMC.

The TSApredictor worked on a full-coefficient degree-7-polynomial  with RMC and detected the 18-cycle at L19R2.

I skipped L18 and jumped directly to L19 importing the predicted interior, resuming computation now with an RMC-equipped version of the z^6+A3*z^3+c polynomial to speed things up (the 7-polynomial would have worked fine, but would have conducted a lot of multiplications by 0, so those function calls could be avoided). This level used the custInt number type with double precision endpoints as did the predictor.

Generally using a non-sufficient number type and outward rounding can introduce an overestimation onto the bbx if the rounded values fall just outside a pixel and in part counteract the tightening by the monotonicity check. However, as this number type is considerably faster than __float128 or my arbitrary FPA type, I usually start with this approach to see whether a missing cycle can be found.


c=(-3198157-35337012*i) * 2^-25
A=(15486681-25810810*i) * 2^-25

The image was reliably downscaled from L19R2.

width of pixel's underlying complex square: w = 4 / 8192
lower left pixel [a..a+w] + i * [b..b+w]
  a=1536*w -2
  b=1280*w -2

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #304 on: February 25, 2021, 11:46:51 AM »
gerrit posted an interesting cubic Julia set in (forum link).

I computed this set (slightly different parameters to make them an integer power of 2^-25) up to my current hardware limit (first image, 128-fold reliably downscaled) to see, if I can detect the small trunk spirals (2nd image, left, original size of the region of the red arrow in the first image). Some very fine, dot-like Fatou components emerged, almost completing a full turn.

This set also shows a nice feature: two very distinct looking groups of Fatou components. Looking at the images of the refinement process, at L14 (2nd image, right), the 7-cycle was detected and there remained some gray large areas. Up to now, those were always a hint to a second cycle - but here, it wasn't. In deeper refinements the gray turned into interior cells, but not into a 2nd cycle. Quite interesting!

Technical details
  • the entire Julia set is contained in the 8-square (Douady formula). After computing some levels, it turned out that the set was readily contained in the 2-square. Computation was therefore restarted.
  • I used an interval-number type with double precision endpoints and outward rounding.
  • the function used was a general degree-3 polynomial in its expanded component form with tightening optimizations employed.

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #305 on: April 07, 2021, 03:10:26 PM »
"Reliable affine arithmetics"

I have a number of images for which I would like to detect interior and cycles with the TSA, however as they are relatively high-degree for cell-mapping and IA overestimation, so far that proved unsuccessful.

Here I implemented my own library of reliable affine arithmetics (dealing with rounding errors by introducing new noise symbols), to see if the promise of respecting linear dependencies between the real and imaginary coordinate of the bounding box (which IA does not), leads to a better convergence and interior detection (the final goal).

I tested this (on selected points, not a full image yet) with f(z)=z^8+A*z+c with A=(-778325-33669899*i)*2^-25 and c=(-2568192+14110720*i)*2^-25. The point-sampled Julia set is the rightmost part in the picture below. The current status of the TSA in the middle - without interior detected by IA.

Left is a (typical I hope) bounding box for f(B). Here for the complex square B=[a..a+d]+[b..b+d] with a=691/1024, b=256/1024 and d=2^-14, which was randomly selected and seems - by point-sampling - to be interior.

There was quite a big improvement when using affine arithmetics. The classic IA produces the red bounding box (absolute sizes are arbitrary). AA output the green rectangle, which is much smaller and seems to fit tightly to the presumed true image of f(B) (gray, B was gridded and each individual grid point was numerically, non-rounding controlled, mapped to get a rough visual on how the true image looks). So classic IA has quite a large overestimation - and all the pixels that bbx intersects with are influencing the cell-mapping's backpropagation of color to the initial complex square B.

I hope this reduction suffices to detect interior in the next implementation step.

The principal output of AA is a convex polygon, symmetric around a central point. Here I plan on using AA in a naive, black-box like way: Enter a complex square, transform it into an affine form, perform the calculations in AA and convert the resulting affine form back to an axis-parallel rectangle (a complex interval).

This leads to a loss of information as I still have to check pixels that are probabgly outside the actual AA polygon, but this is a project for the farer futere as I would need to change the bbx-routine altogether (I am currently trying to get a visual on that polygon for some non-trivial examples).

Currently I implemented only addition, subtraction (rounding introduces a new noise symbol) and multiplication (a new noise symbol both covers rounding and an upper bound on the non-linear (in AA's affine form) terms).

Has anyone tried different upper bounds on that non-linear term? From the bbx's so far visualized, the AA complex interval seems to be quite tight (so a smaller upper bound might not provide a big decrease in width?).

My implementation is based on:

  • J. Stolfi, LH de Figueiredo. Self-validated numerical methods and applications. 1997.
  • F. Messine, A. Touhami. A general reliable quadratic form: an extension of Affine Arithmetics. Reliable Computing, 2006.

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #306 on: April 09, 2021, 02:11:51 PM »
(A long text again, but it's quite interesting trying to figure out why the TSA results using affine arithmetics are how they turned out.)

f(z)=z^5+A*z+c at c=(-20250624+7340032*i)*2^-25 and A=(-24820428-18795520*i)*2^-25 with a period-5 cycle. Images show the 2-square, pixel = complex interval, reliably downscaled.

2nd attempt - successful (af means affine form)
Using a 2-step approach benefit strongly from AA's power: For a pixel B, bbx of af of f( af of f(B) ) was computed instead of the usual bbx of af of f(B). The tightly fitting affine form of the first application of f was directly used in the 2nd iteration, and only at the end, an axis-parallel rectangle was produced (having superfluous pixels that backpropagate their color). In IA this is not beneficial as all steps produce axis-parallel rectangles introducing extraneous pixels.

The 5-cycle was then detected one level earlier (L14) as compared to the IA approach and even the 1-step affine approach (see 1st attempt below). The first image's left part shows L15: black is interior detected by both 2-AA and IA, white is exterior of both, gray undecided, red is interior detected by solely 2-AA, blue exterior by 2-AA).

About 150,000 pixels could be judged additionally (but there are 41 pixels where the IA approach was better (pale red and blue). An idea for optimization could be using both methods in parallel (as 2-AA is much slower than IA anyways) and take their intersecting rectangle.

2nd image is the current final outcome, L17 2-step AA, immediate basins (orange), upper right is a point-sampled version.

There is still a long way to go for the TSA to get one full turn of the spiral (but currently, all my computer power goes to the Mset area calculation).

Using a multiple-iteration approach can change, however, the number of cycles and their periods (if step size and period share a common divisior greater than 1), but for the sole detection of interior, that method works quite well.

1st attempt - unsuccessful
Using affine arithmetics in the black-box manner in Horner form did provide - no advtange. In fact there were even some pixels which are unjudged by AA as compared to IA.

Current hypothesis: Most of the filled-in Julia set lies in the unit circle (first image, right part, green). The z^5 term in f sends points from within closer to the origin. If this also happens for complex intervals in the refinement levels used here, the mapping is in some neighbourhood of the origin roughly approximated by A*z+c. Then the component functions have each variable (real input part x and imaginary part y) occuring only once, and classic IA is tight in that case, so there is nothing to gain by using affine arithmetics in the black-box manner. One immediate basin (orange) is pretty close to the origin (yellow exaggerated point). Hence all interior so far detected has a path to the origin's vicinity and the linear term in f takes over.

Interesting question: What would happen if I used a conjugational translation, like moving the set 3 units to the left and out of the 1-circle. Maybe then AA exerts a positive influence?

Offline marcm200

  • 3d
  • ****
  • Posts: 959
Re: Julia sets: True shape and escape time
« Reply #307 on: May 03, 2021, 02:56:22 PM »
"An affine diamond"

Affine arithmetics is very well suited to follow the orbit because it mimicks in part the rotational force of complex squaring. In determining definite exterior of the Mset, this was successfully employed (forum link).

Here I wanted to see if it can also be used to detect a cycle in a reliable manner to construct the interior of the quadratic Mandelbrot set. So instead of analyzing a complex interval as a seed with the TSA algorithm, I used the following:

guide data
  • unreliably compute the period and an approximation of one periodic point with a complex number as a seed
  • put a small square around the guessed periodic point and match it with the grid lines of a virtual Julia set resolution.

reliable part
  • convert that rectangle pp0 into an affine form.
  • iterate using affine arithmetics and outward rounding for the guessed period length.
  • convert the result back into an axis-parallel rectangle pp1.
  • if pp1 lies fully inside pp0, by inclusion property of IA and AA under the basic operations used, the starting region - which has area - has no path to the outside of the 2-square (escape), and by Figueiredo's algorithm is part of a cycle. So the initial periodic point guess was accurate enough.

(The period itself was not validated by this, it could still be a multiple, but the exact number was not needed here and using the guessed cycle length allowed me to only use one conversion/inclusion test at the end.)

The image below shows a region of the Mset near the south period-3 bulb (this bulb was computed with a closed formula, hence the smooth and round shape).

I find it quite interesting that the overall shape of the emerging hyperbolic components resemble a diamond - in the parameter space, which is the effect of z^2+c on a starting rectangle in the dynamicla plane. The boundary is quite rough, maybe an overestimation effect, making some square operations "tighter" than others, or the guessed periodic point lied in a small Fatou component, so enlarging it drives it into the Julia set's outside? And it seems that the diamonds have a preferred direction, all pointing towards their parent bulb.

3d Julia sets: True shape

Started by marcm200 on Image Threads

31 Replies
Last post January 20, 2020, 11:42:23 AM
by marcm200
True-shape based C++ oracle for the int-/exterior of Julia sets

Started by marcm200 on Programming

6 Replies
Last post August 23, 2019, 10:47:10 AM
by marcm200
3D M-set for tricomplex numbers: Escape time and shape change?

Started by marcm200 on Fractal Mathematics And New Theories

2 Replies
Last post May 04, 2019, 09:58:37 PM
by marcm200
True shape/IA 2D/3D Julia set source code

Started by marcm200 on Programming

15 Replies
Last post July 05, 2020, 11:46:53 AM
by marcm200
Escape Time Blur

Started by AlexH on Share a fractal

0 Replies
Last post August 15, 2018, 05:42:06 AM
by AlexH