Julia sets and altering the iterate afterwards

  • 5 Replies
  • 205 Views

0 Members and 1 Guest are viewing this topic.

Offline marcm200

  • *
  • Fractal Flamingo
  • ****
  • Posts: 340
« on: June 10, 2019, 08:24:49 PM »
I found a very interesting technique in the old forum for altering Julia sets after one has computed the new iterate.

http://www.fractalforums.com/mandelbrot-and-julia-set/a-beautiful-method-for-modifying-julias-mandelbrots-not-so-much-in-2d/ (credit to M Benesi).

I randomly chose some c values with some thrown-together formulas (constructed without much thought, just to see whether there is a variation and if so, of what sort).

Has anyone done a thorough exploration of that concept - changing the value of the iterate, so basically applying two functions, one sectionally defined in a single iteration?

The image contains three iteration types (z^2, z^3, z^6) and the used variations: After computing the iteration zn+1 do: (n+1 has been omitted from now on):

var 1: if (re(z) > fabs(im(z))) re(z) = 0.5*(cos(re(z))+sin(im(z)));
var 2: if (re(z) > fabs(im(z))) re(z) = 0.5*(cos(2*re(z))-sin(im(z)));
var 3: if (re(z) > fabs(im(z))) re(z)=-re(z);
var 4: if (im(z) > fabs(re(z))) im(z) = -0.5*(cos(2*re(z))-sin(im(z)));
var 5: if (re(z) > fabs(im(z))) re(z) = log(fabs(re(z)+im(z)));
var 6: if (re(z) < log(fabs(im(z)))) im(z) = -re(z)+sin(im(z));
var 7: if (sin(re(z)) > cos(im(z))) re(z) = -log(fabs(im(z)));
var 8: if (re(z) > (cos(re(z))*im(z))) re(z) = -0.5*(re(z)+im(z));

before next iteration starts.

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 655
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #1 on: June 11, 2019, 11:55:23 AM »
Oh great, thank you for posting, Marc!  :thumbs: I am always interested in new transforms.
Applied yours to the mandelbulb, nice results.
I have three more for you if you are interested:

invcylindrical:
if (invcylindrical) {
         z.x=z.x*cos(z.y);
         z.y=z.x*sin(z.y);
      }

log:
if (LogX)(z.x = log(z.x + sqrt(z.x*z.x + 1.))); Sorry, had the transform for the vec3 LogZ here  :embarrass:

sin:
if (SinX)(z.x = sin(z.x )+(z.x));


Would it be ok if I added your transforms to Fragmentarium's Code Snippets-section on this forum (of course with proper credits! ;) )?
« Last Edit: June 11, 2019, 05:57:52 PM by Sabine62 »
To thine own self be true

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 655
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #2 on: June 11, 2019, 01:47:25 PM »
Just found that combining SinX with SinY is good idea too ;)

Offline marcm200

  • *
  • Fractal Flamingo
  • ****
  • Posts: 340
« Reply #3 on: June 11, 2019, 03:23:27 PM »
Would it be ok if I added your transforms to Fragmentarium's Code Snippets-section on this forum?

Sure thing. Go ahead!

I like how different the outcomes of your transformations are. The ones I use, often are mainly spike-y in nature, not sure why.

Do you apply your transformations in every iteration - or just after a conditional check like if re(z.x) < im(z.y) or something like that? (Now that I'm writing this, maybe that's the spike reason?)

EDIT: Of course, I meant to say: if z.x < z.y (too many formulas floating in my head).
« Last Edit: June 11, 2019, 04:47:29 PM by marcm200, Reason: if-condition was written incorrectly »

Offline gerson

  • *
  • Fractal Feline
  • **
  • Posts: 180
« Reply #4 on: June 11, 2019, 04:41:45 PM »
@Sabine62 Very nice images, are mb3d, mandelbulber or fragmentarium?

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 655
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #5 on: June 11, 2019, 10:26:01 PM »
@marcm200 Thank you very much! :)  :thumbs:
I will add to the Code Snippets asap.

The images above are all with the code placed in the iteration loop. I have attached for comparison one image with the transform within the iteration loop and one with the transform used as post-transform. I used the same conditions as you (at least, I translated the real and imaginary numbers to z.x and z.y so Fragmentarium understands me ;) ), within the loop and post-iteration. The nice thing with your transforms is that the conditions could be anything, in Fragmentarium f.i. I could use a boolean uniform checkbox for user input.

@gerson Thank you! and it's Fragmentarium, Mandelbulber wants to kill my computer, I am pretty sure of it  ;D




clip
Period altering in polynomial Julia sets when combining iterations

Started by marcm200 on Fractal Mathematics And New Theories

2 Replies
98 Views
Last post July 22, 2019, 06:23:50 PM
by Adam Majewski
xx
Embedded Julia sets

Started by pauldelbrot on Image Threads

70 Replies
3705 Views
Last post August 13, 2019, 03:48:03 AM
by pauldelbrot
clip
Quadratic Julia sets

Started by pauldelbrot on Image Threads

11 Replies
547 Views
Last post June 18, 2018, 06:15:08 PM
by pauldelbrot
clip
Unstable Julia sets - still fractals?

Started by marcm200 on Fractal Mathematics And New Theories

1 Replies
141 Views
Last post April 28, 2019, 12:47:13 PM
by pauldelbrot
xx
Definition of parabolic Julia sets

Started by marcm200 on Noob's Corner

3 Replies
154 Views
Last post August 10, 2019, 03:54:04 PM
by marcm200