Logo by Fiery - 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. March 29, 2024, 07:41:59 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 4 ... 15   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: Geometric Algebra, Geometric Calculus  (Read 11751 times)
0 Members and 1 Guest are viewing this topic.
kloniwotski
Forums Newbie
*
Posts: 3


« Reply #15 on: June 20, 2013, 01:40:41 PM »

Hi, I've wondered for a long time about the relevance of GA to extending fractals like the Mandelbrot into 3 dimensions (since I first read about the mandelbulb on this site).

Having little mathematical skill, I haven't been able to post anything before. But today I noticed a thesis:

   http://www2.eng.cam.ac.uk/~rjw57/pdf/r_wareham_pdh_thesis.pdf

that proposes a simple extension of the operation of squaring a complex number to "squaring" a vector in n dimensions courtesy of the power of GA. (It also gives a pretty good introduction to GA, as far as I can tell.)

The extension is (I think) : v goes to ve1v (using the geometric product) for some basis vector e1 (though I'd encourage anyone interested to look at the pdf rather than go off my probably incorrect relaying of it!)

pseudocode is provided to draw the generalised Mandelbrot:
Code:
Require: Set I of vectors associated with image points
imax := maximum number of iterations
e1 := a unit vector in some preferred direction
for all c in I do
   r := c
   i := 0
   while (r * r) < 4 and i < imax do
      r := re1r + c
      i := i + 1
   end while
   set pixel c to colour i
end for

(The expression "re1r + c" presumes some implementation of the geometric product, I expect)

From looking at the illustration given in the pdf, this allows calculation of a slice through a 3D mandelbrot, presumably depending on the set of "image points". In the illustrations, 3 orthogonal planes are shown. It looks like a 3D structure *might* be able to be rendered with a voxel approach.

I've tried to search for any reference to this thesis on the fractalforums site, but came up with nothing, so I wondered if more mathematically astute members might comment on the relevance or otherwise to 3D mandelbrot extensions? I'd be very interested in this as it's something I've been wondering about (occasionally) for years!

(While searching, though, I did find this page http://www.physicsforums.com/showthread.php?t=206844 where twinbee is recommended to look at a paper whose authors include the writer of the thesis, while still working towards the original mandelbulb, it seems!)

("sub" button isn't working for me in preview, btw. "e1" is meant to be e with a subscript 1, if it doesn't appear that way.)
Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #16 on: June 20, 2013, 01:56:15 PM »

I don't have the time right now to look through this but as far as a quick glance told me, it looks amazing. Thanks for sharing that!
Logged
Roquen
Iterator
*
Posts: 180


« Reply #17 on: June 20, 2013, 03:06:05 PM »

The squaring part is easy as I'm poorly explaining here: http://www.fractalforums.com/new-theories-and-research/do-quaternions-need-revisiting/.  From a quick skim it looks like the author is missing the geometric connection and could be using a rotor in GA.  The only reason I can see to jump to conformal GA would be to perform folds on some conformal mapping or to build a fractal from the various higher order supported primitives.
Logged

All code submitted by me is in the public domain. (http://unlicense.org/)
kloniwotski
Forums Newbie
*
Posts: 3


« Reply #18 on: June 20, 2013, 03:37:36 PM »

Hi Roquen, I'm guessing you're referring to

Quote
qpq* where q = sqrt(pr*)

about the squaring. Unfortunately (did I mention I'm a math noob?) I don't know what the * in this is. "p" and "q"  are quaternions, right?

I think Mr Wareham is doing something a bit different to this, not involving rotors, but as I may have mentioned, I'm a bit out of my depth! smiley

From what I understand, he shows a mapping from vectors in R2 to numbers in the complex plane  r => C(r), and then from that shows that C(re1r) = (C(r))2.

Since the dimensionality / coordinates don't enter into his mapping, the restriction that r is in R2 is not required, so that the re1r operation should be "geometrically analogous" to squaring a complex number for any dimensionality of r. I'm not sure, but it seems the conformal apparatus isn't necessary for the section of the thesis to do with extending the Mandelbrot.

I think the important thing (which I think I stated badly) is that this isn't the same as "squaring a vector in Rn", but is rather "doing something with a vector in Rn that is like squaring a complex number", since it is the special things that happen when squaring complex numbers that produce interesting results in the m-set.

Now for all I know, he may have just faked his picture of the 3D Mandelbrot and his formula might be piffle, but I don't think it's quaternionic anyhow smiley

Again I feel the need to plead my lack of mathematical ability - I could well be wrong, but that's how I understood it.

Thanks for the link.
« Last Edit: June 20, 2013, 03:40:54 PM by kloniwotski, Reason: Forgot stuff. » Logged
Roquen
Iterator
*
Posts: 180


« Reply #19 on: June 20, 2013, 04:13:00 PM »

Every person on the planet is a math n00b.  Looking at Fig 6.9 the method certainly appears to be equivalent to performing a proper rotation.  It also not succeeding in breaking out of the plane.
Logged

All code submitted by me is in the public domain. (http://unlicense.org/)
kloniwotski
Forums Newbie
*
Posts: 3


« Reply #20 on: June 20, 2013, 04:40:57 PM »

 Looking at Fig 6.9

6.10, right?

Quote
the method certainly appears to be equivalent to performing a proper rotation.  It also not succeeding in breaking out of the plane.

Well, a rotation plus a dilation, it seems. (I hadn't got that far before I posted, in my excitement smiley ) The diagram is in 2D, but it looks like for z in R3 it might be the plane in which both e1 and z lie, which of course wouldn't be the same plane for all z.

Edit: Um, in that case it would just be a boring rotated Mandelbrot, would it? Ah well, I had such hopes... :-/
« Last Edit: June 20, 2013, 04:52:06 PM by kloniwotski, Reason: belated realization » Logged
Alef
Fractal Supremo
*****
Posts: 1174



WWW
« Reply #21 on: June 29, 2013, 07:45:44 PM »

Tried to do a fractal using vector cross product. I was looking into old book about math of 1967 so then I don't need to burden myself with cross product being bivector.

If creating another vector Z'=Z+Seed(x,y,z) or Z`=Z+C(x,y,z) cross product would be meaningfull.
So cross product of A1(X1,Y1,Z1) and A2(X2,Y2,Z2). 
   | Y1   Z1   |  Z1     X1|   X1    Y1|
A1xA2=(   |   | ,    | ,     |  )
   | Y2   Z2   |  Z2     X2|   X2    Y2|


So
X3= Y1xZ2 - Y2xZ1
Y3= X2xZ1 - X1xZ2
Z3= X1xY2 - X2-Y1

Then fractal formula of Z = ZxSeed +Pixel would be:
Zx=real(z); Zy=imag(z); Zz=imag(z);
Cx=real(pixel); Cy=imag(pixel); Cz=imag(pixel);
Sx=real(seed); Sy=imag(seed); Sz=imag(seed);

Z2x= Zy*Sz - Sy*Zz + Cx;
Z2y= Sx*Zz -  Zx*Sz + Cy;
Z2z= Zx*Sy - Sx*Zy + Cz;

z=quaternion (Z2x, Z2y, Z2z);

But result was simple as formula. In 3D just something like absolutely smooth stick and in 2D something not great. Don't have pics becouse there were nothing, but realy then it's more simple than quadratic in complex numbers.
Logged

fractal catalisator
Fracturbator
Alien
***
Posts: 21


WWW
« Reply #22 on: June 30, 2013, 03:05:39 AM »

This is a very interesting thread, people - I really want to set aside some time to check all this out when my day-job settles down a bit.
Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #23 on: July 09, 2013, 05:51:27 PM »

Ok, so given a vector r=a x + b y + c z and a unit-basis-vecor e, say e=y
The algorithm given in the paper very straight-forwardly is:

r² := r e r =>

(a x + b y + c z) y (a x + b y + c z) =

(a xy + b + c zy) (a x + b y + c z) =

-a² y + ab x + ac xyz + ab x + b² y + bc z - ac xyz + bc z - c² y =

2ab x - (a²-b²+c²) y + 2bc z + 0 xyz

=

r^2 = \left( 2 ab \\ -a^2+b^2-c^2 \\ 2bc \right)

And from there, you just go the classical route r²+s or z²+c or what ever you like.

So:

iterate:
a=2ab+l
b=-a2+b2-c2+m
c=2bc+n

for a2+b2+c2<4

I'm almost certain this already was tried, but unless I got some sign-error, that's what you get for normal euclidean space.
The fact, that this is symmetric in a and c probably means, this will also be circularly symmetric, so it will likely be another revolution set.

One cool thing the paper does, though, is also allowing for hyperbolic MSets. I'll try to extract that next. It's going to be a bit more complicated though, because it depends on a more complicated expression for distance, using hyperbolic instead of euclidean distance.
« Last Edit: July 09, 2013, 07:10:36 PM by kram1032 » Logged
Roquen
Iterator
*
Posts: 180


« Reply #24 on: July 09, 2013, 08:07:45 PM »

Like I thought: this yields an identical result to using quaternions.  The "problem" is that the fold needs to happen in more than a single plane to do anything interesting.  Does anyone have a pointer to an easy to use brute force illum framework I could use?

Indeed one advantage of GA is to change the signature to non-euclidean.

(edit: grammar mistake)
« Last Edit: July 09, 2013, 08:13:33 PM by Roquen » Logged

All code submitted by me is in the public domain. (http://unlicense.org/)
kram1032
Fractal Senior
******
Posts: 1863


« Reply #25 on: July 09, 2013, 08:19:03 PM »

Yeah, I'm not actually surprised about this result. It's kind of a property of rotations to always be in a single plane. You'd need rotations in more than one direction, which brings you to what typically would be a MBulb but ceases to be conformal.

I'm still also thinking about that idea on having a non-conformal transformation that causes infinite smaller details which, however, are not the same as the bigger ones but rather details that keep changing.
So somehow something that controlls the inevidable stretching in a way that manipulates it into aesthetically different structures.
Zooming into that wouldn't give more and more variations of the same but rather just more and more variations.

The hyperbolic MSet in 2 Dimensions looks like this, btw:


The border of the circle is actually at infinity, which is why features seem to shrink towards the edges and to be bloated in the middle. However, if you zoom in, this distortion should become less and less notable.
And due to it being different in hyperbolic space to first go straight and then go right vs. first go right and then straight (you'll end up at different points), you actually have two kinds of Julia-sets for the price of a single M-set.
(All the details can be found in the paper)
« Last Edit: July 09, 2013, 08:21:39 PM by kram1032 » Logged
kram1032
Fractal Senior
******
Posts: 1863


« Reply #26 on: July 11, 2013, 02:50:38 AM »

Here's another experiment to try, if that hasn't been done yet:
What if you vary the rotational direction each time?
This is an example where, what would be the "real" axis alternates between the x-axis and the y-axis. Also, you're effectively doing two iterations with each iteration, because that's how I arrived at this closed form.

I differentiate the directions (x,y,z) from the coordinates (a,b,c) and the constant that is added, is denoted by (l,m,n):

x: a -> 2(a²-b²-c²+l)(2ab+m)+l
y: b -> (2ab+m)²-(2ac+n)²-(a²-b²-c²+l)²+m
z: c -> 2(2ab+m)(2ac+n)+n

If this ends up giving symmetry to one axis, it will be the unused z-axis. It would be straight forward to extend this to also treat the z-axis as "real" axis from time to time, which would push the iteration count one up.

If you prefer to do the two iterations seperately instead, you'll just have to add in some bit that knows, which type of iteration to take. The split iterations would be:

odd iterations:

x: a -> a²-b²-c²+l
y: b -> 2ab+m
z: c -> 2ac+n

even iterations:

x: a -> 2ab+l
y: b -> -a²+b²-c²+m
z: c -> 2bc+n

This should at least break the circle symmetry.
It's likely that something like this was tried too, already, but I can't quite recall.

It would also be easy to extend this to, say, a tetrahedral version, where you alternate over four different axes that correspond to a tetraheder.
« Last Edit: July 11, 2013, 02:52:18 AM by kram1032 » Logged
Roquen
Iterator
*
Posts: 180


« Reply #27 on: July 11, 2013, 08:41:48 AM »

This is exactly falling into the same kind of reasoning I was working on in the quaternion thread.  This is doubling the angle wrt the positive x direction & the positive y, which break the points out of being bound to a single plane.
Logged

All code submitted by me is in the public domain. (http://unlicense.org/)
Roquen
Iterator
*
Posts: 180


« Reply #28 on: July 11, 2013, 11:19:25 AM »

SEE: reformulation to avoid cancellation.
Logged

All code submitted by me is in the public domain. (http://unlicense.org/)
kram1032
Fractal Senior
******
Posts: 1863


« Reply #29 on: July 11, 2013, 11:38:15 AM »

So your version tries to do this in a single iteration? Also nice.
I suppose, I could do this too, by just not adding the constant right away as well as choosing the square-root of a vector, rather than the vector itself... But something tells me, that would just be the same as having the whole thing be applied at an angle, rather than forcing two separate rotations. I might be wrong though.
Your version lools a bit different though.
Logged
Pages: 1 [2] 3 4 ... 15   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
geometric spirals Mandelbulb3D Gallery bib 0 838 Last post October 25, 2010, 09:48:32 PM
by bib
Geometric Buddha Images Showcase (Rate My Fractal) John Smith 0 989 Last post June 07, 2012, 09:05:17 PM
by John Smith
Retro Geometric Still Frame FracZky 0 1129 Last post May 02, 2013, 07:30:42 PM
by FracZky
Geometric Patterns No. 2 Saturn&Titan Gallery element90 2 819 Last post February 09, 2014, 03:43:35 PM
by Dinkydau
Geometric Fractals Help Help & Support lancelot 13 796 Last post December 15, 2014, 06:10:29 PM
by Sockratease

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.16 seconds with 24 queries. (Pretty URLs adds 0.007s, 2q)