Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => (new) Theories & Research => Topic started by: makc on March 16, 2011, 03:20:02 AM




Title: Fractional mandelbrot using polar form of complex numbers
Post by: makc on March 16, 2011, 03:20:02 AM
so I was asking myself what causes "cracks" in fractional mandelbrot (i.e. z=z^p+c where p is not integer) and my initial guess was atan2 causing problems. to calculate z^p I would 1st do a = atan2 (z.y, z.x) and then do cos (pa), sin (pa), but the thing is pa and p*(2PI+a) will give different cos and sin for non-integer p. so I figured - bingo, that's where those "cracks"are comin from - and laid out a plan to get rid of them by using polar coords form of complex numbers. I thought if I will track z.a itself and not calculate it with atan2, raising z to p-th power would then change z.a continuously without clipping it into -PI...+PI, therefore bye bye cracks...

Boy, was I wrong! It turns out that fractional mandelbrots calculated in this manner have even more "cracks" - see, for example, this applet (http://wonderfl.net/c/A4Om/read) (calculates mandelbrots in p = 2...3 range)

Also, different initial range of c.a produce completely different images (not shown in applet), but all of them coincide with standard mandelbrots when p is integer. Did someone try something along these lines before?


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: hobold on March 16, 2011, 09:32:53 AM
I cannot help you with anything of immediate use. But I can tell you that the idea of extended complex numbers, where the angle in polar coordinates is not confined to a 2pi interval, has been used before. The result is a helical surface, i.e. after one full revolution around the origin, you are on a different floor (up or down, so to speak) from where you started. It's another one of Riemann's weird number spaces.

This sort of thing comes up when you reason about extending exp() and log() functions from the real axis to the complex plane. It turns out that the generalizations are not unique, exactly because you have infinitely many "floors" above and below every point in the complex plane.


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: makc on March 16, 2011, 11:45:08 PM
damn board ate my post! any way, here's a chance to make better one :) "floors" concept is spot on; you have two complex numbers with same x and y raised to same real power generating totally different results because they are on different floors. this not just adds "more cracks", this turns image into chaos - it changes significantly as you push iterations number up or vary exponent slightly, making continuous animation impossible :/

edit: also, angle increases exponentially so the whole thing breaks around 80 iterations for me... need another idea  :sad1:


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: makc on March 17, 2011, 02:03:29 PM
so far no idea, so just exploring blindly... here's 2nd to 3rd power transition with angle clipped to 5pi...7pi:

http://www.youtube.com/watch?v=jRfIW_Kr87E

next to try: arbitrary clipping intervals.


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: DarkBeam on March 17, 2011, 05:44:45 PM
You can't change the rules; some transformations are one way, and square root is one of them :hurt:
 ^-^


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: matsoljare on March 18, 2011, 12:33:28 PM
What happens if you apply an absolute function, or squaring function to the angle?


Title: Re: Fractional mandelbrot using polar form of complex numbers
Post by: makc on March 20, 2011, 08:18:57 PM
Another iteration of fractional powers experiment:

http://www.youtube.com/watch?v=L9O5pTbeSnA

Here, z^p is redefined like
Code:
public function pow (p:Number):void {
var a1:Number = Math.atan2 (y, x);
var a2:Number = (a1 < 0) ? a1 + 2 * Math.PI : a1 - 2 * Math.PI;
var ap:Number = p * (a1 + a2) / 2;
var rp:Number = Math.pow (x * x + y * y, p / 2);
this.x = rp * Math.cos (ap);
this.y = rp * Math.sin (ap);
}
This coincides with standard mandelbrot when p = 2, and rotates fractal for p = 3, 4, 5... so that leftmost bulb stays on x axis, as you can see. Although this does not achieve continuity, I consider it an important step: an idea to redefine ^ operation, namely :)

@matsoljare not sure I understand