機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

CGでよく見かけるベクトルに関する公式の導出

はじめに

CGを勉強していると、よく見かける公式があります。
そういや、導出してなかったなって思ったので、導出することにしました。
どれも地道に計算するだけです。それもまた一興。

ベクトル3重積の公式

ベクトル3重積の公式

{\bf a},{\bf b},{\bf c}\in{\mathbb R}^3 に関して以下が成り立つ。

\begin{eqnarray}
{\bf a}\times({\bf b}\times{\bf c})=({\bf a}^\top{\bf c}){\bf b}-({\bf a}^\top{\bf b}){\bf c}\tag{1}
\end{eqnarray}

[証明]
(1) の左辺 {\bf a}\times({\bf b}\times{\bf c}) を計算します。
\begin{eqnarray}
{\bf a}\times({\bf b}\times{\bf c})&=&{\bf a}\times
\begin{pmatrix}
b_yc_z-b_zc_y\\
b_zc_x-b_xc_z\\
b_xc_y-b_yc_x
\end{pmatrix}\\
&=&
\begin{pmatrix}
a_yb_xc_y-a_yb_yc_x-a_zb_zc_x+a_zb_xc_z\\
a_zb_yc_z-a_zb_zc_y-a_xb_xc_y+a_xb_yc_x\\
a_xb_zc_x-a_xb_xc_z-a_yb_yc_z+a_yb_zc_y
\end{pmatrix}\\
&=&
\begin{pmatrix}
(a_xb_x+a_yc_y+a_zb_z)b_x-(a_xb_x+a_yb_y+a_zb_z)c_x\\
(a_xb_x+a_yc_y+a_zc_z)b_y-(a_xb_x+a_yb_y+a_zb_z)c_y\\
(a_xb_x+a_yc_y+a_zc_z)b_z-(a_xb_x+a_yb_y+a_zb_z)c_z
\end{pmatrix}\\
&=&
\begin{pmatrix}
{\bf a}^\top{\bf c}\cdot b_x-{\bf a}^\top{\bf b}\cdot c_x\\
{\bf a}^\top{\bf c}\cdot b_y-{\bf a}^\top{\bf b}\cdot c_y\\
{\bf a}^\top{\bf c}\cdot b_z-{\bf a}^\top{\bf b}\cdot c_z
\end{pmatrix}\\
&=&({\bf a}^\top{\bf c}){\bf b}-({\bf a}^\top{\bf b}){\bf c}\tag{2}
\end{eqnarray}
以上より、式 (1) が成り立つことが示せました。
[証明終わり]

射影を行列とベクトルの積にする公式

射影を行列とベクトルの積にする公式

{\bf a},{\bf b}\in{\mathbb R}^3 に関して以下が成り立つ。

\begin{eqnarray}({\bf a}^\top{\bf b}){\bf b}
=
\begin{pmatrix}
b_x^2 & b_xb_y & b_xb_z\\
b_xb_y & b_y^2 & b_yb_z\\
b_xb_z & b_yb_z & b_z^2
\end{pmatrix}
\begin{pmatrix}
a_x\\a_y\\a_z
\end{pmatrix}\tag{3}\end{eqnarray}

証明前に、一言。{\bf a}{\bf b} に射影すると、\dfrac{{\bf a}^\top{\bf b}}{\|{\bf b}\|^2}{\bf b} です。
[証明]
(3) の左辺 ({\bf a}^\top{\bf b}){\bf b} を計算します。
\begin{eqnarray}
({\bf a}^\top{\bf b}){\bf b}&=&
\begin{pmatrix}
({\bf a}^\top{\bf b})\cdot b_x\\
({\bf a}^\top{\bf b})\cdot b_y\\
({\bf a}^\top{\bf b})\cdot b_z\\
\end{pmatrix}\\
&=&
\begin{pmatrix}
(a_xb_x+a_yb_y+a_zb_z) b_x\\
(a_xb_x+a_yb_y+a_zb_z) b_y\\
(a_xb_x+a_yb_y+a_zb_z) b_z\\
\end{pmatrix}\\
&=&
\begin{pmatrix}
b_x^2a_x+b_xb_ya_y+b_xb_za_z\\
b_xb_ya_x+b_y^2a_y+b_yb_za_z\\
b_xb_za_x+b_yb_za_y+b_z^2a_z\\
\end{pmatrix}\\
&=&
\begin{pmatrix}
b_x^2 & b_xb_y & b_xb_z\\
b_xb_y & b_y^2 & b_yb_z\\
b_xb_z & b_yb_z & b_z^2\\
\end{pmatrix}
\begin{pmatrix}
a_x\\
a_y\\
a_z\\
\end{pmatrix}\tag{4}
\end{eqnarray}
以上より、式 (3) が成り立つことが示せました。
[証明終わり]

外積を行列のベクトルの積にする公式

外積を行列のベクトルの積にする公式

{\bf a},{\bf b}\in{\mathbb R}^3 に関して以下が成り立つ。

\begin{eqnarray}{\bf a}\times{\bf b}
=
\begin{pmatrix}
0 & -a_z & a_y\\
a_z & 0 & -a_x\\
 -a_y & a_x & 0
\end{pmatrix}
\begin{pmatrix}
b_x\\b_y\\b_z
\end{pmatrix}\tag{5}\end{eqnarray}

[証明]
(5) の左辺 {\bf a}\times{\bf b} を計算します。
\begin{eqnarray}
{\bf a}\times{\bf b}&=&
\begin{pmatrix}
a_yb_z-a_zb_y\\
a_zb_x-a_xb_z\\
a_xb_y-a_yb_x
\end{pmatrix}\\
&=&
\begin{pmatrix}
0\cdot b_x-a_zb_y+a_yb_z\\
a_zb_x +0\cdot b_y-a_xb_z\\
 -a_yb_x+a_xb_y+0\cdot b_z
\end{pmatrix}\\
&=&
\begin{pmatrix}
0 & -a_z & a_y\\
a_z & 0 & -a_x\\
 -a_y & a_x & 0
\end{pmatrix}
\begin{pmatrix}
b_x\\b_y\\b_z
\end{pmatrix}\tag{6}
\end{eqnarray}
以上より、式 (5) が成り立つことが示せました。
[証明終わり]

目次へ戻る