login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

Fourvector algebra

Author: Diego Saa (Submitted on 20 Nov 2007)

Abstract: The algebra of fourvectors is described. The fourvectors are more appropriate than the Hamilton quaternions for its use in Physics and the sciences in general. The fourvectors embrace the 3D vectors in a natural form. It is shown the excellent ability to perform rotations with the use of fourvectors, as well as their use in relativity for producing Lorentz boosts, which are understood as simple rotations.

fricas
_*_*(x,y)==concat(x(1) * y(1) + dot(x(2..), y(2..)), x(1) * y(2..) - x(2..) * y(1) + cross(x(2..), y(2..)))
Type: Void
fricas
e:Vector INT:=[1,0,0,0]
 (1)
Type: Vector(Integer)
fricas
i:Vector INT:=[0,1,0,0]
 (2)
Type: Vector(Integer)
fricas
j:Vector INT:=[0,0,1,0]
 (3)
Type: Vector(Integer)
fricas
k:Vector INT:=[0,0,0,1]
 (4)
Type: Vector(Integer)
fricas
test(e**e=e)  and _
test(i**i=e)  and _
test(j**j=e)  and _
test(k**k=e)  and _
test(e**i=i)  and _
test(e**j=j)  and _
test(e**k=k)  and _
test(i**e=-i) and _
test(j**e=-j) and _
test(k**e=-k) and _
test(i**j=k)  and _
test(j**i=-k) and _
test(k**i=j)  and _
test(i**k=-j) and _
test(j**k=i)  and _
test(k**j=-i)
fricas
Compiling function ** with type (Vector(Integer), Vector(Integer))
-> Vector(Integer)
 (5)
Type: Boolean

Axiom has a domain for NonAssociative? Algebra

This is documented in the article: Computations in Algebras of Fixed Rank by Johannes Grabmeir and Robert Wisbauer, from the book "Computational Algebra" By Klaus G. Fischer, Philippe Loustaunau, Jay Shapiro.

The algebra above can be given by structural constants.

fricas
)clear all
All user variables and function definitions have been cleared.
sc:Vector Matrix Fraction Integer := [ _
[[ 1, 0, 0, 0], _
[ 0, 1, 0, 0], _
[ 0, 0, 1, 0], _
[ 0, 0, 0, 1]], _
[[ 0, 1, 0, 0], _
[-1, 0, 0, 0], _
[ 0, 0, 0, 1], _
[ 0, 0,-1, 0]], _
[[ 0, 0, 1, 0], _
[ 0, 0, 0,-1], _
[-1, 0, 0, 0], _
[ 0, 1, 0, 0]], _
[[ 0, 0, 0, 1], _
[ 0, 0, 1, 0], _
[ 0,-1, 0, 0], _
[-1, 0, 0, 0]]];
Type: Vector(Matrix(Fraction(Integer)))
fricas
V:=AlgebraGivenByStructuralConstants(Fraction Integer, 4, [e,i,j,k],sc)
 (6)
Type: Type

Multiplication

fricas
a:=basis()$V  (7) Type: Vector(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])) fricas matrix([[(a.i * a.j) for j in 1..4] for i in 1..4])$OutputForm
 (8)
Type: OutputForm?

Commutator and Associator

fricas
matrix([[commutator(a.x,a.y) for x in 1..4] for y in 1..4])$OutputForm  (9) Type: OutputForm? fricas [matrix([[associator(a.x,a.y,a.z) for x in 1..4] for y in 1..4])$OutputForm for z in 1..4]
 (10)
Type: List(OutputForm?)
fricas
for x in 1..4 repeat
for y in 1..4 repeat
for z in 1..4 repeat
if associator(a.x,a.y,a.z) ~= 0$V then output([[a.x,a.y,a.z],"=",associator(a.x,a.y,a.z)]) [[i, e, e], "=", 2 i] [[i, e, i], "=", - 2 e] [[i, e, j], "=", - 2 k] [[i, e, k], "=", 2 j] [[i, i, e], "=", 2 e] [[i, i, i], "=", 2 i] [[i, i, j], "=", 2 j] [[i, i, k], "=", 2 k] [[j, e, e], "=", 2 j] [[j, e, i], "=", 2 k] [[j, e, j], "=", - 2 e] [[j, e, k], "=", - 2 i] [[j, j, e], "=", 2 e] [[j, j, i], "=", 2 i] [[j, j, j], "=", 2 j] [[j, j, k], "=", 2 k] [[k, e, e], "=", 2 k] [[k, e, i], "=", - 2 j] [[k, e, j], "=", 2 i] [[k, e, k], "=", - 2 e] [[k, k, e], "=", 2 e] [[k, k, i], "=", 2 i] [[k, k, j], "=", 2 j] [[k, k, k], "=", 2 k] Type: Void Volume form? fricas a.2 * (a.3 * a.4) = (a.2 * a.3) * a.4  (11) Type: Equation(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])) Check standard properties fricas leftUnit()$V
 (12)
Type: Union(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]),...)
fricas
rightUnit()$V this algebra has no right unit  (13) Type: Union("failed",...) fricas alternative?()$V
algebra is not left alternative
 (14)
Type: Boolean
fricas
leftAlternative?()$V algebra is not left alternative  (15) Type: Boolean fricas rightAlternative?()$V
algebra is not right alternative
 (16)
Type: Boolean
fricas
associative?()$V algebra is not associative  (17) Type: Boolean fricas antiAssociative?()$V
algebra is not anti-associative
 (18)
Type: Boolean
fricas
--powerAssociative?()$V commutative?()$V
algebra is not commutative
 (19)
Type: Boolean
fricas
antiCommutative?()$V algebra is not anti-commutative  (20) Type: Boolean fricas jordanAlgebra?()$V
algebra is not commutative
this is not a Jordan algebra
 (21)
Type: Boolean
fricas
jordanAdmissible?()$V algebra is not Jordan admissible  (22) Type: Boolean fricas noncommutativeJordanAlgebra?()$V
algebra is not flexible
this is not a noncommutative Jordan algebra, as it is not flexible
 (23)
Type: Boolean
fricas
lieAlgebra?()$V algebra is not anti-commutative this is not a Lie algebra  (24) Type: Boolean fricas lieAdmissible?()$V
algebra is not Lie admissible
 (25)
Type: Boolean
fricas
jacobiIdentity?()$V Jacobi identity does not hold  (26) Type: Boolean Commuting elements fricas V has FramedNonAssociativeAlgebra(Fraction Integer)  (27) Type: Boolean fricas basisOfCommutingElements()$AlgebraPackage(Fraction Integer,V)
 (28)
Type: List(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]))
fricas
basisOfCenter()$AlgebraPackage(Fraction Integer,V)  (29) Type: List(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])) fricas basisOfCentroid()$AlgebraPackage(Fraction Integer,V)
 (30)
Type: List(Matrix(Fraction(Integer)))
fricas
basisOfNucleus()$AlgebraPackage(Fraction Integer,V)  (31) Type: List(AlgebraGivenByStructuralConstants?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])) fricas basisOfLeftNucloid()$AlgebraPackage(Fraction Integer,V)
 (32)
Type: List(Matrix(Fraction(Integer)))

Symbolic computations

fricas
G:=GenericNonAssociativeAlgebra(Fraction Integer, 4, [e,i,j,k],sc)
 (33)
Type: Type

Look for Idempotents

fricas
conditionsForIdempotents()$G  (34) Type: List(Polynomial(Fraction(Integer))) fricas gb:=groebnerFactorize %  (35) Type: List(List(Polynomial(Fraction(Integer)))) fricas associatorDependence()$G
 (36)
Type: List(Vector(Fraction(Polynomial(Fraction(Integer)))))
fricas
q:=leftRankPolynomial()$G  (37) Type: SparseUnivariatePolynomial?(Fraction(Polynomial(Fraction(Integer)))) fricas map(factor,coefficients q)  (38) Type: List(Factored(Fraction(Polynomial(Fraction(Integer))))) fricas rightUnit()$G
this algebra has no right unit
 (39)
Type: Union("failed",...)

fricas
p1:=generic([x1,y1,z1,w1])$G  (40) Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]) fricas p2:=generic([x2,y2,z2,w2])$G
 (41)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
p3:=generic([x3,y3,z3,w3])$G  (42) Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]) fricas leftRecip(p1)$G
 (43)
Type: Union(GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]]),...)
fricas
rightRecip(p1)$G this algebra has no right unit  (44) Type: Union("failed",...) fricas leftRegularRepresentation(p1)  (45) Type: Matrix(Fraction(Polynomial(Fraction(Integer)))) fricas rightRegularRepresentation(p1)  (46) Type: Matrix(Fraction(Polynomial(Fraction(Integer)))) fricas associator(p1,p2,p3)$G
 (47)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
associator(p1,p1,p2)
 (48)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
associator(p1,p2,p2)
 (49)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
p1*p1
 (50)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
p1*p2 + p2*p1
 (51)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])
fricas
p1*(p1*p1)+(p1*p1)*p1
 (52)
Type: GenericNonAssociativeAlgebra?(Fraction(Integer),4,[e,i,j,k],[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],[[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]],[[0,0,1,0],[0,0,0,-1],[-1,0,0,0],[0,1,0,0]],[[0,0,0,1],[0,0,1,0],[0,-1,0,0],[-1,0,0,0]]])

 Subject:   Be Bold !! ( 14 subscribers )