旋轉矩陣

矩陣

旋轉矩陣(英語:Rotation matrix)是在乘以一個向量的時候有改變向量的方向但不改變大小的效果並保持了手性的矩陣。旋轉矩陣不包括點反演,點反演可以改變手性,也就是把右手坐標系改變成左手坐標系或反之。所有旋轉加上反演形成了正交矩陣的集合。旋轉可分為主動旋轉與被動旋轉。主動旋轉是指將向量逆時針圍繞旋轉軸所做出的旋轉。被動旋轉是對坐標軸本身進行的逆時針旋轉,它相當於主動旋轉的逆操作。

簡介


旋轉矩陣的原理在數學上涉及到的是一種組合設計:覆蓋設計。而覆蓋設計,填裝設計,斯坦納系,t-設計都是離散數學中的組合優化問題。它們解決的是如何組合集合中的元素以達到某種特定的要求。其最古老的數學命題是寇克曼女生問題:
某教員打算這樣安排她班上的十五名女生散步:散步時三女生為一組,共五組。問能否在一周內每日安排一次散步,使得每兩名女生在一周內一道散步恰好一次?寇克曼於1847年提出了該問題,過了100多年後,對於一般形式的寇克曼問題的存在性才徹底解決。用1~15這15個數字分別代表15個女生,其中的一組符合要求的分組方法是:

歷史


Patric Ostergard
他的主要貢獻是用了全新的模擬退火演演算法解決了旋轉矩陣的構造問題,運用他的模擬退火程序,可以很迅速的產生許許多多的旋轉矩陣。
Alex Sidorenko
他研究出了許多旋轉矩陣和幾種產生旋轉矩陣的基於禿嶺瀏覽的一般方法。
Greg Kuperberg
他注意到線性的[v,t]編碼的補集可以給出區組長度不定的覆蓋設計,而這可以產生對現有的旋轉矩陣的一系列改進。
Dan Gordon
他收集的旋轉矩陣是迄今為止最全面,最權威的。

性質


設 是任何維的一般旋轉矩陣:
(1)兩個向量的點積(內積)在它們都被一個旋轉矩陣操作之後保持不變:
(2)從而得出旋轉矩陣的逆矩陣是它的轉置矩陣:
這裡的是單位矩陣。
(3)一個矩陣是旋轉矩陣,當且僅當它是正交矩陣並且它的行列式是單位一。正交矩陣的行列式是 ±1;如果行列式是 −1,則它包含了一個反射而不是真旋轉矩陣。
(4)旋轉矩陣是正交矩陣,如果它的列向量形成的一個正交基,就是說在任何兩個列向量之間的標量積是零(正交性)而每個列向量的大小是單位一(單位向量)。
(5)任何旋轉向量可以表示為斜對稱矩陣A的指數:
這裡的指數是以泰勒級數定義的而 是以矩陣乘法定義的。A矩陣叫做旋轉的“生成元”。旋轉矩陣的李代數是它的生成元的代數,它就是斜對稱矩陣的代數。生成元可以通過 M 的矩陣對數來找到。

二維空間


在二維空間中,旋轉可以用一個單一的角 定義。作為約定,正角表示逆時針旋轉。把笛卡爾坐標的列向量關於原點逆時針旋轉的矩陣是:

三維空間


在三維空間中,旋轉矩陣有一個等於單位1的實特徵值。旋轉矩陣指定關於對應的特徵向量的旋轉(歐拉旋轉定理)。如果旋轉角是 θ,則旋轉矩陣的另外兩個(複數)特徵值是。從而得出 3 維旋轉的跡數等於,這可用來快速的計算任何 3 維旋轉的旋轉角。
3 維旋轉矩陣的生成元是三維斜對稱矩陣。因為只需要三個實數來指定 3 維斜對稱矩陣,得出只用三個是實數就可以指定一個 3 維旋轉矩陣。

旋轉

生成旋轉矩陣的一種簡單方式是把它作為三個基本旋轉的序列複合。關於右手笛卡爾坐標系的x-,y- 和z-軸的旋轉分別叫做roll,pitch和yaw旋轉。因為這些旋轉被表達為關於一個軸的旋轉,它們的生成元很容易表達。
繞x-軸的主動旋轉定義為:
這裡的是 roll 角,和右手螺旋的方向相反(在yz平面順時針)。
繞y-軸的主動旋轉定義為:
這裡的 是 pitch 角,和右手螺旋的方向相反(在zx平面順時針)。
繞z-軸的主動旋轉定義為:
這裡的是 yaw 角,和右手螺旋的方向相反(在xy平面順時針)。
在飛行動力學中,roll, pitch 和 yaw 角通常分別採用符號;但是為了避免混淆於歐拉角這裡使用符號。
任何 3 維旋轉矩陣都可以用這三個角來刻畫,並且可以表示為 roll, pitch 和 yaw 矩陣的乘積。
是在 中的旋轉矩陣
在中所有旋轉的集合,加上複合運算形成了旋轉群SO(3)。這裡討論的矩陣接著提供了這個群的群表示。更高維的情況可參見Givens旋轉。

角-軸表示

在三維中,旋轉可以通過單一的旋轉角和所圍繞的單位向量方向 來定義。
這個旋轉可以簡單的以生成元來表達:
在運算於向量r上的時候,這等價於Rodrigues旋轉公式:
角-軸表示密切關聯於四元數表示。依據軸和角,四元數可以給出為正規化四元數Q:
這裡的i,j和k是Q的三個虛部。

歐拉角表示

在三維空間中,旋轉可以通過三個歐拉角 來定義。有一些可能的歐拉角定義,每個都可以依據 roll, pitch 和 yaw 的複合來表達。依據 "z-x-z" 歐拉角,在右手笛卡爾坐標中的主動旋轉矩陣可表達為:
進行乘法運算生成:
因為這個旋轉矩陣不可以表達為關於一個單一軸的旋轉,它的生成元不能像上面例子那樣簡單表達出來。

SVD表示

對旋轉軸 和旋轉角,旋轉矩陣
這裡的 的縱列張開正交於q 的空間而 G 是 度 Givens 旋轉,就是說