Maths - Inverse Program

There are a number of open source programs that can work with Grassmann and Clifford Algebra. I have used Axiom, how to install Axiom here.

First we setup a completely general 3D basis:

a b c
d e f
g h i

(I have put user input in red):

(1) -> )library GRAS
   GrassmannAlgebra is now explicitly exposed in frame frame1
   GrassmannAlgebra will be automatically loaded when needed from
      /home/martin/GRAS.NRLIB/GRAS
(1) -> Eu := GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])

   (1)
   GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
                                                                 Type: Domain

First we square a general vector :

(2) -> m:Eu := multivector[0,x,y,0,z,0,0,0]

   (2)  x e  + y e  + z e
           1      2      3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(3) -> m*m

           2                               2                   2
   (3)  i z  + ((h + f)y + (g + c)x)z + e y  + (d + b)x y + a x
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])

  

This gives a scalar value equal to:

x y z
a b c
d e f
g h i
x
y
z

now we will try squaring bivectors:

4) -> bivector:Eu := multivector[0,0,0,x,0,y,z,0]

   (4)  x e e  + y e e  + z e e
           1 2      1 3      2 3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(5) -> bivector*bivector

   (5)
                   2
     (- e i + f h)z  + (((- e - a)i + f h + c g)y + (- e i + f h - a e + b d)x)z
   +
                   2                                                2
     (- a i + c g)y  + (- a i + c g - a e + b d)x y + (- a e + b d)x
   +
                                        2
     ((d - b)x z + (d - b)x y + (d - b)x )e e
                                           1 2
   +
                           2
     ((g - c)y z + (g - c)y  + (g - c)x y)e e
                                           1 3
   +
              2
     ((h - f)z  + ((h - f)y + (h - f)x)z)e e
                                          2 3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(6) ->

 

x y z
- a e + b d - a e + b d - a e + b d
- a i + c g - a i + c g - a i + c g
- e i + f h - e i + f h - e i + f h
x
y
z

now we will try multipy even terms by cojugate:

(6) -> bivector:Eu := multivector[w,0,0,x,0,y,z,0]

   (6)  w + x e e  + y e e  + z e e
               1 2      1 3      2 3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(7) -> conj:Eu := multivector[w,0,0,-x,0,-y,-z,0]

   (7)  w - x e e  - y e e  - z e e
               1 2      1 3      2 3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(8) -> bivector*conj

   (8)
                 2
     (e i - f h)z  + (((e + a)i - f h - c g)y + (e i - f h + a e - b d)x)z
   +
                 2                                            2    2
     (a i - c g)y  + (a i - c g + a e - b d)x y + (a e - b d)x  + w
   +
                                              2
     ((- d + b)x z + (- d + b)x y + (- d + b)x )e e
                                                 1 2
   +
                               2
     ((- g + c)y z + (- g + c)y  + (- g + c)x y)e e
                                                 1 3
   +
                2
     ((- h + f)z  + ((- h + f)y + (- h + f)x)z)e e
                                                2 3
Type: GrassmannAlgebra(3,Expression(Fraction(Integer)),[[a,b,c],[d,e,f],[g,h,i]])
(9) ->

y


metadata block
see also:

 

Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

flag flag flag flag flag flag Clifford Algebra to Geometric Calculus: A Unified Language for Mathematics and Physics (Fundamental Theories of Physics). This book is intended for mathematicians and physicists rather than programmers, it is very theoretical. It covers the algebra and calculus of multivectors of any dimension and is not specific to 3D modelling.

 

Terminology and Notation

Specific to this page here:

 

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2023 Martin John Baker - All rights reserved - privacy policy.