Logo by Pauldelbrot - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Visit us on facebook
 
*
Welcome, Guest. Please login or register. April 20, 2024, 03:39:46 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 [2] 3   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Attempt at Unitary Mandelbrot Set  (Read 1851 times)
0 Members and 2 Guests are viewing this topic.
kram1032
Fractal Senior
******
Posts: 1863


« Reply #15 on: April 27, 2013, 02:30:59 PM »

Just so you can try different configurations, including things like higher-power mandelbrot sets, various polynomials or Möbius transforms:
Take two unitary numbers (as they now may be called) :
\left(Z|C\right)\in \mathbb{U\left(2\right)}\times \mathbb{R}^+_0, as well as a real constant parameter \phi \in \mathbb{R} defaulting to 0
with Z=(w,x,y,z,p) and C=(a,b,c,d,q), all those values \in \mathbb{R}

further define: \|Z\|=\sqrt{w^2+x^2+y^2+z^2}=r and analogously \|C\|=\sqrt{a^2+b^2+c^2+d^2}=s

Then I already defined their addition as either:
Z+C = \left(w+a\\ x+b\\ y+c\\ z+d \\q = p\right)
or:
Z+C =\left(\\ w+a\\ x+b\\ y+c\\ z+d \\ \arg \left(e^{i \phi} \left(e^{i p}+e^{i q}\right)\right)\right)
OR:
Z+C =\left(\\ w+a\\ x+b\\ y+c\\ z+d \\ \arg \left( r e^{i p}+s e^{i q}\right)+\phi\right)-for \phi=0, this last one actually should be the most natural definition, directly analogous to what would actually happen in complex numbers. However, it's still arbitrary in some ways.
This is the only ambiguous definition.
I'd recommend, however, to try out all three and see what results in interesting stuff. Fractals tend to be most interesting where you add in arbitrary definitions that are not quite as nice as "correct" addition.

Furthermore we have:

Z \times C = \left(a w - b x -\left(c y + d z\right)\cos\left(q\right)+\left(c z - d y\right)\sin\left(q\right)\\a x+b w-\sin (q) (c y+d z)+\cos (q) (d y-c z)\\\sin (q) (b y-a z)+\cos (q) (a y+b z)+c w-d x\\ \sin (q) (a y+b z)+\cos (q) (a z-b y)+c x+d w\\p+q<br />\right)

and lastly:

Z^{-1}=\frac{1}{r} \left( w \\-x\\-y \cos (p)-z \sin (p)\\y \sin (p)-z \cos (p)\\-p<br />\right)

Very much like what would happen in quaternions.
I'll look into what happens if you do a corresponding exponential function which would give rise to all kinds of other interesting transformations.
« Last Edit: May 05, 2013, 01:06:06 PM by kram1032 » Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #16 on: April 28, 2013, 11:40:34 PM »

So if there is any "true" way to deal with varying phases during addition, I still don't see it.
However, somewhat analogous to the sign varying MSets that were going on a while ago, where the iteration is altered by randomly flipping the imaginary part of z, e.g. randomly taking z orz^* as variable to be iterated, I have yet another idea:

Instead of sticking to any fixed rule of what the phase would be after addition, you could just make it be random.
In that variation, you wouldn't even have to keep track of the phase, since after each addition, it would be independendly random again anyway.
In that case, you have a standard quaternion M-set, but with the slight change, that the current product of two numbers (or the current square of a number) depends on a random phase.
This would give rise to irregularities that might break down the boring, circular form of typical quaternion m-sets.

To do this, just do:

Z, C are typical quaternions. Additionaly, you introduce a random variable \phi that changes each iteration.
\phi slightly changes how you'd usually square Z in a way, similar to the rules given in the previous post.

That way you have for each iteration:

Z \to Z^2+C=\left(w\to w^2-x^2-\left(y^2+z^2\right)\cos\left(\phi\right)+a\\x\to 2 w x - \left(y^2+z^2\right)\sin\left(\phi\right)+b\\y\to w y - x z + \left( w y + x z \right)\cos\left(\phi\right)+\left(x y - w z\right)\sin\left(\phi\right)+c\\z\to x y + w z + \left(w z - x y\right)\cos\left(\phi\right)+\left(w y + x z\right)\sin\left(\phi\right)+d\right)\\ \phi \to \text{random real}
This should be really easy to implement.
« Last Edit: April 28, 2013, 11:42:10 PM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #17 on: April 29, 2013, 05:25:11 PM »

Waiting for pictures.
It have 4 parts when it's 3D, so as I understand, 4th allaway are 0 huh?
Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #18 on: May 01, 2013, 11:25:00 AM »

Well, you know how quaternion mandelbrot sets work. This is almost the same.

Or alternatively, you know the cut-planes through Mbulb, Mbox, etc. - You could do a cut-space instead or also try cut-planes.
Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #19 on: May 01, 2013, 05:21:06 PM »

Will try it. with random numbers seems to be the most easy one, cos I'm not shure about numerical value of p and probably could make lots of mistakes. Is p just a complex angle? Or somehow a value of a quadrant , (1, i) or (-1, i)
Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #20 on: May 02, 2013, 12:59:28 PM »

p is any real. It's an angular value, so it's sufficient to constraint it to \left[-\pi,\pi\right] but if it's not constraned by that, it works just fine as well, since the function wraps around anyway.

As said, in those Z and C above, all interior values are reals.
\left(a|b|c|d\right) \in \mathbb{R}\text{, } \left(w|x|y|z\right) \in \mathbb{R}\text{, } p \in \mathbb{R} \text{ and } q \in \mathbb{R}

That being said, e^{i p} is of course any value on the complex unit circle. It's equal to \cos{p} + i \sin{p} where \cos{p} and \sin{p} are also reals, but the combination, of course is, a complex number. - one that satisfies \|e^{i p}\|=1.
« Last Edit: May 02, 2013, 02:39:25 PM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #21 on: May 03, 2013, 03:12:27 PM »

Tried random thing. Different random seeds generate different shapes but result allways is very quaternion like aka revolution surface. Julias are a bitt more interesting throught.
Didn't tried non random, I not quite understand how then does p is calculated and alsou I want to spend time more on finetuning contest images.

Code were like this. Alsou tried with fi = temp:
Code:
temp= seed= random(seed);
fi=( (12*pi*temp) /(randomrange));


 Cx=real(C); Cy=imag(C); Cz=part_j(C); Cw=wplane;//part_k(C);
 zx=real(z); zy=imag(z); zz=part_j(z); zw=part_k(z);
 
 zzx = 2*zw*zx -(zy*zy+ zz*zz)*cos(fi)  +Cx;
 zzy = zw*zy -zx*zz  + (zw*zy +zx*zz)*cos(fi)+ (zx*zy-zw*zz)*sin(fi) +Cy;
 zzz = zx*zy +zw*zz +(zw*zz-zx*zy)* cos(fi)+ (zw*zy + zx*zz)*sin(fi) +Cz;
 zzw = zw*zw-zx*zx - (zy*zy+zz*zz)*cos(fi) +Cw;
 z= quaternion(zzx, zzy, zzz, zzw);
zx=zzx;
zy=zzy;
zz=zzz;
zw=zzw;


* Unitary_mandelbrot_set.jpg (28.56 KB, 311x269 - viewed 153 times.)

* Unitary_julia_set.jpg (24.46 KB, 304x223 - viewed 153 times.)
Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #22 on: May 04, 2013, 01:50:18 PM »

Ok, for the three different kinds of addition I thought of:

The first one with p=q essentially is what you're doing right now already, except
Instead of randomly assigning a new p in each iteration, you randomly assign one at the first iteration and then double it each iteration. - since the phase of C always is set to the phase of Z, you don't actually need to keep track of an individual phase for C.
p=2p

The second one, you assign a random phase to Z and a random phase to C at the first iteration, and also decide on a third phase factor \phi that is fixed. - if you just put that third phase to 0, the term e^{i \phi} becomes 1.

Then you take your three phases p, q, \phi and plug them into the formula arg(e^{i \phi}\left(e^{i p}+e^{i q}\right), to obtain your new p. Since in a typical M-Set, C is constant, so would be q. Similarly, \phi is constant. Only p changes.

For the last form, you weight the phases with the respective radii of the numbers. E.g. you have:
r=\sqrt{w^2+x^2+y^2+z^2}
s=\sqrt{a^2+b^2+c^2+d^2}
p = \arg\left(r e^{i p}+s e^{i q}\right)+\phi - where again, q and \phi are constants, and you might want to set \phi to 0.

It's simply another variable to keep track of, and you plug it in the same formula over and over again, just like you'd do for the other forumlae.

Maybe also try other cut-spaces to see what other structures lie in this. - although I kinda expected this after finally figuring out how the multiplication and stuff worked out, especially for this random version.

There is a certain ridge in it that I'd not expect on a quaternion M-set. You can see where it opens up. That's unusual for an integer power M-set. Typically, this would only occur on non-integer powers...
That suggests, that the shape isn't perfectly symmetric and if you cut through it, you'll find slighthly distorted M-sets on any but the "main" plane which should still be a perfectly undistorted M-set.

That ridge might also be a result of sampling over the entire space randomly, rather than constraining it to any "proper" rule. - It shows the entire capabilities of this added phase. As said, it should add a reflection to the mix, that originally only was rotation.  If you reduce the sampling space, you should end up with a bit more defined structures. Depending on the phase you choose, you'll end up with something that's pretty much exactly like the "normal" rotation M-set (namely for exactly p=0) or with a set that's based entirely on reflection (if I'm not mistaken, it should be at p=\pi) or, for all the other values, anything in between.
« Last Edit: May 05, 2013, 01:04:23 PM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #23 on: May 07, 2013, 01:20:12 PM »

Rendered the same random version formula with cutout. Not as expected;) Interesting enought the same fractal without any cutout looks like some bell like revolution surface, and with a cutout it's something other. I used following code for a cutout, so resulting random sequence is different as if region is cuted it automaticaly bails out on the first iteration.

Code:
//initialisation
autobailout=0;
if (coordZ!=0 && part_j(pixel) < coordZ )
{
autobailout= bailout +1;
}
//loop
//formula code are here

//bailout
return( |z|+ autobailout < bailout);

Random seed is 1, 40 iterations, colouring by orbits on 2 iteration, same wievport. If I remember my cutout code correctly:

- Cuted of region z<0 (smooth surface, sand colouring).
- Cuted of region z>0, x>0 (fuzzy surface).
- Cuted of region z<0 and x<0 ( quarter, smooth surface).
- No cutouts.


* Unitary_bell_negatZ.jpg (50.04 KB, 400x340 - viewed 120 times.)

* Unitary_bell_positZ.jpg (35.29 KB, 400x340 - viewed 120 times.)

* Unitary_bell_quarter.jpg (28.06 KB, 400x340 - viewed 126 times.)

* Unitary_bell_whole.jpg (30.35 KB, 400x340 - viewed 118 times.)
« Last Edit: May 07, 2013, 01:23:57 PM by Alef » Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #24 on: May 07, 2013, 04:42:45 PM »

It looks severely undersampled but these are sort of expected for a purely random case.
Did you already try to, rather than randomly switching the phase each iteration, doubling it? - That would be the first kind of addition I proposed and it should be almost the same as what you have now. Except that you only need to randomly generate a number once and then double it, rather than once per iteration.

What exactly is the difference between the first "whole" set and the second one, the unitary bell?
Did you look at a different set of axes?
« Last Edit: May 07, 2013, 11:39:59 PM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #25 on: May 13, 2013, 06:17:11 PM »

Changed random formula so that each point during iterations would go throught the same trajectory of random numbers. So  now it's smooth.

Initialisation:
doonce=0;

Iteration loop:

if (doonce==0)   
{
temp= seed2= random(seed);
doonce=1;
}
else
{
temp= seed2= random(seed2);
}
fi=temp;

///previous formula code

It looks like there are 2 different versions:
- fi trajectory for every point is different. Result looks fuzzy. Start iteration of point with random fi, then during iterations pick random fi or (if I 'm correct) when multiplying fi by 2.

- fi trajectory is identical for all points. Result looks smooth.
Say, fi value during iterations is random but iteration of every point starts with the same random seed, so that trajectory of fi values is the same. Like in this example. Or just chose some starting value of fi and do with it wathever you like.

 Images with starting seed =1.


* Unitary_smooth_2D.jpg (78.13 KB, 640x480 - viewed 35 times.)

* Unitary_smooth_negatZ.jpg (60 KB, 640x479 - viewed 33 times.)

* Unitary_smooth_whole.jpg (60.94 KB, 640x479 - viewed 35 times.)
Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #26 on: May 14, 2013, 10:15:56 AM »

those already look a lot better. The cross-section is interesting.
So the images you showed are for a constant \phi per point, that doesn't change at all?

The "correct" version would be a \phi per point that would double each iteration, so \phi \to 2\phi. Is that already causing fuzziness?
« Last Edit: May 14, 2013, 10:19:13 AM by kram1032 » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #27 on: May 15, 2013, 06:56:34 PM »

Random numbers are generated by arithmetical methods, so they aren't undetermined random. If each point is started with same random seed, then for each point next generated random numbers are the same. So neigbouring points are simmilar and result is smooth.

If starting seed for each point is different, then it's proper randomness, but then random number generates totally different sequences, each point is different and result is fuzzy.

First seed = starting seed.
seed (of iteration n+1)= random number = random(seed(of iteration n)  ) 

But with Ф (n+1) = Ф (n) x 2 in 3D it will be a smooth rotation surface like of example above.
« Last Edit: May 15, 2013, 07:03:01 PM by Alef » Logged

fractal catalisator
kram1032
Fractal Senior
******
Posts: 1863


« Reply #28 on: May 15, 2013, 07:01:21 PM »

Ok, that sounds more like what I actually expected.
Nothing of this really is a surprise. Let's see now, what other types of addition give. Can you tell me precisely with what you need help to implement them?

If those don't give anything interesting either, all that's left to do is wild experimentation until something interesting pops up. As usual. cheesy

Oh, and Julia-sets will be interesting to look at too.
Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #29 on: May 15, 2013, 07:13:23 PM »

Some easy formula;)
In the shape:

iteration (n)
x= ... +C
y=.... +C
z=...  +C

Ф =some sort of(Ф)

But I think, everything correct quaternion like would result in revolution surface what is kind of boring.
Logged

fractal catalisator
Pages: 1 [2] 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
3D Mandelbrot (my 76. Attempt) 3D Fractal Generation trafassel 8 4449 Last post May 30, 2010, 09:17:58 PM
by kram1032
3D Mandelbrot (a newbies attempt) The 3D Mandelbulb gengis 4 4177 Last post January 03, 2011, 11:10:27 AM
by EvaB
Relocated: 3D Mandelbrot (a newbies attempt) 3D Fractal Generation Nahee_Enterprises 0 1276 Last post September 12, 2010, 11:23:01 PM
by Nahee_Enterprises
3d Mandelbrot attempt Theory « 1 2 » M Benesi 20 9378 Last post March 12, 2011, 02:36:42 AM
by M Benesi
Another 3-D mandelbrot attempt (new) Theories & Research msltoe 5 544 Last post January 11, 2013, 03:49:42 AM
by jehovajah

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.187 seconds with 24 queries. (Pretty URLs adds 0.009s, 2q)