https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula#Statement
羅德里格斯的旋轉公式
這篇文章是關於羅德里格斯的旋轉公式,它與相關的歐拉羅德里格斯參數和歐拉羅德里格斯公式的3D旋轉不同。
在三維旋轉理論中,對於給定旋轉軸和旋轉角度,以Olinde Rodrigues命名的羅德里格斯公式是用於在空間旋轉向量的高效算法。通過擴展,它可以用於把所有軸角表達的三維向量轉化為SO(3)中的旋轉矩陣,S0(3)是包含所有旋轉矩陣的群。換句話說,羅德里格斯公式提供了一種算法來計算從SO(3)的李代數so(3)到李群SO(3)的指數映射,而沒有實際計算全矩陣指數。
定義
假設v是R3中的一個向量,並且k是一個描述旋轉軸的單位向量,v根據右手規則旋轉角度θ,則Rodrigues公式為
另一種說法是將軸向量作為定義旋轉平面的任意兩個非零向量a和b的交叉乘積a×b,並且角度θ的方向是從a向b測量的。令α表示這些向量之間的角度,兩個角度θ和α不需要等同,但是它們的測量方式相同。 然后可以單位軸向量可以寫為

當涉及定義平面的兩個向量時,這種形式可能更有用。物理學中的一個例子是托馬斯歲差,它包括由羅德里格斯公式給出的旋轉,用兩個非共線助推速度表示,旋轉軸垂直於它們的平面。
求導
令k是定義旋轉軸的單位矢量,令v是以角度θ圍繞k旋轉的任意向量(右手定則,圖中逆時針)。
使用點乘和叉乘,向量v可以分解成與軸k平行和垂直的分量,

與k平行的分量是

稱為v在k上的向量投影,垂直於k的分量為

稱為k從v的向量拒絕。
矢量k×v可以看作是v⊥逆時針旋轉90°左右的副本,所以它們的大小相等,但是方向是垂直的。同樣,向量k×(k×v),v⊥的一個副本逆時針旋轉180°到k左右,使得k×(k×v)和v⊥的大小相等,但方向相反(即它們是互為負數,因此減號)。擴展矢量三重乘積建立了平行分量和垂直分量之間的連接,參考公式為a×(b×c)=(a·c)b - (a·b)c 給定任意三個向量a,b,c。
平行於軸的分量在旋轉下不會改變幅度和方向,

根據以上分析,只有垂直分量才會改變方向,但保持其大小

並且由於k和v||是平行的,所以它們的叉積是零 k×v|| = 0,因此

並且

這種旋轉是正確的,因為矢量v⊥和k×v具有相同的長度,並且k×v是v⊥圍繞k逆時針旋轉90°。使用三角函數正弦和余弦對v⊥和k×v進行適當的縮放給出旋轉的垂直分量。旋轉分量的形式類似於笛卡爾基的2D平面極坐標(r,θ)中的徑向向量

其中ex,ey是它們指示方向上的單位向量。
現在完整的旋轉矢量是

用等式結果中的v ||rot和v⊥rot的定義代替

矩陣表示
將v和k×v表示為列矩陣,叉積可以表示為矩陣乘積

令K表示單位向量k的“叉積矩陣

矩陣方程可以表示為

對於任何向量v(實際上,K是具有這個性質的獨特矩陣,它具有特征值0和±i)。
而且,由於k是單位向量,所以K具有單位2-范數。 因此矩陣語言中的上一個旋轉公式是

請注意,在這個表示法中,主要術語的系數現在是1。
將v分解可以實現緊湊表達式

這里

是圍繞軸k逆時針旋轉角度θ的旋轉矩陣,I是3×3單位矩陣。矩陣R是旋轉群SO(3)的一個元素,K是李代數的一個元素,所以so(3)生成李群(注意K是負對稱的,這表征了so(3)的特性)。 就矩陣指數而言,

為了理解最后的恆等式,要注意到

單參數子群的特征,即指數,並且公式與無窮小θ相匹配。
對於基於這種指數關系的替代推導,請參閱從so(3)到SO(3)的指數映射。 對於逆映射,請參見從SO(3)到so(3)的日志映射。

