MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/
はじめに
の、
MATLAB,Python,Scilab,Julia比較 第2章 その44【グラム行列①】
MATLAB,Python,Scilab,Julia比較 第2章 その45【グラム行列②】
を書き直したもの。
正規方程式を導出するまでの説明。
グラム行列について説明とその証明を行う。
ロードマップ&数式【再掲】
今回はグラム行列について。
ロードマップで位置づけを確認しておくとよいだろう。
グラム行列の定義
まずはグラム行列の定義から。
複雑な話は無く、行列\(A\)と\(A\)の転置行列を掛けたものがグラム行列。
数式で表現すると以下になる。
\(
G=A^TA
\)
これだけなので定義ってほどの話ではないが、
重要なのは性質の方。
グラム行列の性質
グラム行列は対称行列になるという性質がある。
試しに計算してみよう。
\(
\begin{eqnarray}
A&=&
\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \\
\end{bmatrix}\\
A^TA&=&
\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \\
\end{bmatrix}^T
\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \\
\end{bmatrix}=
\begin{bmatrix}
35 & 44 \\
44 & 56 \\
\end{bmatrix}\\
AA^T&=&
\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \\
\end{bmatrix}
\begin{bmatrix}
1 & 2 \\
3 & 4 \\
5 & 6 \\
\end{bmatrix}^T=
\begin{bmatrix}
5 & 11 & 17 \\
11 & 25 & 39 \\
17 & 39 & 61 \\
\end{bmatrix}
\end{eqnarray}
\)
このように対称行列になる。
グラム行列が対称行列であることの証明
グラム行列が対称行列であることを証明してみる。
まず、以下の行列\(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の行列であり、つまり、つまりどんな行列でも当てはまる。
この行列を行ベクトルに分解する。
\(
\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}
\)
というわけでグラム行列は対称行列になる。
まとめ
- グラム行列の定義について説明。
- グラム行列の性質について説明。
- 対称行列になる。
- グラム行列が対称行列になることの証明。
MATLAB、Python、Scilab、Julia比較ページはこちら
コメント