物理のかぎしっぽ 記事ソース/点と面の距離(非正方行列の逆行列についての一つの提案)

記事ソース/点と面の距離(非正方行列の逆行列についての一つの提案)

これはrst2hooktailの記事ソース保存・変換用です(詳細).

コンバート

最近コンバートされた結果: HTMLPDFTeX

公開・更新メニュー ▼▲

記事ソースの内容

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

正方行列でない行列の逆行列とは、どんなものか。という疑問の答えの一つがこれです。
注意として、世間一般で言われるランクが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$ が最短距離を示す時の $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の決定
===================


ここで、 $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}
\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{##}
</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-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:inverseOfNonSquareMatrix@@
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新の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.012 sec.