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: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. March 29, 2024, 01:59:00 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   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: Clifford Algebra - Generalisation of 2d/3d Formulas  (Read 1223 times)
0 Members and 1 Guest are viewing this topic.
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« on: August 16, 2014, 12:36:58 PM »

hi all, with a friend we are now attempting to formulate 2d and 3d mandelbrot equations in terms of clifford algebra, if anyone has experience in this field let us know, for me it is quite new, but simple clifford algrebras should be able to define a 2d mandelbrot and the mandelbulb should be as well definable in clifford algebra terms

the goal is to achieve a huge parameter space for creating nice 3d images wink
Logged

---

divide and conquer - iterate and rule - chaos is No random!
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #1 on: August 16, 2014, 12:37:29 PM »

this is a paper discussing mandelbrot formula 2d using clifford algebras
http://arxiv.org/abs/hep-th/9507133
Logged

---

divide and conquer - iterate and rule - chaos is No random!
Roquen
Iterator
*
Posts: 180


« Reply #2 on: August 16, 2014, 02:46:43 PM »

I've been meaning to play around with generalized complex and see what that looks like.  I'd expect like figures 1-4...figures 5 and 6 not though.  Humm.....  (I only quickly skimmed the paper).
Logged

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



WWW
« Reply #3 on: August 16, 2014, 05:06:39 PM »

The work of William Kingdon Clifford is based on the work of Hermann Grassmann

Clifford Algebra was named by William Kingdon Clifford himself Geometric Algebra.
For applications often the name Geometric Algebra is used.
Kram1023 started the following excellent thread on geometric algebra here at Fractal Forums:
http://www.fractalforums.com/new-theories-and-research/geometric-algebra-geometric-calculus/

An excellent introduction on Geometric Algebra can be found in the following paper of Alan Miller
http://scholarworks.sjsu.edu/cgi/viewcontent.cgi?article=7943&context=etd_theses

With Jehovajah we have an excellent expert on the work of Hermann Grassmann.
Most of his posts here in fractal forums are on the work of Grassmann.

With geometric algebra it is possible to create complex numbers, quarterions and hyper complex numbers.
That means complex numbers of higher order.

Hermann
« Last Edit: August 16, 2014, 05:12:40 PM by hermann » Logged

kram1032
Fractal Senior
******
Posts: 1863


« Reply #4 on: August 16, 2014, 07:10:25 PM »

there is also the related http://www.fractalforums.com/new-theories-and-research/do-quaternions-need-revisiting/ which, I think, is what Roquen is referencing in his post in this thread. Looks like he is essentially gradually working towards that same goal, but using quaternions (a subset of 3D GA) instead of the full algebra.
Logged
Roquen
Iterator
*
Posts: 180


« Reply #5 on: August 16, 2014, 07:11:40 PM »

My knowledge is weak, but I'd say that Clifford's work combines even subspaces (complex,quaternions) with odd (vectors) into arbitrary dimensions covering all dimensional subspaces and signatures.  And yeah that's a clear as mud.  Start the zero dimensions (scalar only).  You can extend (a la Grassmann) to 1 and have two sub-spaces: 0,1.  Extend to 2, now you have 0,1,2 dimensional subspaces...see Pascal's triangle, etc into arbitrary.  Now the number of dimensions isn't equal to the "spatial" dimensions.  So 3 spatial dimensions requires at least a 3 dimensional algebra but extra rules can be added to embedded 3D in higher dimensions to make some operations easier.  The classic from LA is to be homogenous.  Other examples include adding projections to infinitely.
Logged

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


« Reply #6 on: August 16, 2014, 07:28:12 PM »

But then again it seems like I'm misstating Grassmann as I want to think that in 3D you have a vector/bivector pair....humm...
Logged

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


formerly known as 'Trifox'


WWW
« Reply #7 on: August 16, 2014, 07:28:21 PM »

thank you dudes, lets see with what i can come up, i found a c# implementation, they are definately going to produce some interesting 3d stuff, but i need to sort out some stuff before

http://www.euclideanspace.com/maths/algebra/clifford/algebra/code/sfmulti3d_csharp.htm
Logged

---

divide and conquer - iterate and rule - chaos is No random!
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #8 on: August 16, 2014, 10:37:43 PM »

thank you dudes, lets see with what i can come up, i found a c# implementation, they are definately going to produce some interesting 3d stuff, but i need to sort out some stuff before

http://www.euclideanspace.com/maths/algebra/clifford/algebra/code/sfmulti3d_csharp.htm

Just add sub and mul - no inverse/divide....
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
kram1032
Fractal Senior
******
Posts: 1863


« Reply #9 on: August 16, 2014, 10:54:00 PM »

Once you have mul, inverse (and by extension divide) is really easy for GAs:
Just define the reverse of an algebraic number A=(a0, a1 e1, a2 e2....)
rev(A) =
to be, equivalently to complex numbers, the same number, except with all values past a0 negative
(a0, -a1 e1, -a2 e2....)

then:
inv(A) = rev(A)/Mul(A,rev(A))
leftDiv(A,B) = Mul(inv(A),B)
rightDiv(A,B)=Mul(B,inv(A))

Another really useful operation in GA should be:
Sandwich(A,B) = Mul(Mul(A,B),A) - this is used ALL the TIME. - It encodes a reflection or a rotation or, in a conformal GA setting, a translation, scaling, etc... - In a conformal GA, any conformal transformation can be done with such a Sandwich operation.
« Last Edit: August 16, 2014, 11:00:00 PM by kram1032 » Logged
Refurio Anachro
Forums Newbie
*
Posts: 1


WWW
« Reply #10 on: August 16, 2014, 10:54:36 PM »

hi all, with a friend we are now attempting to formulate 2d and 3d mandelbrot equations in terms of clifford algebra,

That friend would be me. Hello all indeed! For those curious, i tried to give a starting point into Clifford algebra in a series of 3 posts here:
https://plus.google.com/115434895453136495635/posts/1CtiDXou6Rq

When you pick your Clifford algebra such that you get a subspace isomorphic to the complex numbers, the formula should be the same as Mandelbrot's original. if i remember correctly, you get complex multiplication by using the 0- and 2-blades in Cl(2,0). In this context, those are often called unit and counit.
Logged
hermann
Iterator
*
Posts: 181



WWW
« Reply #11 on: August 17, 2014, 07:36:44 AM »

I have now in mind for a while to implement geometric algebra as software. Here is a first sketch of a specification.

Code:
package Geometric_Algebra is
   
   type Base_Type is (scalar, e1, e2, e12);
   
   type Multi_Vector is array (Base_Type) of Float;
   
   function "+" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
   function "-" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
   
   function "*" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
   function "*" (Left : Float;        Right : Multi_Vector) return Multi_Vector;
   function "*" (Left : Multi_Vector; Right : Float )       return Multi_Vector;
   
   
   function "/" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
   
end Geometric_Algebra;

Hermann
Logged

Roquen
Iterator
*
Posts: 180


« Reply #12 on: August 17, 2014, 08:21:44 AM »

For the standard model of 2D, yeah you can put x into the scalar and y into the bivector and off you go.  Another method is to place x and y into the vector and use a rotor to perform the rotation and scaling like I'm doing in the quaternion thread.  Spinors are another option.  I'd expect all the forms I've shown in 3D have equivalent in 2D as well under Clifford.  Algebraic manipulation get you to all of them.  Likewise for mandelbulb.  Likewise I'd expect that some of the form David Makin is playing with here: http://www.fractalforums.com/programming/true-3d-mandelbrot/

I think that clifford is a much more promising avenue then quaternions BTW.

WRT: making a software...I'd attempt to avoid that.  What features do you want?
Logged

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



WWW
« Reply #13 on: August 17, 2014, 09:42:04 AM »

I want to come to a generic formulation of geometric algebra.
Here is a first sketch:

Code:
generic
   type Base_Type is (<>);
package Geometric_Algebra_Generic is

   type Multi_Vector is array (Base_Type) of Float with Default_Component_Value => 0.0;

   Zero : Multi_Vector := (others => 0.0);

   type Matrix is array (Base_Type'Range, Base_Type'Range) of Multi_Vector;

   function "+" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
   function "-" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;

   function "*" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;

   function "*" (Left : Float;           Right : Multi_Vector) return Multi_Vector;
   function "*" (Left : Multi_Vector; Right : Float)           return Multi_Vector;

   function "/" (Left : Multi_Vector; Right : Multi_Vector) return Multi_Vector;
  
   procedure Put_Line (Value : Multi_Vector);

end Geometric_Algebra_Generic;

That allows me to define different dimensional algebras:

Code:
with Ada.Text_IO;
use  Ada.Text_IO;
with Geometric_Algebra_Generic;

procedure Test_Clifford is

   type Base_Type_2D is (scalar, e1, e2, e12);
   type Base_Type_3D is (scalar, e1, e2, e3, e12, e23, e31, e123);
  
   package Geometric_Algebra_2D is new Geometric_Algebra_Generic (Base_Type_2D);
   use Geometric_Algebra_2D;
  
   package Geometric_Algebra_3D is new Geometric_Algebra_Generic (Base_Type_3D);
   use Geometric_Algebra_3D;
  
   Vector_2D_First  : Geometric_Algebra_2D.Multi_Vector := ( others => 2.1);
   Vector_2D_Second : Geometric_Algebra_2D.Multi_Vector := ( others => 2.2);
   Sum_2D           : Geometric_Algebra_2D.Multi_Vector := ( others => 0.0);
  
   Vector_3D_First  : Geometric_Algebra_3D.Multi_Vector := ( others => 3.1);
   Vector_3D_Second : Geometric_Algebra_3D.Multi_Vector := ( others => 3.2);  
   Sum_3D           : Geometric_Algebra_3D.Multi_Vector := ( others => 0.0);
  
begin
   Put_Line ("begin Test_Clifford");
   Sum_2D := Vector_2D_First + Vector_2D_Second;
   Put_Line (Sum_2D);
   New_Line;
  
   Sum_3D := Vector_3D_First + Vector_3D_Second;
   Put_Line (Sum_3D);
  
   Put_Line ("end   Test_Clifford");
end Test_Clifford;

Producing the following Output:

Code:
begin Test_Clifford
 scalar => 4.30000E+00 e1 => 4.30000E+00 e2 => 4.30000E+00 e12 => 4.30000E+00

 scalar => 6.30000E+00 e1 => 6.30000E+00 e2 => 6.30000E+00 e3 => 6.30000E+00 e12 => 6.30000E+00 e23 => 6.30000E+00 e31 => 6.30000E+00 e123 => 6.30000E+00
end   Test_Clifford
« Last Edit: August 17, 2014, 09:44:08 AM by hermann » Logged

kram1032
Fractal Senior
******
Posts: 1863


« Reply #14 on: August 17, 2014, 01:39:31 PM »

hermann, for implementing GA, this paper may be of help http://staff.science.uva.nl/~fontijne/phd/fontijne_phd_compressed.pdf
Logged
Pages: [1] 2   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Triplex Algebra Fractal Fun Power 8 0 2762 Last post April 04, 2010, 09:24:01 PM
by Power 8
has anybody tried using ifs formulas with the mandelbuld/mandelbox formulas? 3D Fractal Generation cKleinhuis 4 9372 Last post May 05, 2010, 03:17:07 PM
by Power 8
ABSOLIENS: généralisation naturelle des nombres complexes à toute dimension ? français Yannis 1 4304 Last post January 01, 2013, 06:49:05 PM
by Yannis
The Theory of Stretchy Thingys Complex Numbers « 1 2 ... 15 16 » jehovajah 231 32633 Last post November 03, 2017, 10:31:14 AM
by jehovajah
Interesting generalisation of fractals (new) Theories & Research Tglad 2 578 Last post May 23, 2015, 10:26:14 PM
by TruthSerum

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