データサイエンスのための線形代数 第10回 行列の加法と乗法

:::note info
本記事は数学講座[3.3 行列の加法と乗法](https://www.matongxue.com/lessons/520/parts/588)を勉強して投稿したメモです。詳細は元の素晴らしい講座のページをチェックしてください。
:::

# 同型行列と行列の等式

行数も列数も同じである2つの行列を、$\color{blue}{同型行列}$と呼びます。

もし$A=(a_{ij})$と$B=(b_{ij})$が同型行列であり、それぞれの対応する要素がすべて等しい場合、行列Aと行列Bは等しいと言い、$A=B$に記します。

# 行列の加法

2つの$m\times n$行列$A=(a_{ij})$と$B=(b_{ij})$がある場合、行列AとBの和は$A+B$と表記され、以下のように定義されます：

```math  
A+B=\begin{pmatrix}a_{11}+b_{11}&a_{12}+b_{12}&...&a_{1n}+b_{1n}\\a_{21}+b_{21}&a_{22}+b_{22}&...&a_{2n}+b_{2n}\\
...&...&&...\\a_{m1}+b_{m1}&a_{m2}+b_{m2}&...&a_{mn}+b_{mn}\end{pmatrix}
```

行列の加法前提条件：$A=(a_{ij})$と$B=(b_{ij})$が同型行列

```math  
\begin{array}{c|c}
    \hline
    \\
    \quad 交換法則\quad&\quad A+B=B+A\quad\\
    \quad 結合法則\quad&\quad (A+B)+C=A+(B+C)\quad\\
    \\
    \hline
\end{array}
```

# 行列のスカラー倍

行列のスカラー倍と[ベクトルのスカラー倍](https://qiita.com/Junlee/items/1fb984bb55291c7f771d#%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E3%82%B9%E3%82%AB%E3%83%A9%E3%83%BC%E5%80%8D)の規則が同じです。

定数$k$と行列$A$のスカラー倍：

```math 
kA=Ak=
\begin{pmatrix}
    ka_{11}&ka_{12}&\cdots&ka_{1n}\\
    ka_{21}&ka_{22}&\cdots&ka_{2n}\\
    \cdots&\cdots& &\cdots\\
    ka_{m1}&ka_{m2}&\cdots&ka_{mn}\end{pmatrix}
```
行列のスカラー倍は以下の法則があります。($A,B$が同型行列、$\lambda、\mu$が定数)

```math 
\begin{array}{c|c}
    \hline
    \\
    \quad 結合法則\quad&\quad (\lambda\mu) A=\lambda(\mu A)\quad\\
    \\
    \quad 分配法則\quad&\quad \begin{aligned}(\lambda+\mu) A=\lambda A+\mu A\\\lambda(A+B)=\lambda A+\lambda B\end{aligned}\quad\\
    \\
    \hline
\end{array}
```

# 行列の乗法の合法性

行列$A$と$B$の乗算できる条件が：
- $A$が$m×n$の行列、$B$が$n×p$の行列
- 乗算した結果が$m×p$の行列

以下の例の通り：
<img src ="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3327130/485ec7f1-2ef8-79df-dbc6-1dbdd980c598.png" width="480" >

# 行列の乗法の行の視点と列の視点

- 行の視点から
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3327130/81f8f7f4-cba3-9ece-7725-d794bf953abc.png)

以下のような行ベクトルと行列があります：

```math  
\boldsymbol{x}=\begin{pmatrix}x_1&x_2&\cdots&x_m\end{pmatrix},\quad \boldsymbol{A}=\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\
               a_{21}&a_{22}&\cdots&a_{2n}\\
               \vdots&\quad&\quad&\vdots\\
               a_{m1}&a_{m2}&\cdots&a_{mn}
\end{pmatrix}
```

この形は、行の視点から計算するのがふさわしいです。

```math  
\boldsymbol{x}\boldsymbol{A}=\begin{pmatrix}\color{blue}{x_1}&\color{blue}{x_2}&\cdots&\color{blue}{x_m}\end{pmatrix}
\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\
               a_{21}&a_{22}&\cdots&a_{2n}\\
               \vdots&\quad&\quad&\vdots\\
               a_{m1}&a_{m2}&\cdots&a_{mn}
    \end{pmatrix}=
```

```math  
\color{blue}{x_1}\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\end{pmatrix}+
\color{blue}{x_2}\begin{pmatrix}a_{21}&a_{22}&\cdots&a_{2n}\end{pmatrix}+\cdots+
\color{blue}{x_m}\begin{pmatrix}a_{m1}&a_{m2}&\cdots&a_{mn}\end{pmatrix}
```

- 列の視点から
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3327130/47716704-c067-0bd6-c31f-7c4f886d0ab2.png)

以下のような行列と列ベクトルがあります：

```math  

\boldsymbol{A}=\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\
               a_{21}&a_{22}&\cdots&a_{2n}\\
               \vdots&\quad&\quad&\vdots\\
               a_{m1}&a_{m2}&\cdots&a_{mn}
\end{pmatrix},\quad \boldsymbol{x}=\begin{pmatrix}x_1\\x_2\\\vdots\\x_n\end{pmatrix}
```

この形は、列の視点から計算するのがふさわしいです。

```math  

\boldsymbol{A}\boldsymbol{x}=\begin{pmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\
               a_{21}&a_{22}&\cdots&a_{2n}\\
               \vdots&\quad&\quad&\vdots\\
               a_{m1}&a_{m2}&\cdots&a_{mn}
\end{pmatrix}
\begin{pmatrix}\color{blue}{x_1}\\\color{blue}{x_2}\\\vdots\\\color{blue}{x_n}\end{pmatrix}=
```

```math  
\color{blue}{x_1}\begin{pmatrix}a_{11}\\a_{21}\\\vdots\\a_{m1}\end{pmatrix}
+\color{blue}{x_2}\begin{pmatrix}a_{12}\\a_{22}\\\vdots\\a_{m2}\end{pmatrix}
+\cdots+
\color{blue}{x_n}\begin{pmatrix}a_{1n}\\a_{2n}\\\vdots\\a_{mn}\end{pmatrix}
```
# 行列の乗法の定義（内積の視点）

$A=(a_{ij})$が$m\times s$行列であり、$B=(b_{ij})$が$s\times n$行列である場合、行列AとBの積を$AB$と定義し、以下のようになります：

$AB=C$であり、$C=(c_{ij})$は$m\times n$行列であり、各要素$c_{ij}$は次のように計算されます：

```math  
c_{ij}=\boldsymbol{a}_{i*}\cdot\boldsymbol{b}_{*j}=a_{i1}b_{1j}+a_{i2}b_{2j}+...+a_{is}b_{sj}=\displaystyle \sum_{k=1}^s a_{ik}b_{kj}
```

```math  
(i=1,\cdots,m;j=1,\cdots,n)
```

具体的な計算例は以下の通り：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3327130/944c7f22-c8b3-1785-4f3a-9b8b15e1f830.png)

# 行列の乗法の演算規則


```math  
\begin{array}{c|c}
    \hline
    \\
    \quad 交換律\quad&\quad 必ずしも成立しない\quad\\
    \quad スカラー倍交換律\quad&\quad \lambda(AB)=(\lambda A)B=A(\lambda B)（\lambdaが定数）\quad\\
    \quad 結合律\quad&\quad (AB)C=A(BC)\quad\\
    \quad 配分律\quad&\quad A(B+C)=AB+AC\quad\\
    \\
    \hline
\end{array}
```

# 補足

## ベクトルと行列の違い

- **ベクトル**から見れば同じものです。両方とも３次元ベクトルです：
```math 
\begin{pmatrix}1\\2\\3\end{pmatrix}=\begin{pmatrix}1&2&3\end{pmatrix}
```

- **行列**から見たら$3×1 \color{red}{≠}  1×3$の行列：
```math 
\begin{pmatrix}1\\2\\3\end{pmatrix}\color{red}{≠}\begin{pmatrix}1&2&3\end{pmatrix}
```

# 参考情報

https://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E3%81%AE%E4%B9%97%E6%B3%95