■四元数の応用(その17)

 四元数qに対して、変換f(x)=qxq^(-1)を考えてきたが、とくに|q|=1のときはq^(-1)=q~となり、

  f(x)=qxq^(-1)=qxq~

となる。

四元数を用いた回転は

f(x)=axa~

kik~=-kik=-jk=-i・・・xy平面上の180度回転

n=(n1,n2,n3)=n1i+n2j+n3k,n1^2+n2^2+n3^3=1

q=cos(θ/2)+nsin(θ/2)

|q|=cos^2(θ/2)+(n1^2+n2^2+n3^2)sin^2(θ/2)=cos^2(θ/2)+sin^2(θ/2)=1

nの周りにθ回転させる操作はqxq~で与えられる。

[1]xy平面に関する回転:q=cos(θ/2)+ksin(θ/2)

[2]yz平面に関する回転:q=cos(θ/2)+isin(θ/2)

[3]xz平面に関する回転:q=cos(θ/2)+jsin(θ/2)

===================================

【3】単位四元数と3次元の回転

 x,y,z軸の周りの回転では使いにくい.そこで,単位ベクトル

  n=(α,β,γ)

を回転軸とし,その周りに正の回転方向にθだけ回転する回転行列はα,β,γは方向余弦で,α^2+β^2+γ^2=1を満たすものとして

  R(1,1)=α^2(1-cosθ)+cosθ

  R(2,2)=β^2(1-cosθ)+cosθ

  R(3,3)=γ^2(1-cosθ)+cosθ

  R(1,2)=αβ(1-cosθ)+γsinθ

  R(2,1)=αβ(1-cosθ)-γsinθ

  R(1,3)=αγ(1-cosθ)-βsinθ

  R(3,1)=αγ(1-cosθ)+βsinθ

  R(2,3)=βγ(1-cosθ)+αsinθ

  R(3,2)=βγ(1-cosθ)-αsinθ

で表される.

眺めてみればわかるように、とても複雑な形をしている。

空間の回転を処理する際、行列よりも四元数を用いたほうが記憶容量が小さく、演算のスピードも速いのである。

===================================