物理のかぎしっぽ 記事ソース/面と点の距離(非正則行列の逆行列) のバックアップ差分(No.11)

#rst2hooktail_source
 ============================================================
 面と点の距離(非正則行列の逆行列)
 ============================================================
 
 正方行列でない行列の逆行列とは、どんなものか。
 という疑問の答えの一つがこれです。
 
 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$ が最短距離を示す時の $s$ と $t$ の値を求めます。
 つまり、
 
 .. [*] 右上の $ T $ は、転置を表します。
 
 <tex>
 \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{##}
 </tex>
 
 が最も近づく時を考えます。
 
 それには、距離 $X^2$ が最小値を取る時を考えればよいです。
 つまりは、 $s,t$ の二次式なので、平方完成を行います。
 実際に計算してみると、
 
 <tex>
 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{##}
 </tex>
 
 最後の行で、ギリシャ文字 $\alpha,\beta, \cdots ,\zeta$ を定義しました。
 順番に、アルファ、ベータ、ガンマ、デルタ、イプシロン、ゼータと読みます。
 さらに計算を続けると、
 
 <tex>
 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{##}
 </tex>
 
 と、この様になります。
 最後の行の最初から二つの項は $\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$ を決定する(二乗内の値をゼロにする)行列を書きだすと、
 
 <tex>
 \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{##}
 </tex>
 
 逆に解いて、
 
 <tex>
 \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{##}
 </tex>
 
 ここから、ベクトルを使って表現することにします。
 
 <tex>
 \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{##}
 </tex>
 
 ここで、ベクトルの演算を練習しておきます。スカラー三重積は、
 
 <tex>
 \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{##}
 </tex>
 
 と言うように、スカラー積とベクトル積の入れ替えができます。
 そして、ベクトル三重積は、
 
 <tex>
 (\bm{a} \times \bm{b}) \times \bm{c}=\bm{b}(\bm{a} \cdot \bm{c})-\bm{a}(\bm{b} \cdot \bm{c})
 \tag{##}
 </tex>
 
 ですから、これと新たなベクトル $\bm{d}$ とのスカラー積をとって、
 
 <tex>
 (\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{##}
 </tex>
 
 これと、式( $6$ )の右辺の上段を見比べて、
 
 <tex>
 (\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{##}
 </tex>
 
 下段は、これの $\bm{a}$ と $\bm{b}$ を入れ替えたものだから、式( $6$ )は、
 
 <tex>
 \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{##}
 </tex>
 
 となります。そして、
 
 <tex>
 \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{##}
 </tex>
 
 であります。
 ここで、もう一つの外積の行列での表現、
 
 
 <tex>
 -\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{##}
 </tex>
 
 を用います。これは、三次元の列ベクトルなので、 $\bm{r}$ との内積を取る為に、
 転置します。
 <tex>
 -\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}\\
 \end{pmatrix}
 \begin{pmatrix}
 x_0 \\
 y_0 \\
 z_0 
 \end{pmatrix}
 \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{##}
 </tex>
 
 式 $(6)$ の下段は、同様に $\bm{a}$ と $\bm{b}$ を入れ替えればよく、
 以上をまとめて書けば、
 
 <tex>
 \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{##}
 </tex>
 
 の距離が最小になる解は、
 
 <tex>
 \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{##}
 </tex>
 
 ただし、
 <tex>
 \begin{pmatrix}
 l \\
 m \\
 n 
 \end{pmatrix}
 =
 \begin{pmatrix}
 a_2b_3-a_3b_2 \\
 a_3b_1-a1_b_3 \\
 a_3b_1-a_1b_3 \\
 a_1b_2-a_2b_1 
 \end{pmatrix}
  \tag{##}
 </tex>
 
 であり、その時の最短距離 $X^2$ は、式 $(3)$ の一番最後の行から、
 
 <tex>
 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}
 </tex>
 
 となります。これより次元が高い場合も、いつか計算してみたいです。
 それでは、今日はこの辺で。
 
 @@author:クロメル@@
 @@accept:2010-12-28@@
 @@category:物理数学@@
 @@id:variantInverseMatrix@@
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji Powered by PHP 5.3.29 HTML convert time to 0.011 sec.