[[FrontPage]] [[数学]] //表記ゆれ用、クオータニオン *概要 [#w6532204] -特徴 --計算が軽い --角速度ベクトルが直で使える --時間発展も楽。 -アフィン変換もできる二重クォータニオンなるものもある *参考 [#o3d0df66] -金谷一朗さんのベクトル・複素数・クォータニオンの資料を参考 -http://www.mss.co.jp/technology/report/pdf/18-07.pdf -[[具体的な計算例がある>http://mathtrain.jp/quaternion]] -http://www.slideshare.net/tokoro10g/quadruptor *未整理 [#xabe7321] 四元数の積は可換ではない ベクトルの回転変換がSU(2)の世界では相似変換となる。 1階テンソル=2階スピノール SO(3)=SU(2)/C_2 (C_2は2次巡回群) リー代数so(3)=su(2) SO(2)=U(1) exp(A)exp(B)=exp(A+B)は、可換の時だけ。 一般のexp(A)exp(B)は、ベーカーキャンベルハウスドルフの公式で求まる。 SU(2)は、単位行列成分と3つのパウリ行列で表せる。 特殊ユニタリ行列はパウリ行列の線形和で表される。 3次元ベクトルのエルミート表示=x_i s_i(3次元) オイラー角に相当する回転を実現 線形化すればオイラー角の合成も可能 3次元ベクトルのクオータニオン表示=[0, x_i s_i](3次元、だが積で4次元になる) 3次元ベクトルのクォータニオン表示=[0, x_i s_i](3次元、だが積で4次元になる) 任意の三次元ベクトル中心回転が可能。 クオータニオン積が、単位行列成分が内積・パウリ行列成分が外積となる クォータニオン積が、単位行列成分が内積・パウリ行列成分が外積となる -so(3)->SO(3)の写像は指数関数である。 |exp(対称行列)=対称行列|exp(エルミート行列)=エルミート行列| |exp(反対称行列)=直交行列|exp(反エルミート行列)=ユニタリ行列| *整理 [#fa2be276] -定義 --&mimetex($\sigma_i$);はパウリ行列 --&mimetex($J_i$);は生成子 ||反対称行列=SO(2)|複素数|SO(3)|エルミート表示=SU(2)|クオータニオン表示|h ||反対称行列=SO(2)|複素数|SO(3)|エルミート表示=SU(2)|クォータニオン表示|h |ベクトルの表示|&mimetex($Z=[a, b]_M=a1+bI$);|&mimetex($z=[a, b]=a+bi$);||&mimetex($\xi = \sigma_i x^i$);|&mimetex($q=[0, \sigma_i x^i]$);。重要なのは、これが回転行列の表記が同じこと| |回転の表示||||&mimetex($U=\begin{bmatrix} \alpha & \beta \\ -\beta^* & \alpha^* \end{bmatrix}=1u_0+i\sigma^i u_i, \Sigma u_i^2 = 1$);|&mimetex($U=\begin{bmatrix} \alpha & \beta \\ -\beta^* & \alpha^* \end{bmatrix}=1u_0+i\sigma^i u_i, \Sigma u_i^2 = 1$);| |特殊直交|特殊直交行列||特殊直交行列|特殊ユニタリ行列|特殊ユニタリ行列| |逆|&mimetex($Z^{-1}=\frac{z^t}{norm(Z)^2}$);|&mimetex($z^{-1}=\frac{z^*}{norm(z)^2}$);|||&mimetex($q^{-1} = \frac{q^*}{norm(q)^2}$);| |共役相当|転置|共役||エルミート共役|共役クオータニオン| |共役相当|転置|共役||エルミート共役|共役クォータニオン| |内積|&mimetex($<A, B>=\frac{1}{2} tr(A^t B)$);|||&mimetex($<A, B>=\frac{1}{2} tr(A^\dagger B)$);|&mimetex($<q_{(1)}, q_{(2)}> = \frac{1}{2} tr(q_{(1)}^* q_{(2)})$);| |ノルムの二乗|&mimetex($<Z, Z>$);|&mimetex($z^* z$);||&mimetex($<Z, Z>$);|&mimetex($<q, q>$);| |回転|&mimetex($T(\theta)=\exp[0, \theta]_M=[\cos(\theta), \sin(\theta)]_M$);|&mimetex($T(\theta)=\exp[0, \theta]=[\cos(\theta), \sin(\theta)]$);|&mimetex($T_i(\theta)=exp(J_i \theta)$);|&mimetex($U_i(\theta)=\exp[0, \sigma_3 \theta_3 /2], \xi' = U_3 \xi U_3^\dagger$);|&mimetex($V_i(\theta)=\exp[0, \sigma_3 \theta_3 /2], \xi' = V_3 \xi V_3^\dagger$);| |一般回転|||&mimetex($T(\Delta \theta)=exp(J_i \Delta \theta_i)=\bf{1}+J_i \Delta \theta_i$);|オイラー角回転&mimetex($U_i(\theta)=\exp[0, \sigma \theta /2], \xi' = U \xi U^\dagger$);|i軸回り回転&mimetex($V_i(\theta)=\exp[0, \sigma \theta /2], \xi' = V \xi V^\dagger$);, 正規ベクトルr周り&mimetex($V_i(\theta, r)=[\cos(\theta/2), \sigma_i r^i \sin(\theta /2)], \xi' = V \xi V^\dagger$);| |備考|||||クオータニオンX, Yに対して&mimetex($XY=-[<x, y>, \sigma_i (x \times y)]$);、&mimetex($\xi' = V \xi V^\dagger$);は座標系回転なので、ベクトル回転したい場合は左手ルール(必ず右からVをかける)を用いて&mimetex($\xi' = V^\dagger \xi V$);、球面線形補完可能| -といいつつも、左手トリックを使わずにふつうにクォータニオンを左からかけて変換になってるんだが… -クォータニオン積を実現する、同値な4次元ベクトルと4次行列(反対称行列)が存在 --クォータニオン&mimetex($[\omega_0, \omega_i]$);に対して、 --反対称行列&mimetex($\begin{bmatrix} \omega_0 & -\omega_1 & -\omega_2 & -\omega_3 \\ \omega_1 & \omega_0 & -\omega_3 & \omega_2 \\ \omega_2 & \omega_3 & \omega_0 & -\omega_1 \\ \omega_3 & -\omega_2 & \omega_1 & \omega_0 \\ \end{bmatrix}$);と&mimetex($\begin{bmatrix} \omega_0 \\ \omega_1 \\ \omega_2 \\ \omega_3 \end{bmatrix}$);がそれぞれ同値。 -&mimetex($q = (a, v), P = (w, x)$);に対して、qPq'に同値なクォータニオンの行列表示M P_Mが存在し、Mは以下のように表現可能 --&mimetex($M = 1/norm(q)^2 \begin{bmatrix} norm(q)^2-2v_y^2-2v_z^2 & 2v_x v_y-2av_z & 2v_x v_z+2av_y & 0 \\2v_xv_y+2av_z &norm(q)^2-2vz2-2vx2 &2vyvz-2avx &0 \\2v_xv_z-2av_y &2v_yv_z+2av_x &norm(q)^2-2 v_y^2-2v_y^2 &0 \\0 &0 &0 &norm(q)^2\end{bmatrix}$); -時間発展 --地球座標系からセンサ座標系の単位クォータニオンqに対して、センサ座標系で観測された角速度ベクトルωによる、qの時間発展 [D.R.P.R.B.M.Joseph M. Cooke, 1994] ---&mimetex($\dot{q} = q [0, \omega]/2$); --地球座標系からセンサ座標系のSO(3)の元Rに対して、センサ座標系で観測された角速度ベクトルωによる、Rの時間発展([[回転行列の時間発展と証明>http://maildbs.c.u-tokyo.ac.jp/~kuniba/atsuo/mech2005_s.pdf]]) ---&mimetex($\dot{R} = \Omega R$);ただし&mimetex($\Omega=\omega \times = \begin{bmatrix}0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix}$); |