MATLAB,Python,Scilab,Julia比較 第2章 その45【グラム行列②】

MATLAB,Python,Scilab,Julia比較 第2章 その45【グラム行列②】 数値計算
MATLAB,Python,Scilab,Julia比較 第2章 その45【グラム行列②】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia2-backnumber/

はじめに

正規方程式を導出するまでの説明。
引き続きグラム行列についての話で、今回は証明の話になる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

ロードマップ【再掲】

太郎くん
太郎くん

まずはロードマップを再掲。
グラム行列のところだね。

正規方程式に至る道、二次形式、対称行列、二次形式の微分、グラム行列、二乗和誤差、正規方程式
フクさん
フクさん

そして、今回は、グラム行列がなぜ対称行列になるのかの証明だ。

太郎くん
太郎くん

なんかめんどくさそう・・・。

フクさん
フクさん

まぁ、完璧に理解する必要はない。
こういった流れで証明されてるんだなってのだけ拾えればOKだろう。

太郎くん
太郎くん

そういうのは得意だ!

グラム行列が対称行列であることの証明

フクさん
フクさん

まず、以下の行列\(A\)があるとする。

\(
A=
\begin{bmatrix}
a_{11} & a_{12} & \dots & a_{1n} \\
a_{21} & a_{22} & \dots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \dots & a_{mn} \\
\end{bmatrix}
\)

太郎くん
太郎くん

m×nの行列があるってことだね。
つまりどんな行列でもOKってことか。

フクさん
フクさん

この行列を行ベクトルに分解する。

\(
\begin{eqnarray}
a_1&=&
\begin{bmatrix}
a_{11} & a_{12} & \dots &a_{1n}\\
\end{bmatrix}\\
a_2&=&
\begin{bmatrix}
a_{21} & a_{22} & \dots &a_{2n}\\
\end{bmatrix}\\
\vdots \\
a_2&=&
\begin{bmatrix}
a_{m1} & a_{m2} & \dots &a_{mn}\\
\end{bmatrix}\\
\end{eqnarray}
\)

太郎くん
太郎くん

なるほど。
確かにそういう分解はできそうだね。

フクさん
フクさん

これを前提に\(AA^T\)の式を組むと以下になる。

\(
\begin{eqnarray}
AA^T&=&
\begin{bmatrix}
a_1 \\ a_2 \\ \vdots \\ a_{m}\\
\end{bmatrix}
\begin{bmatrix}
a_1^T & a_2^T & \dots & a_{m}^T\\
\end{bmatrix}\\&=&
\begin{bmatrix}
a_1a_1^T & \color{red}{a_1a_2^T} & \dots & a_1a_m^T\\
\color{red}{a_2a_1^T} & a_2a_2^T & \dots & a_2a_m^T\\
\vdots & \vdots & \ddots & \vdots \\
a_ma_1^T & a_ma_2^T & \dots & a_ma_m^T\\
\end{bmatrix}
\end{eqnarray}
\)

太郎くん
太郎くん

なんかすさまじいことになってる・・・。

フクさん
フクさん

対称行列であれば、
赤文字で書いた\(\color{red}{a_1a_2^T}\)と\(\color{red}{a_2a_1^T}\)が等しいはず。

太郎くん
太郎くん

なるほど。
さらにそこで等しいことが証明できれば、他の対称位置の要素も等しいはずってことか。

\(
\begin{eqnarray}
a_1a_2^T&=&
\begin{bmatrix}
a_{11} & a_{12} & \dots a_{1n}
\end{bmatrix}
\begin{bmatrix}
a_{21} & a_{22} & \dots a_{2n}
\end{bmatrix}^T\\&=&
a_{11}a_{21}+a_{12}a_{22}+\dots+a_{1n}a_{2n}\\
a_2a_1^T&=&
\begin{bmatrix}
a_{21} & a_{22} & \dots a_{2n}
\end{bmatrix}
\begin{bmatrix}
a_{11} & a_{12} & \dots a_{1n}
\end{bmatrix}^T\\&=&
a_{11}a_{21}+a_{12}a_{22}+\dots+a_{1n}a_{2n}\\
∴ a_1a_2^T&=&a_2a_1^T
\end{eqnarray}
\)

フクさん
フクさん

というわけでグラム行列は対称行列になる。

太郎くん
太郎くん

\(A\)とか\(a\)しかない数式とか凄まじいな・・・。

太郎くん
太郎くん

まぁ、証明のイメージはわかったかな。

まとめ

フクさん
フクさん

まとめだよ。

  • グラム行列が対称行列になることを証明。
    • m×nの行列を行ベクトルに分解してからグラム行列の演算をさせる。
    • 演算結果の対称部をピックアップして等しいことを証明する。

バックナンバーはこちら。

コメント

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