Coding in Quaternions and Matrices

Click For Summary
SUMMARY

The discussion focuses on coding challenges related to quaternion multiplication in Mathematica, specifically within the context of Clifford Algebra. The user is attempting to implement KroneckerProduct and quaternion multiplication but encounters issues due to the non-commutative nature of quaternion multiplication, which is defined using the ** operator in the Algebra`Quaternions` package. The user seeks a solution to override the default behavior that assumes commutativity in quaternion operations, which leads to incorrect results when multiplying quaternion entries in matrices.

PREREQUISITES
  • Understanding of Clifford Algebra and its applications
  • Familiarity with Mathematica programming language
  • Knowledge of quaternion mathematics and properties
  • Experience with matrix operations and non-commutative algebra
NEXT STEPS
  • Research how to define custom operators in Mathematica to handle non-commutative multiplication
  • Explore the use of KroneckerProduct in Mathematica with non-commutative elements
  • Study the implementation of quaternion algebra in other programming languages for comparison
  • Investigate existing libraries or packages that support non-commutative algebra in Mathematica
USEFUL FOR

Researchers in mathematics, physicists working with quaternion algebra, and developers implementing advanced mathematical computations in Mathematica.

leon1127
Messages
484
Reaction score
0
I am currently doing some research in Clifford Algebra. My topic is to find explicit representation of its basis through matrices with entries in clifford algebra itself. At this moment I am trying to write code in mathematica to do KroneckerProduct and Quaternion multiplication. Now I have encounter a coding problem about mathematica.
In the package of << Algebra`Quaternions`, quaternion multiplication is defined with ** instead of *, where in matrix multiplication product of entries are defined with *. Thus when I use quaternion entries in my matrix multiplication, its matrix product will give me, say, Quaternion[0,1,0,0]Quaternion[0,0,1,0] instead of Quaternion[0,0,0,1]
where Quaternion[a,b,c,d] = a + b i + c j + d k.
Does anyone have any idea to override this function.

Thank you.
 
Physics news on Phys.org
I have rewritten my problem due to my horrible english. PLease forgive me.
I am currently doing some research in Clifford Algebra. My topic is to find explicit representation of its basis through matrices with entries in clifford algebra itself. At this moment I am trying to write code in mathematica to do KroneckerProduct and Quaternion multiplication. Now I have encounter a coding problem about mathematica.
In the package of << Algebra`Quaternions`, quaternion multiplication is defined with ** (non-commutative multiplicative operator) instead of *, where matrix multiplication assumes communtivity of elements. Of course this is not the case when I use non-commutative ring on my matrices.

for examples
When I do {{0,Quaternion[0,0,1,0]},{Quaternion[0,0,1,0],0}} * {{0,-Quaternion[0,1,0,0]},{Quaternion[0,1,0,0],0}}, it will give me {{0, 0, Quaternion[0, 0, 1, 0] Quaternion[0, 1, 0, 0], 0}, {0, 0, 0, Quaternion[0, -1, 0, 0] Quaternion[0, 0, 1, 0]},{Quaternion[0, 0, 1,0] Quaternion[0, 1, 0, 0], 0, 0, 0}, {0, Quaternion[0, -1, 0, 0] Quaternion[0, 0, 1, 0], 0, 0}}

My main problem is that when I try to define the following operation Quaternion[a_, b_, c_, d_]Quaternion[e_, f_, g_, h_] := Quaternion[a, b, c, d] ** Quaternion[e, f, g, h]. It automatically assumes commutativity, i.e Quaternion[0,1,0,0]Quaternion[0,0,1,0] = Quaternion[0,0,1,0]Quaternion[0,1,0,0]. But we know they should anticommute instead.

Does anyone have any idea to override this function.

Thank you.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 11 ·
Replies
11
Views
4K
  • · Replies 2 ·
Replies
2
Views
6K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K