Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => (new) Theories & Research => Topic started by: MTd2 on January 26, 2010, 03:26:03 AM




Title: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 03:26:03 AM
Hi People!

Did anyone try this? I searched for it, but couldn't find anything:

Rn = (x,y,z)

R0 = (x0,y0,z0)
R1 = (x1,y1,z1)

Rn+2 <- Rn+1XRn + R0

X denotes the usual cross product:

http://en.wikipedia.org/wiki/Cross_product#Computing_the_cross_product

The rules for plotting should be the same for the generic Mandelbrot type of fractal, where the distance from the origin is d = (x2 + y2 + z2)1/2.

I don't know how to plot that in 3D, I hardly know any programing. If someone is interested in that, a plot would be nice. Or at least, a link for a graphic of such set, if was already found.

Thank you!









Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 12:11:00 PM
doesnt RXR immediately return 0 vector?


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 12:43:35 PM
Yeah... But I fixed that! ;D


Title: Re: Cross Product Mandelbrot
Post by: kram1032 on January 26, 2010, 03:28:19 PM
R_0 already has to be set to c_1, c_2, c_3 in that case, because cross([a,b,c],[0,0,0]) returns [0,0,0] too :)


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 03:37:07 PM
You just have to set just 2 parameters R1 and R0, R1=/=0. It should work like a Z axis for the 1st and 2nd iteration of all points :)

So that, you have:

R2 = R1XR0 + R0
R3 = R2XR1 + R0
R4 = R3X42 + R0
.
.
.

BTW, don't say c, because I am not thinking about complex numbers. It its just a triad of real numbers. :)


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 03:37:59 PM
I gave this idea a test run in terms of numbers and, indeed, there are areas of convergence and divergence (which means it should be possible to render the border).


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 04:11:26 PM
ok, so unless I made an error somewhere, it looks like boring smooth surface:
(http://xs.to/image-73CE_4B5F0572.jpg) (http://xs.to/image-762A_4B5F0572.jpg)
(filaments look too unlikely to be real, probably bad iteration/bailout limits, or even bugs; this program is very wip)


Title: Re: Cross Product Mandelbrot
Post by: kram1032 on January 26, 2010, 04:14:24 PM
I doubt it's bugs: Bugs usually make it look better, lol

j/k

Try a higher bailout radius, then :)


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 04:32:21 PM
I guess it happened because if you think well, having just 2 3d-vectors, it means that there is a cylindrical symmetry around R1. So, although the computation is 3D, you've got just 2 interesting dimensions. And that's why you just saw an ovoid surphace, because that's just the outer shell of the rotation along the cylinder.

Set R1=(0,0,1) and plot just the yz. This 2d symmetry will be enough and everything.

That cylindrical symmetry should be broken, so, I guess this formula would work better:

RN+3=RN+2XRN+1XRN +R0

where

R2=/=R1=/=0

and R0 span all R3


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 04:52:08 PM
so I upped bailout sqrt(10) times, decreased "bail in" sqrt(10) times, upped resolution 4 times, decreased max step 10 times... at this point my PC reminded me it does not qualify for quantum computing competition, so I aborted it at about 34%. never the less, filaments are still there (http://xs.to/image-3EDC_4B5F0E8E.jpg). although a bit different shape, but that might be because of also increased field of view.

this has a potential for good image like this one (http://www.daviddarling.info/images/Saturn_rings_and_shadow.jpg) :)

edit: I can see new megathread coming, "The search for FSM fractal"


Title: Re: Cross Product Mandelbrot
Post by: kram1032 on January 26, 2010, 05:13:43 PM
 {(a|b|c)}\times{(d|e|f)} = {(b f-c e|c d-a f|a e-b d)}...

maybe this could give something interesting after being turned a bit?

What would happen if you initialize it with a,b,c being the actual location x0,y0,z0 in the coordinate system and d,e,f being a rotated coordinate system and just iterate as usual?

{(a|b|c)}\times{rot(a|b|c)}+{(x|y|z)}


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 05:28:18 PM
My motivation here is to try to get fractals by iterating surfacess in the process rather than  just numbers. What I mean by surface, in this case, is the cross product, which determines a surface. You can generalize that to any dimensions using exterior algebra.

http://en.wikipedia.org/wiki/Exterior_algebra


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 05:31:12 PM
...never the less, filaments are still there (http://xs.to/image-3EDC_4B5F0E8E.jpg)...
I rolled back to original settings except fov/resolution to see how that affects filaments, and I believe they are likely to vanish entirely at sufficiently high iterations:

(http://xs.to/thumb-2D5E_4B5F175B.jpg) (http://xs.to/image-2D5E_4B5F175B.jpg)

maybe this could give something interesting after being turned a bit?
maybe. but I just discovered slight bug in my implementation, R2 = R1XR0 + R0 was not respected. I.e., I had R2 = R1xR0 + location, R3 = R2xR1 + location, etc, with R0 actually != location :) also, R1 is fixed vector any way, and one could play with that too, before dismissing the idea completely.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 05:37:22 PM
As I said before, try to plot a cross section. Changing R1 won't matter. Try to use the other definition I gave that http://www.fractalforums.com/new-theories-and-research/cross-product-mandelbrot/?action=post;num_replies=12#top

So that there can be differentiation in 3d.


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 05:42:20 PM
...I just discovered slight bug in my implementation, R2 = R1XR0 + R0 was not respected...
well fixed it, and guess what we have now :D

(http://xs.to/image-E922_4B5F1A44.jpg)

apparently the filaments correspond to vectors that generate 0 cross product in 1st iteration, and so "converge" really quickly. it is funny how that bug created curved shapes, as kram said
Quote
Bugs usually make it look better, lol


Title: Re: Cross Product Mandelbrot
Post by: kram1032 on January 26, 2010, 05:51:48 PM
Just an other thought: Try random starting values (but save them, just in case you find something interesting :) )


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 05:53:39 PM
Just an other thought: Try random starting values (but save them, just in case you find something interesting :) )
if you mean R1s I think it is now quite obvious that we'd only get same thing rotated to new direction.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 05:55:08 PM
Hmm. I feel ignored here... :'(

Try to do a cross section of the ovoid... and later try the 2nd formula...


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 06:00:51 PM
Try to do a cross section...
I can't because my program only does 3D :) but still what would you expect to see there? It will be circle (or ellipse) with two optional rays.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 06:04:46 PM
Try to do a cross section...
I can't because my program only does 3D :) but still what would you expect to see there? It will be circle (or ellipse) with two optional rays.

It could be a swiss cheese! You have to open it to see what's inside. And, if it doesn't work, could you try the 2nd formula I posted, pleaaaaaaase!

BTW, how do you do 3d?


Title: Re: Cross Product Mandelbrot
Post by: makc on January 26, 2010, 06:16:49 PM
how do you do 3d?
pretty straightforward, for every pixel you make a ray going from your eye through that pixel, and then iterate 3d points along that ray until you have convergence.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 26, 2010, 07:24:38 PM
Hmm, it is not difficult to take a cross section

Take R1=(0,0,1) amd R0=(0,y,z) and plot y,z. The x will just matter in the calculations.


Title: Re: Cross Product Mandelbrot
Post by: makc on January 27, 2010, 10:35:30 AM
It could be a swiss cheese!
I added x - y + 1.5*z > 0 condition, and... no cheese for you:
(http://xs.to/image-1786_4B6008AD.jpg)

And, if it doesn't work, could you try the 2nd formula I posted, pleaaaaaaase!
That looks pretty similar to what I had before, just this time the curving is a "feature", not a bug:
(http://xs.to/image-1E3D_4B6008AD.jpg) (http://xs.to/image-D98F_4B6008AD.jpg)


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 27, 2010, 12:07:42 PM
Damn it...

What if then:

Rn+1 <- RnX{Rn*M}+R0

where M is a matrix that rotates Rn

The first term makes a kind of square of the vector, a "cross vector square" in analogy to the mandelbrot case.


Title: Re: Cross Product Mandelbrot
Post by: makc on January 27, 2010, 01:55:23 PM
What if...
I think we all can make a blind guess, but is there anything that makes you think yours will have some interesting features?


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 27, 2010, 02:32:11 PM
It is more  than having interesting features. I want to see if it is possible to make fractals like the ones of mandelbrot by iterating surfaces. For exmple, the cross vector determines the generator of a surface. It would be a first step for creating fractals based on real physics. For example, the vector product between the differential operator and the electric or magnetic field induces each other. So, maybe one day we could get electro magnetic fractals, standard model fractals, quantum gravity fractals.

So, I am trying to find a very primitve way to generate a fractal by iterating surfaces.


Title: Re: Cross Product Mandelbrot
Post by: makc on January 27, 2010, 02:48:23 PM
...For example, the vector product between the differential operator and the electric or magnetic field induces each other. So, maybe one day we could get electro magnetic fractals...
I would start looking here:

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

btw I have no clue what "iterating surfaces" is :)


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 27, 2010, 04:12:59 PM
I know that video. That is awesome, but I'd like really a fractal.

BTW, Don't you iterate points of the complex plane? So, why not little pieces of surfaces? A surface is determined by a vector perpendicular to that surface, but that vector is also proportional to the cross product of the tangents of that surface.

So, you see, you have an output, the vector that specifies that surface, and 2 inputs, the tangents. If you say that one of these inputs determine other surface, than you can determine an infinite recursion.
 


Title: Re: Cross Product Mandelbrot
Post by: makc on January 27, 2010, 04:27:05 PM
this is about the same level of logic as saying whenever calculations involve n numbers we are dealing with n-dimensional vector :-\ it is nice to pretend it sometimes (http://lh6.ggpht.com/_TU8pT7DhyWk/SduxS_ifWZI/AAAAAAAAAq8/42NLUlyJurk/image_thumb%5B3%5D.png) but never the less these could be just n unrelated numbers.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 27, 2010, 05:32:23 PM
Well, you showed me an example of a fractal that involves vectors:http://en.wikipedia.org/wiki/The_vector_of_a_quaternion#Vector

But I am talking about vectors that generates surfaces, thus the cross prodcut. I am not interested here in scalars, as in the case you showed.


Title: Re: Cross Product Mandelbrot
Post by: makc on January 27, 2010, 05:57:39 PM
...I am talking about vectors that generates surfaces, thus the cross prodcut...
I'm still puzzled by this. I mean I do understand that cross-product of two tangent vectors should be co-linear to normal in this point, but what does this have to do with this thread's attempt to define mandelbrot-like fractal using cross-product?

edit: more specifically, how does the relevance of cross-product operation to surfaces changes anything as opposed to looking at your formula like Rn+2 = f(Rn+1, Rn+0) + R0 where f just "happened" to be cross-product operation? after all, it could be (Rn+0's x, cos(Rn+1's y), Rn+1's z * Rn+0's z) or something equally stupid.


Title: Re: Cross Product Mandelbrot
Post by: MTd2 on January 27, 2010, 06:08:47 PM
It means a motivation :). You said interesting features somewhere above, the interesting feature here is making the stuff working using an element of surface.