回転行列 (rotation matrix) は,ユークリッド空間上のベクトルとの積を取ることにより,そのベクトルを回転させる演算子(作用素)として働きます.このことを,2次元回転行列および3次元回転行列に関して,三角関数の加法定理を用いて証明します.また,回転行列の転置行列,逆行列,行列式などの性質とその意味を説明します.
【スマホでの数式表示について】
2次元回転行列
2次元回転行列とは
行列
は,2次元ベクトルに左から作用させることにより,原点の周りでベクトルを角度
だけ回転させる.
(2) ![]()
の模式図を示す.
回転行列がベクトルを回転させることの証明(2次元)
2次元直交座標上の任意の実ベクトル
は,適当な
および
を用いて
(3) ![]()
と書ける(ただし
).また,このベクトル
を原点の周りに角度
だけ回転させたベクトル
は,
(4) ![]()
と書ける.
他方,ベクトル
に,式(1)で定義される2次元回転行列
を掛けると,ベクトルと行列の積,および三角関数の加法定理に注意して,
(5) ![]()
(6) ![]()
となることがわかる.
結局,式(1)で定義される回転行列
は,2次元直交座標上のベクトル
を原点の周りに角度
だけ回転させる作用の,行列表現であることが示された.
2次元回転行列の積
上式(7)は,次のことを意味する.2つの2次元回転行列の積
は,左から作用させることで,ベクトルを角度
だけ回転させた後,さらに角度
だけ回転させる.これは,双方を合わせてベクトルを角度
だけ回転させること,すなわち回転行列
を作用させることに等しい.
上式(7)は,次の通りに確かめることができる:
(8) ![]()
2次元回転行列の行列式
(9) ![]()
(10) ![]()
であるから,2次元回転行列(1)の行列式は
(11) ![]()
となり,回転角
の値に関わらず恒等的に 1 である.
このことは,2次元ベクトルに2次元回転行列を作用させてベクトルを回転させても,ベクトルの大きさは変わらないことを意味する.
2次元回転行列の逆行列と逆回転
式(1)より,
の逆回転を表す行列
は以下のように表せる:
(14) ![]()
式(12)は,次のことを意味する.
は,左から作用させることで,ベクトルを角度
だけ回転させた後,さらに角度
だけ回転させる(すなわち元の角度分だけ逆回転させる).これは,双方を合わせてベクトルを角度
だけ回転させたのちに元に戻すこと,すなわち何もしないことに等しく,あるいは単位行列
を作用させることに等しい.またこのことは,行列
が
の「逆の操作」であり,逆行列
に等しいことを意味し,式(13)として表せる.
![]()
また,式(12)は,次の通りに確かめることができる.
について,
(15) ![]()
となる.
についても,式(15)と同様の計算により,
を確かめることができる.
一般の正方行列
に対して,
を満たすような正方行列
は,
の逆行列といい,
で表す.
は,
に対して,この逆行列の定義を満たしていることから,
の逆行列を
と書くことにすれば,式(13) を得る.
(16) ![]()
(17) ![]()
となるので,2次元回転行列(12)にこれを用いることにより,
(18) ![]()
のようにして,式(13) を導くこともできる.
2次元回転行列は直交行列である
直交行列とは,以下によって定義される行列である.
(19) ![]()
が成り立つとき,
を 直交行列(orthogonal matrix) という.
ただし,
は
の転置行列(the transpose of a matrix
),
は
の逆行列(inverse matrix) である.
2次元回転行列が直交行列であることは,以下のように簡単に確かめることができる.
行列の行と列を互いに入れ替えたものが転置行列である.一般の2次元正方行列
に対して,その転置行列
は
(20) ![]()
となる.
2次元回転行列(1)は
![]()
(21) ![]()
となる.
これは,
の逆行列
に他ならない.
よって,2次元回転行列は直交行列である.
直交行列であるが2次元回転行列ではない行列
行列
が2次元回転行列ならば,
は直交行列である.しかし逆は成り立たない.
すなわち,全ての
直交行列が 2次元回転行列(12) として表せるわけではない.
直交行列だが2次元回転行列(12) でない行列として,次のような例を挙げることができる.
左からの作用により2次元ベクトルを
軸に関して鏡像反転させる行列:
(22) ![]()
左からの作用により
座標と
座標を入れ替える行列(あるいは 2次元ベクトルを直線
に関して鏡像反転させる行列):
(23) ![]()
3次元回転行列
3次元回転行列とは
3次元直交座標上のベクトル
を,
軸; あるいは ベクトル ![]()
軸; あるいは ベクトル ![]()
軸; あるいは ベクトル ![]()
の周りで角度
だけ回転させる演算子
,
,
は,それぞれ次の
行列で表すことができる:
行列
,
,
は,3次元ベクトルに左から作用させることにより,それぞれ
軸,
軸,
軸の周りで,ベクトルを角度
だけ回転させる.
(27) ![]()
の模式図を示す.
回転行列がベクトルを回転させることの証明(3次元)
3次元直交座標上の任意の実ベクトル
は,円柱座標系
,
,
を用いて
(28) ![]()
と書ける(ただし
).また,このベクトル
を
軸の周りで角度
だけ回転させたベクトル
は,
(29) ![]()
と書ける.
他方,ベクトル
に,式(26)で定義される,
軸周りの回転行列
を掛けると,ベクトルと行列の積,および三角関数の加法定理に注意して,
(30) ![]()
(31) ![]()
となることがわかる.
結局,式(26)で定義される,
軸周りの回転行列
は,3次元直交座標上のベクトル
を,
軸の周りで角度
だけ回転させる作用の,行列表現であることが示された.
軸周りの回転行列
および
軸周りの回転行列
についても,円柱座標系を適当に設定することにより,同様にベクトルの回転を確かめることができる.


式(8)の途中(3番目)が間違っているかと思います。(αとβが入れ替わっているところがある)
最初は自分を疑っていて、3時間ほど真剣に悩みましたが、
他のサイトと比較し、おそらく自分が正しいだろう、と思うようになりました。
細かいところで揚げ足をとるつもりではないのですが、
「回転行列の積」で検索するとこちらのページが一番に上がりますので、
他の人が私と同じように悩まないように、ご確認お願いします。
私の勘違いでしたら、申し訳ありません。
加藤様
ご指摘の通り,式(8)3行目の行列の(1,2)成分および(2,1)成分の第2項にalphaとbetaの入れ違いがありました.
正誤は下記の通りで,本文を修正しました.
ご丁寧なご指摘,ありがとうございました!
(誤)
(正)
いつも,読者の皆様の検算やご指摘で,サイト内容を改善することができ,より良い情報が掲載できることをうれしく思っております.
皆様,ありがとうございます.
引き続き,お気づきの点がありましたら,コメント欄にお寄せください.
大学を卒業してずいぶんたちます。3Dの円柱座標の計算結果をグラフにしようと思い、回転行列を探していて一番わかりやすかったのがここでした。ありがとうございました。
小田様
温かいコメント頂き,ありがとうございます.
お役に立てましたようで何よりです!