行列 3). 行列の積とベクトルの内積の関係。ちょっと広げて、軸変換まで(回転行列入り口)

行列

はじめに

前回の記事内で、行列の積の成分計算は

  • 行ベクトルと列ベクトルの内積計算

と同じである事を書いた。(こちら)

これを利用すると、行列の積の計算に内積の特長が利用できる。

つまり

  • 大きさ1の行ベクトルで構成された行列
    (全ての行ベクトルが単位ベクトル)
  • 任意の列ベクトル

この行列の積の結果の各成分は、その行ベクトル方向への列ベクトルの投影長となる。

つまり行列内の各行ベクトル方向に軸を設定すると、その座標値となる。

これが、行列を使った軸変換のキモ。回転行列は軸変換の一部(つまり限定版)。

(内積?投影長?ん?であれば、以下の記事をご参照)

2軸に対して行うのであれば、2つの行ベクトル(つまり2x2行列)、
3軸に対して行うのであれば、3つの行ベクトル(つまり3x3行列)、
n個の軸に対して行うのであればn個の行ベクトル(つまりnxn行列)

を用意すれば、その数の軸変換ができる。

以下にその流れを。

ベクトルの内積の利用した行列による軸変換

あらためて

”正規ベクトルの行ベクトルで構成される行列” と ”任意の列ベクトル”

の行列の積を考える。

ベクトルの内積の意味をふまえると、この場合の行列の積の成分計算結果は、

列ベクトルの長さを行ベクトル方向へ投影した長さ

である。

つまり、行ベクトル方向を軸に設定し、列ベクトルの始点を原点とすれば、その軸から見た列ベクトルの座標値が算出される。

1次元ではただのベクトル計算になるので、具体的な例として、2次元(2×2行列)から始める。つまり2軸の軸変換。
(この感覚があれば、あとは3次元でもn次元の軸変換も同じ。)

ちなみにこの軸変換の話はこの先、任意軸への座標軸変換の話から回転行列(オイラー角)へと続く。

まずは任意の軸への座標軸変換から

座標系の設定

基準の座標系 O-XYを設定する。この座標系O-XYは、原点Oを通り直行するX軸 Y軸をもつ座標系

X軸、Y軸 の方向の単位ベクトルは

  • \(\overrightarrow{i} \): X軸の方向の単位ベクトル
  • \(\overrightarrow{j} \): Y軸の方向の単位ベクトル

とする。
(当然、\(\overrightarrow{i} \) 、\(\overrightarrow{j} \)は O-XY上の正規直行基底)

あわせて、O-XY上に新たな2軸を追加(M軸とN軸:方向は任意、原点Oは共有、)<- まずは任意方向の軸設定(直行でなくても可)

これを座標系 O-MNとして設定。

図①

このM軸、N軸 の方向を

  • \(\overrightarrow{i_m}= (x_m , y_m) \) : M軸の方向ベクトル (単位ベクトル: \( {x_m}^2+{y_m}^2=1 \) )
  • \(\overrightarrow{j_n}= (x_n , y_n) \) : N軸の方向ベクトル (単位ベクトル:\( {x_n}^2+{y_n}^2=1 \) )

にて定義し、あわせてX軸とM軸のなす角をα、 X軸とN軸のなす角をβとし、これらのベクトルをO-XY座標系で成分表示すれば

  • \(\overrightarrow{i_m}= (x_m , y_m) = (\cos\alpha , \cos(\displaystyle\frac{π}{2}-\alpha))= (\cos\alpha , \sin\alpha) \)
  • \(\overrightarrow{j_n}= (x_n , y_n) = (\cos\beta , \cos(\displaystyle\frac{π}{2}-\beta)) = (\cos\beta , \sin\beta) \)

ちなみに、\(\overrightarrow{i_m}\)、\(\overrightarrow{j_n}\) は単位ベクトル、原店Oを基点かつ方向が任意である事を踏まえれば、これらのM軸、N軸の方向を示す各ベクトルは原点Oを中心としたr=1の円。

任意の軸への座標変換

さてこれを踏まえ軸変換。X軸->M軸 、 Y軸 ->N軸への変換を考える。

平面上に点Aを設定する。

O-XY上の点Aの座標は \( \left ( \begin{array}{c} x \\y \end{array} \right ) \) とし、原点Oから点Aへのベクトルを \( \small{\overrightarrow{ OA }}=\normalsize{\overrightarrow{a}} \)とする。

次に、O-MN上での点Aの座標を \( \left ( \begin{array}{c} m \\n \end{array} \right ) \)とすれば、\( \left ( \begin{array}{c} m \\n \end{array} \right ) \) は、\(\overrightarrow{a} \)のM軸 N軸への投影成分である事から、前述のベクトルの内積の性質を使い、

\( \begin{align}
m &= \overrightarrow{i_m} \cdot \overrightarrow{a} \\
&=\cos\alpha\cdot x + \sin\alpha\cdot y
\end{align} \)

\( \begin{align}
n &= \overrightarrow{j_n} \cdot \overrightarrow{a} \\
&=\cos\beta\cdot x + \sin\beta\cdot y
\end{align} \)

図①

となる。これを行列化する。

つまり、任意の軸への投影成分は

\( \begin{align}
m &=\cos\alpha\cdot x + \sin\alpha\cdot y \\
n &=\cos\beta\cdot x + \sin\beta\cdot y
\end{align} \)

を使い行列を使えば

\( \normalsize{\left ( \begin{array}{c}
m\\n\end{array} \right )
=\left ( \begin{array}{cc}
\cos\alpha&\sin\alpha \\
\cos\beta&\sin\beta \end{array}\right)
\left ( \begin{array}{c}
x\\y \end{array}\right) } \) ・・・①

と表現できる

軸変換を行う行列の見方

改めて①式を見直せば、軸変換を行う行列は

である事がわかる。この見方を頭の片隅にいれておく。

行列内の行ベクトルが全て単位ベクトルであれば、その行列において座標軸変換が可能。
また、その行列内の行ベクトルは変換後の新しい軸の方向を示す

行列の行数/列数が増えても見方は同じ。

この座標軸変換が回転行列の入り口。

スポンサーリンク

回転行列

次に、変換後の任意の2軸(M軸とN軸)に

”変換前の2軸(X軸Y軸)と同じ原点を共有し、かつ位置関係、直行関係をそのまま保つ”

という制限を加える。

つまり、変換前の座標系を、原点O中心に丸ごと回転させる変換となる。

座標系の設定

変換前の座標軸O-X0Y0は上述と同じ設定。
-> 原点Oを通り、直行するX0Y0軸をもつ座標系。

座標軸は右手系で設定、角度はX→Y方向を正

変換後の座標系をO-X1Y1とし、O-X1Y1も右手系
かつ、”X1軸 Y1軸も直行関係である”、の制限を加える。

つまり、座標系は右手系を保ち軸の配置に変更はしない(角度の正負方向も同じ)

前回同様、平面上に点Aを設定する。

原点Oを始点に点A結ぶベクトルを \( \normalsize{\overrightarrow{a}} \)とし、
O-X0Y0 上の点Aの座標を \( \left ( \begin{array}{c} x_0 \\y_0 \end{array} \right ) \) \( \\[2pt] \) O-X1Y1 上の点Aの座標を\( \left ( \begin{array}{c} x_1 \\y_1 \end{array} \right ) \)

とする(図②)

図②

回転行列の設定と見方

変換される軸は X0軸-> X1軸 、 Y0軸 -> Y1軸 である。

O-X1Y1 ではX1軸Y1軸の関係はO-X0Y0の関係を保つので、αが決まれば、①式のβも自動的にきまる。

つまり

\(\beta= \alpha+\displaystyle\frac{π}{2} \)・・・②

これを①式に代入すれば

\( \begin{align}
\left ( \begin{array}{c}
x_1\\y_1 \end{array} \right )
& = \left ( \begin{array}{cc}
\cos\alpha & \sin\alpha \\
\cos\beta & \sin\beta \end{array}\right)
\left ( \begin{array}{c}
x_0\\y_0 \end{array}\right) \\[8pt]
&= \left ( \begin{array}{cc}
\cos\alpha & \sin\alpha \\
\cos(\alpha+\displaystyle\frac{π}{2}) & \sin(\alpha+\displaystyle\frac{π}{2}) \end{array}\right)
\left ( \begin{array}{c}
x_0\\y_0 \end{array}\right) \\[8pt]
& = \left ( \begin{array}{cc}
\cos\alpha & \sin\alpha \\
-\sin\alpha & \cos\alpha \end{array}\right)
\left ( \begin{array}{c}
x_0\\y_0 \end{array}\right) ・・・③
\end{align} \)

これが回転行列。
(当然ではあるが、一つの回転角αで変換前後の座標値の関係を示す事ができる)

①式は座標軸変換行列。この座標軸変換行列にXY軸の関係を固定すれ条件を加えれば、座標系として回転させる行列Ra (③式)となる。

\( R_{\alpha} = \left ( \begin{array}{cc}
\cos\alpha & \sin\alpha \\
-\sin\alpha & \cos\alpha \end{array} \right)
\left ( \begin{array}{c}
x_0\\y_0 \end{array}\right) ・・・④ \)

この行列の見方は軸変換の場合と同じである。

Ra において、1行目を抜き出した \( (\cos\alpha \sin\alpha) \) を \(\overrightarrow{i_1} \)、2行目を抜き出した \( (-\sin\alpha \cos\alpha) \) を \(\overrightarrow{j_1} \)とみれば、これらの行ベクトルは変換後の軸の方向である。

つまり、行列内の各行ベクトルは変換後の軸の方向を示す

また回転しただけなので当然\(\overrightarrow{i_1} \)、\(\overrightarrow{j_1} \)もその平面上での正規直行基底(大きさ1&互いに直行)

追記

ベクトルの内積を用いた軸変換から回転行列へと展開したが、回転行列については、方向余弦を用いた導入の方がわかりやすいかも。。以下の記事にて。

タイトルとURLをコピーしました