考虑到四元数域的不可交换性,其计算往往更复杂,但通过定义四元数矩阵(向量)的实表示,我们发现只需要存储四个对应的实部,就可以达到构造实表示的目的。
那么四元数矩阵向量积的问题就转化为了对应的实表示的矩阵向量积问题。
首先考虑,对于一个已知的四元数矩阵A=A0+A1i+A2j+A3k,(向量),matlab怎么得到四个实部?
A1 = part(A,1);
A2 = part(A,2);
A3 = part(A,3);
A4 = part(A,4);
那么为了计算转化后实表示的矩阵向量积w = A*v(w,v为四元数向量,A为四元数矩阵),首先定义四元数矩阵实表示的函数:
function Ai_ = Realp( A0,A1,A2,A3 )
Ai_ = [A0 -A1 -A2 -A3;
A1 A0 -A3 A2
A2 A3 A0 -A1
A3 -A2 A1 A0];
end
相应的,定义,我们就可以通过实运算得到w的四个实部w0,w1,w2,w3,再利用
w = quaternion(w0,w1,w2,w3)
我们就可以得到四元数向量w。