定義
定義vvv是三維空間R3中的一個任意向量,kkk是一個單位向量,向量vvv繞向量kkk旋轉θ角度,則表示旋轉後向量vvvrot的羅德里格斯公式爲:
vrot=vvvcosθ+(kkk×vvv)sinθ+kkk(kkk⋅vvv)(1−cosθ)
公式推導
定義vvv是三維空間R3中的一個任意向量,kkk是一個單位向量,向量vvv繞向量kkk旋轉θ角度(右手定律,圖中逆時針方向)。
使用點乘和叉乘,vvv可被分解爲與kkk平行和垂直的分量:
vvv=vvv∥+vvv⊥(1)
其中平行於kkk的分量爲:
vvv∥=(kkk⋅vvv)kkk(2)
向量vvv∥稱爲向量vvv在向量kkk上的投影(vector projection),垂直於kkk的分量爲:
vvv⊥=vvv−vvv∥=vvv−(kkk⋅vvv)kkk=−kkk×(kkk×vvv)(3)
向量vvv⊥稱爲向量vvv在向量kkk上的vector rejection(沒有找到合適的翻譯)。
公式(3)最後一項的推導:向量kkk×vvv可以看作是向量vvv⊥繞向量kkk逆時針旋轉90°的副本,所以它們大小相等但方向垂直。同樣的,向量kkk×(kkk×vvv)是vvv⊥繞kkk逆時針旋轉180°的副本,所以kkk×(kkk×vvv)和vvv⊥的大小相等但方向相反(因此符號相反)。
擴展:
向量的三重叉積連接了平行分量和垂直分量,對於給定的3個向量aaa,bbb,ccc,有:
aaa×(bbb×ccc)=(aaa⋅ccc)bbb−(aaa⋅bbb)ccc
由於平行於旋轉軸的分量在旋轉時不會改變其幅度和方向,因此有:
vvv∥rot=vvv∥(4)
垂直分量在旋轉時會改變方向,但會保持大小不變,有:
∣vvv⊥rot∣=∣vvv⊥∣(5)
vvv⊥rot=cosθvvv⊥+sinθkkk×vvv⊥(6)
由於kkk和vvv∥是平行的,所以它們的叉積爲0,即kkk×vvv=0,所以我們有:
kkk×vvv⊥=kkk×(vvv−vvv∥)=kkk×vvv−kkk×vvv∥=kkk×vvv(7)
將(6)式帶入(7)式,有:
vvv⊥rot=cosθvvv⊥+sinθkkk×vvv(8)
說明:
可以通過前面的圖片來理解公式(8)。向量vvv⊥和kkk×vvv具有相同的長度,且kkk×vvv是vvv⊥繞kkk旋轉90°得到的。利用三角函數(正弦、餘弦)可得到旋轉後向量的垂直分量。旋轉分量的形式與笛卡爾基的2D平面極座標(r,θ)中的徑向向量類似:
rrr=rcosθeeex+rsinθeeey
其中,eeex,eeey爲它們指示方向上的單位向量。
現在,旋轉後的向量可完整表示爲:
vvvrot=vvv∥rot+vvv⊥rot(9)
將式(4)和(8)和(2)依次帶入(9),有:
vvvrot=vvv∥+cosθvvv⊥+sinθkkk×vvv=vvv∥+cosθ(vvv−vvv∥)+sinθkkk×vvv=cosθvvv+(1−cosθ)vvv∥+sinθkkk×vvv=cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθkkk×vvv(10)
矩陣表示
將vvv和kkk×vvv表示爲列矩陣,則叉積可以表示爲矩陣的乘積:
⎣⎡(kkk×vvv)x(kkk×vvv)y(kkk×vvv)z⎦⎤=⎣⎡kyvz−kzvykzvx−kxvzkxvy−kyvx⎦⎤=⎣⎡0kz−ky−kz0kxky−kx0⎦⎤⎣⎡vxvyvz⎦⎤(11)
令KKK表示單位向量kkk的“叉積矩陣”:
KKK=⎣⎡0kz−ky−kz0kxky−kx0⎦⎤(12)
則對於任意向量vvv,矩陣方程(11)可以表示爲:
KKKvvv=kkk×vvv(13)
事實上,K是具有這個性質的唯一矩陣,它的特徵值爲0和±i。
在等式右側迭代叉乘等價於在等式左側迭代左乘叉積矩陣,有(迭代2次的情況):
KKK(KKKvvv)=KKK2vvv=kkk(kkk×vvv)(14)
由於kkk是單位向量,所以kkk具有單位的2範數,因此旋轉公式(10)可以表示爲:
vvvrot,∥KKK∥2=cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθkkk×vvv=vvv−vvv+cosθvvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv−(1−cosθ)vvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv−(1−cosθ)(kkk⋅kkk)vvv+(1−cosθ)(kkk⋅vvv)kkk+sinθKKKvvv=vvv+(1−cosθ)((kkk⋅vvv)kkk−(kkk⋅kkk)vvv)+sinθKKKvvv=vvv+(1−cosθ)(kkk×(kkk×vvv))+sinθKKKvvv=vvv+(sinθ)KKKvvv+(1−cosθ)KKK2vvv=(III+(sinθ)KKK+(1−cosθ)KKK2)vvv=RRRvvv=1(15)
有:
RRR=III+(sinθ)KKK+(1−cosθ)KKK2(16)
這是一個繞軸kkk逆時針旋轉θ角度的旋轉矩陣,其中III爲一個3×3的單位矩陣。
矩陣RRR是實數空間R3中旋轉羣SO(3)中的元素,KKK是生成該李羣的李代數so(3)中的元素(注意,KKK具有so(3)斜對稱的特徵)。