How can I get Mathematica to work with quaternions symbolically? I want to do some quaternion math without defining the actual coefficients, and then extract the coefficients from the resulting quaternion. For some reason, however, FromQuaternion
only seems to work when values rather than symbols are the coefficients. The following simple examples illustrate the problem.
If I run the following:
QuaternionQ[Quaternion[1, 2, 3, 4]]
FromQuaternion[Quaternion[1, 2, 3, 4]]
The output is as expected:
True
3J + 4K + (1 + 2I)
However, if I run the following (with A0-A3 undefined):
QuaternionQ[Quaternion[A0, A1, A2, A3]]
FromQuaternion[Quaternion[A0, A1, A2, A3]]
I get
False
FromQuaternion(Quaternion(A0, A1, A2, A3))
I was expecting
True
A0 + A1 I + A2 J + A3 K
However, Mathematica seems to be perfectly happy to perform functions like:
Quaternion[A0, A1, A2, A3] ** Quaternion[B0, B1, B2, B3]
With the following result
Quaternion[A0 B0 - A1 B1 - A2 B2 - A3 B3,
A0 B1 + A1 B0 + A2 B3 - A3 B2,
A0 B2 - A1 B3 + A2 B0 + A3 B1,
A0 B3 + A1 B2 - A2 B1 + A3 B0]
but there seems to be no way to extract the components.
Finally, is there a function for just extracting one of the components. For instance, say Q = Quaternion[a, b, c ,d]
. I would like a function like I[q]
which returns b
, J[q]
which returns c
, etc.
Q[[1]]
to get the first part,Q[[2]]
for the second etc... $\endgroup$