点と面の距離(非正方行列の逆行列についての一つの提案)

正方行列でない行列の逆行列とは,どんなものか.という疑問の答えの一つがこれです. 注意として,世間一般で言われるランクがnより小さいn次正方行列に対する「一般化逆行列」とは,異なるものの様です.

2つのベクトルの張る平面

三次元空間内で, 原点を通る二本のベクトル \bm{a}=(a_1,a_2,a_3)^T [*]\bm{b}=(b_1,b_2,b_3)^T で 張られる平面 (x,y,z)^T=s\bm{a}+t\bm{b} と,点P \bm{r}=(x,y,z)=(x_0,y_0,z_0)^T との距離 X が最短距離を示す時の st の値を求めます. つまり,

[*]右上の T は,転置を表します.
\begin{pmatrix}x \\y \\z\end{pmatrix}=\begin{pmatrix}a_1 & b_1 \\a_2 & b_2 \\a_3 & b_3\end{pmatrix}\begin{pmatrix}s \\t\end{pmatrix}\equiv\begin{pmatrix}x_1 \\y_1 \\z_1\end{pmatrix}\leftrightarrow\begin{pmatrix}x \\y \\z\end{pmatrix}=\begin{pmatrix}x_0 \\y_0 \\z_0\end{pmatrix} \tag{1}

が最も近づく時を考えます.

それには,距離 X^2 が最小値を取る時を考えればよいです. つまりは, s,t の二次式なので,平方完成を行います. 実際に計算してみると,

X^2 &= (x_1-x_0)^2+(y_1-y_0)^2+(z_1-z_0)^2 \\&= (a_1s+b_1t-x_0)^2+(a_2s+b_2t-y_0)^2+(a_3s+b_3t-z_0)^2 \\&= (a_1^2+a_2^2+a_3^2)s^2+2(a_1b_1+a_2b_2+a_3b_3)st+(b_1^2+b_2^2+b_3^2)t^2 \\&- 2(a_1x_0+a_2y_0+a_3z_0)s- 2(b_1x_0+b_2y_0+b_3z_0)t+(x_0^2+y_0^2+z_0^2) \\&= |\bm{a}|^2s^2+2\bm{a}\cdot\bm{b}st+|\bm{b}|^2t^2-2\bm{a}\cdot\bm{r}s-2\bm{b}\cdot\bm{r}t+|r|^2 \\&\equiv \alpha s^2+ 2 \beta st + \gamma t^2 - 2 \delta s -2 \varepsilon t + \zeta \tag{2}

最後の行で,ギリシャ文字 \alpha,\beta, \cdots ,\zeta を定義しました. 順番に,アルファ,ベータ,ガンマ,デルタ,イプシロン,ゼータと読みます. さらに計算を続けると,

X^2 &= \alpha s^2+ 2 \beta st + \gamma t^2 - 2 \delta s -2 \varepsilon t + \zeta  \\&= \alpha(s+\frac{\beta t -\delta}{\alpha})^2-\frac{(\beta t-\delta)^2}{\alpha}+\gamma t^2 - 2 \varepsilon t +\zeta \\&= \alpha(s+\frac{\beta t -\delta}{\alpha})^2+(\gamma -\frac{\beta^2}{\alpha})t^2 +2(\frac{\beta \delta}{\alpha}-\varepsilon)t+\zeta -\frac{\delta^2}{\alpha} \\&= \alpha(s+\frac{\beta t -\delta}{\alpha})^2+(\gamma -\frac{\beta^2}{\alpha})\left( t+\dfrac{\dfrac{\beta \delta}{\alpha}-\varepsilon}{\gamma-\dfrac{\beta^2}{\alpha}} \right)^2 \zeta -\frac{\delta^2}{\alpha}- \dfrac{(\dfrac{\beta \delta}{\alpha}-\varepsilon)^2}{\gamma - \dfrac{\beta^2}{\alpha}} \\&= \alpha(s+\frac{\beta t -\delta}{\alpha})^2 + (t+\frac{\beta \delta - \varepsilon \alpha}{\alpha \gamma - \beta^2})^2+\zeta-\frac{\delta^2(\alpha \gamma-\beta^2)}{\alpha (\alpha \gamma-\beta^2)}-\frac{\beta^2 \delta^2 - 2 \alpha \beta \delta \varepsilon +varepsilon^2 \alpha^2}{\alpha (\alpha \gamma-\beta^2)} \\&= \alpha(s+\frac{\beta t -\delta}{\alpha})^2 + (t+\frac{\beta \delta - \varepsilon \alpha}{\alpha \gamma - \beta^2})^2+\zeta-\frac{\alpha \varepsilon^2 -2 \beta \delta \varepsilon+\gamma \delta^2}{\alpha \gamma-\beta^2} \tag{3}

と,この様になります. 最後の行の最初から二つの項は \theta をベクトル \bm{a}\bm{b} の成す角として, \alpha = |\bm{a}|^2 \neq 0 かつ, \alpha \gamma - \beta^2 = |\bm{a}|^2|\bm{b}|^2-(\bm{a}\cdot \bm{b})^2 = |\bm{a}|^2|\bm{b}|^2(1-\cos^2 \theta) = |\bm{a}|^2|\bm{b}|^2 \sin^2 \theta =|\bm{a} \times \bm{b}|^2  \neq 0 の時(つまり, \bm{a} \neq 0 かつ,ベクトル \bm{a}\bm{b} の成す角が 0\pi でない時)に,ゼロにすることができて,その時の s,t が知りたいのです.

sとtの決定

ここで, st を決定する(二乗内の値をゼロにする)行列を書きだすと,

\begin{pmatrix}\alpha & \beta \\0 & \alpha \gamma - \beta^2\end{pmatrix}\begin{pmatrix}s \\t\end{pmatrix}=\begin{pmatrix}\delta \\\varepsilon \alpha - \beta \delta\end{pmatrix} \tag{4}

逆に解いて,

\begin{pmatrix}s \\t\end{pmatrix}&=\frac{1}{\alpha(\alpha \gamma - \beta^2)}\begin{pmatrix}\alpha \gamma - \beta^2 & - \beta \\0 & \alpha\end{pmatrix}\begin{pmatrix}\delta \\\varepsilon \alpha - \beta \delta\end{pmatrix} \\&= \frac{1}{\alpha(\alpha \gamma - \beta^2)}\begin{pmatrix}(\alpha \gamma - \beta^2)\delta - (\varepsilon \alpha - \beta \delta)\beta \\\alpha(\varepsilon \alpha - \beta \delta)\end{pmatrix} \\&=\frac{1}{\alpha \gamma - \beta^2}\begin{pmatrix}\gamma\delta - \beta \varepsilon  \\\alpha \varepsilon - \beta \delta\end{pmatrix} \tag{5}

ベクトルでの表記

ここから,ベクトルを使って表現することにします.

\begin{pmatrix}s \\t\end{pmatrix}&=\frac{1}{|\bm{a} \times \bm{b}|^2}\begin{pmatrix}|\bm{b}|^2(\bm{a} \cdot \bm{r})-(\bm{a}\cdot \bm{b})(\bm{b} \cdot \bm{r}) \\|\bm{a}|^2(\bm{b} \cdot \bm{r})-(\bm{b}\cdot \bm{a})(\bm{a} \cdot \bm{r}) \end{pmatrix} \tag{6}

ここで,ベクトルの演算を練習しておきます.スカラー三重積は,

\bm{a} \cdot (\bm{b} \times \bm{c}) = \begin{vmatrix}a_1 & a_2 & a_3 \\b_1 & b_2 & b_3 \\c_1 & c_2 & c_3\end{vmatrix}=(\bm{a} \times \bm{b}) \cdot \bm{c}\tag{7}

と言うように,スカラー積とベクトル積の入れ替えができます. そして,ベクトル三重積は,

(\bm{a} \times \bm{b}) \times \bm{c}=\bm{b}(\bm{a} \cdot \bm{c})-\bm{a}(\bm{b} \cdot \bm{c})\tag{8}

ですから,これと新たなベクトル \bm{d} とのスカラー積をとって,

(\bm{a} \times \bm{b}) \times \bm{c} \cdot \bm{d} =(\bm{a} \cdot \bm{c})(\bm{b} \cdot \bm{d})-(\bm{a} \cdot \bm{d})(\bm{b} \cdot \bm{c})\tag{9}

これと,式( 6 )の右辺の上段を見比べて,

(\bm{b} \cdot \bm{b})(\bm{a} \cdot \bm{r}) - (\bm{b} \cdot \bm{r})(\bm{a} \cdot \bm{b}) &= (\bm{b} \times \bm{a}) \times \bm{b} \cdot \bm{r}\tag{10}

下段は,これの \bm{a}\bm{b} を入れ替えたものだから,式( 6 )は,

\begin{pmatrix}s \\t\end{pmatrix}&=\frac{1}{|\bm{a} \times \bm{b}|^2}\begin{pmatrix}(\bm{b} \times \bm{a}) \times \bm{b} \cdot \bm{r} \\(\bm{a} \times \bm{b}) \times \bm{a} \cdot \bm{r}\end{pmatrix} \\&=\frac{1}{|\bm{a} \times \bm{b}|^2}\begin{pmatrix}-(\bm{a} \times \bm{b}) \times \bm{b} \cdot \bm{r} \\(\bm{a} \times \bm{b}) \times \bm{a} \cdot \bm{r}\end{pmatrix} \tag{11}

となります.そして,

\bm{p} \equiv \bm{a} \times \bm{b} = \begin{pmatrix}a_2b_3-a_3b_2 \\a_3b_1-a_1b_3 \\a_1b_2-a_2b_1 \end{pmatrix}\equiv\begin{pmatrix}l \\m \\n \end{pmatrix} \tag{12}

であります. ここで,もう一つの外積の行列での表現,

-\bm{p} \times \bm{b} = -\begin{pmatrix}0 & -n & m \\n & 0 & -l \\-m & l & 0 \end{pmatrix}\begin{pmatrix}b_1 \\b_2 \\b_3 \end{pmatrix} \tag{13}

を用います.これは,三次元の列ベクトルなので, \bm{r} との内積を取る為に, 転置します.

-\bm{p} \times \bm{b} \cdot \bm{r} &= -\begin{pmatrix}b_1 & b_2 & b_3 \end{pmatrix}\begin{pmatrix}0 & n & -m \\-n & 0 & l \\m & -l & 0 \end{pmatrix}\begin{pmatrix}x_0 \\y_0 \\z_0 \end{pmatrix}\\&=\begin{pmatrix}b_1 & b_2 & b_3 \end{pmatrix}\begin{pmatrix}0 & -n & m \\n & 0 & -l \\-m & l & 0 \end{pmatrix}\begin{pmatrix}x_0 \\y_0 \\z_0 \end{pmatrix}\tag{14}

(6) の下段は,同様に \bm{a}\bm{b} を入れ替えればよく, 以上をまとめて書けば,

\begin{pmatrix}x \\y \\z\end{pmatrix}=\begin{pmatrix}a_1 & b_1 \\a_2 & b_2 \\a_3 & b_3\end{pmatrix}\begin{pmatrix}s \\t\end{pmatrix}\equiv\begin{pmatrix}x_1 \\y_1 \\z_1\end{pmatrix}\leftrightarrow\begin{pmatrix}x \\y \\z\end{pmatrix}=\begin{pmatrix}x_0 \\y_0 \\z_0\end{pmatrix} \tag{15}

の距離が最小になる解は,

\begin{pmatrix}s \\t\end{pmatrix}&=\frac{1}{|\bm{a} \times \bm{b}|^2}\begin{pmatrix}-(\bm{a} \times \bm{b}) \times \bm{b} \cdot \bm{r} \\(\bm{a} \times \bm{b}) \times \bm{a} \cdot \bm{r}\end{pmatrix} \\&= \frac{1}{|\bm{a} \times \bm{b}|^2}\begin{pmatrix}b_1 & b_2 & b_3 \\-a_1 & -a_2 & -a_3\end{pmatrix}\begin{pmatrix}0 & -n & m \\n & 0 & -l \\-m & l & 0 \end{pmatrix}\begin{pmatrix}x_0 \\y_0 \\z_0 \end{pmatrix}\tag{16}

ただし,

\begin{pmatrix}l \\m \\n \end{pmatrix}=\begin{pmatrix}a_2b_3-a_3b_2 \\a_3b_1-a_1b_3 \\a_1b_2-a_2b_1 \end{pmatrix} \tag{17}

であり,その時の最短距離 X^2 は,式 (3) の一番最後の行から,

X^2 &= \zeta-\frac{\alpha \varepsilon^2 -2 \beta \delta \varepsilon+\gamma \delta^2}{\alpha \gamma-\beta^2} \\&= |\bm{r}^2|-\frac{|\bm{a}|^2(\bm{b} \cdot \bm{r})^2-2(\bm{b} \cdot \bm{r})(\bm{a} \cdot \bm{r})(\bm{a} \cdot \bm{b})+|\bm{b}|^2(\bm{a} \cdot \bm{r})^2}{|\bm{a} \times \bm{b}|^2}

となります.以上でこの記事は終わりです. これより次元が高い場合も,いつか計算してみたいです. それでは,今日はこの辺で.