OctonionΒΆ

The Octonions, also called the Cayley-Dixon algebra, defined over a commutative ring are an eight-dimensional non-associative algebra. Their construction from quaternions is similar to the construction of quaternions from complex numbers.

As Octonion creates an eight-dimensional algebra, you have to give eight components to construct an octonion.

oci1 := octon(1,2,3,4,5,6,7,8)
  1 + 2i + 3j + 4k + 5E + 6I + 7J + 8K
                            Type: Octonion Integer

oci2 := octon(7,2,3,-4,5,6,-7,0)
  7 + 2i + 3j - 4k + 5E + 6I - 7J
                            Type: Octonion Integer

Or you can use two quaternions to create an octonion.

oci3 := octon(quatern(-7,-12,3,-10), quatern(5,6,9,0))
  - 7 - 12i + 3j - 10k + 5E + 6I + 9J
                            Type: Octonion Integer

You can easily demonstrate the non-associativity of multiplication.

(oci1 * oci2) * oci3 - oci1 * (oci2 * oci3)
  2696i - 2928j - 4072k + 16E - 1192I + 832J + 2616K
                            Type: Octonion Integer

As with the quaternions, we have a real part, the imaginary parts i, j, k, and four additional imaginary parts E, I, J and K. These parts correspond to the canonical basis (1,i,j,k,E,I,J,K).

For each basis element there is a component operation to extract the coefficient of the basis element for a given octonion.

[real oci1, imagi oci1, imagj oci1, imagk oci1, _
 imagE oci1, imagI oci1, imagJ oci1, imagK oci1]
  [1,2,3,4,5,6,7,8]
                            Type: List PositiveInteger

A basis with respect to the quaternions is given by (1,E). However, you might ask, what then are the commuting rules? To answer this, we create some generic elements.

We do this in FriCAS by simply changing the ground ring from Integer to Polynomial Integer.

q : Quaternion Polynomial Integer := quatern(q1, qi, qj, qk)
  q1 + qi i + qj j + qk k
                           Type: Quaternion Polynomial Integer

E : Octonion Polynomial Integer:= octon(0,0,0,0,1,0,0,0)
  E
                           Type: Octonion Polynomial Integer

Note that quaternions are automatically converted to octonions in the obvious way.

q * E
  q1 E + qi I + qj J + qk K
                           Type: Octonion Polynomial Integer

E * q
  q1 E - qi I - qj J - qk K
                           Type: Octonion Polynomial Integer

q * 1$(Octonion Polynomial Integer)
  q1 + qi i + qj j + qk k
                           Type: Octonion Polynomial Integer

1$(Octonion Polynomial Integer) * q
  q1 + qi i + qj j + qk k
                           Type: Octonion Polynomial Integer

Finally, we check that the norm, defined as the sum of the squares of the coefficients, is a multiplicative map.

o : Octonion Polynomial Integer := octon(o1, oi, oj, ok, oE, oI, oJ, oK)
  o1 + oi i + oj j + ok k + oE E + oI I + oJ J + oK K
                           Type: Octonion Polynomial Integer

norm o
    2     2     2     2     2     2     2     2
  ok  + oj  + oi  + oK  + oJ  + oI  + oE  + o1
                           Type: Polynomial Integer

p : Octonion Polynomial Integer := octon(p1, pi, pj, pk, pE, pI, pJ, pK)
  p1 + pi i + pj j + pk k + pE E + pI I + pJ J + pK K
                           Type: Octonion Polynomial Integer

Since the result is 0, the norm is multiplicative.

norm(o*p)-norm(p)*norm(o)
  0
                           Type: Polynomial Integer

See Also:

  • )help Quaternion
  • )show Octonion

Table Of Contents

This Page