演算子は行列だ(微積編)

#はじめに
**行列**には苦手意識があったが、行列を**操作**で考え、**逆行列**を確認し**"アッ"**としたのを記事にしました
（行列を普通にやった人には、当然すぎる内容なんでしょうね）

行列計算は真面目にやると面倒なので、計算機(Julia言語が早いの)でサクっと求めて確認します。

#操作は行列だ

具体的に4枚のトランプを考え、並びを状態ベクトル$\boldsymbol{v}$で表す。
$$
\boldsymbol{v}=
\begin{bmatrix}
A \\\ 
K \\\
Q \\\
J
\end{bmatrix}
$$
3枚目を取り、一番上に乗せるシャッフル操作$\boldsymbol{S}$は
$$
\boldsymbol{S}=
\begin{bmatrix}
0 & 0 & 1 & 0 \\\ 
1 & 0 & 0 & 0 \\\
0 & 1 & 0 & 0 \\\
0 & 0 & 0 & 1
\end{bmatrix}
$$
と表せ、状態ベクトル$\boldsymbol{v}$にシャッフル操作を作用させると
$$
\boldsymbol{S}×\boldsymbol{v}=
\begin{bmatrix}
0 & 0 & 1 & 0 \\\ 
1 & 0 & 0 & 0 \\\
0 & 1 & 0 & 0 \\\
0 & 0 & 0 & 1
\end{bmatrix}
\begin{bmatrix}
A \\\ 
K \\\
Q \\\
J 
\end{bmatrix}
=\begin{bmatrix}
Q \\\
A \\\ 
K \\\
J 
\end{bmatrix}
$$
と表せ、シャッフルされた状態$\boldsymbol{v}'$が得られます。

#逆行列は元に戻す操作だ
ここでシャッフル操作$\boldsymbol{S}$の逆行列$\boldsymbol{S}^{-1}$を求めてみる。
Juliaで逆行列は`^-1`もしくは`inv関数`で簡単に計算できます。

```julia
julia> S=[0 0 1 0;
          1 0 0 0;
          0 1 0 0;
          0 0 0 1]
julia> inv(S)
4×4 Array{Float64,2}:
 0.0  1.0  0.0  -0.0
 0.0  0.0  1.0  -0.0
 1.0  0.0  0.0  -0.0
 0.0  0.0  0.0   1.0
```

$$\boldsymbol{S}^{-1}=
\begin{bmatrix}
0 & 1 & 0 & 0 \\\ 
0 & 0 & 1 & 0 \\\
1 & 0 & 0 & 0 \\\
0 & 0 & 0 & 1
\end{bmatrix}
$$
が得られました。
当然、$$\boldsymbol{S}^{-1}×\boldsymbol{v}'
=\boldsymbol{S}^{-1}×\boldsymbol{S}×\boldsymbol{v}
=\boldsymbol{E}×\boldsymbol{v}
=\boldsymbol{v}$$ですが、$\boldsymbol{S}^{-1}$に注目し、初期の$\boldsymbol{v}$に作用させれば
$$\boldsymbol{S}^{-1}×\boldsymbol{v}
=\begin{bmatrix}
0 & 1 & 0 & 0 \\\ 
0 & 0 & 1 & 0 \\\
1 & 0 & 0 & 0 \\\
0 & 0 & 0 & 1
\end{bmatrix}
\begin{bmatrix}
A \\\ 
K \\\
Q \\\
J 
\end{bmatrix}
=\begin{bmatrix}
K \\\
Q \\\ 
A \\\
J 
\end{bmatrix}$$
となり、一番上を取り3枚目に差し込む動作になっています。
これは先ほどのシャッフル操作$\boldsymbol{S}$を、**「元に戻そうとする操作」**　になるのが分かります。


　
　　　_-これを、ずっと理解しずに逆行列を凄く神秘的なものと放置してました( ；∀；)-_

#累積とかも行列だ
ちょっと煽り感の見出しを続けてますが・・・
毎月の売上げベクトル$\boldsymbol{v_{売上}}$に作用して、各月までの累積額を求める様な行列$\boldsymbol{I_{累積}}$を作ると
$$
\boldsymbol{I_{累積}}×\boldsymbol{v_{売上}}=
\begin{bmatrix}
1 & 0 & 0 & 0 \\\ 
1 & 1 & 0 & 0 \\\
1 & 1 & 1 & 0 \\\
1 & 1 & 1 & 1
\end{bmatrix}
\begin{bmatrix}
売上^{(1月)} \\\
売上^{(2月)} \\\
売上^{(3月)} \\\
売上^{(4月)} 
\end{bmatrix}=
\begin{bmatrix}
累積額^{(1月)}\\\ 
累積額^{(1月+2月)}\\\ 
累積額^{(1月+2月+3月)}\\\ 
累積額^{(1月+2月+3月+4月)}  　
\end{bmatrix}
$$
左下三角が「1」の行列で表せます。
そして先ほど同様、逆行列を求めます。

```julia
julia> N=4
julia> I=[i ≥ j ? 1 : 0 for i in 1:N , j in 1:N] #Iの表記は単位行列と被り良くないけど
4×4 Array{Int64,2}:
 1  0  0  0
 1  1  0  0
 1  1  1  0
 1  1  1  1

julia> D=inv(I)
4×4 Array{Float64,2}:
  1.0   0.0   0.0  0.0
 -1.0   1.0   0.0  0.0
  0.0  -1.0   1.0  0.0
  0.0   0.0  -1.0  1.0

```
$$
\boldsymbol{D_{差分}}=\boldsymbol{I_{累積}}^{-1}=
\begin{bmatrix}
 1 &  0 &  0 & 0 \\\ 
-1 &  1 &  0 & 0 \\\
 0 & -1 &  1 & 0 \\\
 0 &  0 & -1 & 1
\end{bmatrix}
$$
となり、先に小さく書いてしまってますが、$\boldsymbol{D_{差分}}$ は2月以降、当月と先月の**差分**を求める行列となり
また同様に$\boldsymbol{v_{売上}}$に作用させれば
$$
\boldsymbol{D_{差分}}×\boldsymbol{v_{売上}}=
\begin{bmatrix}
売上変動^{(1月-(0))} \\\
売上変動^{(2月-1月)} \\\
売上変動^{(3月-2月)} \\\
売上変動^{(4月-3月)} 
\end{bmatrix}
$$
となります。

**累積**と**差分**の関係は、ほぼ**積分**と**微分**考えられます。
$\boldsymbol{I_{累積}}$**(積分)**の逆操作(逆行列)は$\boldsymbol{D_{差分}}$**(微分)**となっているわけです


#演算子は行列だ(微積)
先ほどの$\boldsymbol{I_{累積}}$ , $\boldsymbol{D_{差分}}$を$\int dx$ , ${d}/{dx}$ と捉えます。

今度は売上げでなく$f(x)=x^2$を離散化したベクトル$\boldsymbol{fx}$に作用させ、普通に**微積**をしてみましょう。

ひとまず、$\boldsymbol{x}$を $1,2, … ,8$ の範囲で計算してみます。

```julia
julia> using Plots,LaTeXStrings
julia> N=8
julia> x_range=1:N
julia> I=[i ≥ j ? 1 : 0 for i in x_range , j in x_range] 
8×8 Array{Int64,2}:
 1  0  0  0  0  0  0  0
 1  1  0  0  0  0  0  0
 1  1  1  0  0  0  0  0
 1  1  1  1  0  0  0  0
 1  1  1  1  1  0  0  0
 1  1  1  1  1  1  0  0
 1  1  1  1  1  1  1  0
 1  1  1  1  1  1  1  1

julia> D=inv(I)
8×8 Array{Float64,2}:
  1.0   0.0   0.0   0.0   0.0   0.0   0.0  0.0
 -1.0   1.0   0.0   0.0   0.0   0.0   0.0  0.0
  0.0  -1.0   1.0   0.0   0.0   0.0   0.0  0.0
  0.0   0.0  -1.0   1.0   0.0   0.0   0.0  0.0
  0.0   0.0   0.0  -1.0   1.0   0.0   0.0  0.0
  0.0   0.0   0.0   0.0  -1.0   1.0   0.0  0.0
  0.0   0.0   0.0   0.0   0.0  -1.0   1.0  0.0
  0.0   0.0   0.0   0.0   0.0   0.0  -1.0  1.0

julia> fx=[x^2 for x in x_range]
julia> pyplot()
julia> plot(x_range,[fx , I*fx , D*fx],label=[L"x^2"  L"\int dx (x^2)"  L"{d}/{dx} (x^2)"],xlims=(0,9),ylims=(0,30),m=:circle,ms=5,legendfontsize=11)

```
結果プロット
![Figure_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366073/7d2215a6-e042-feed-9dc9-294917ea8dd7.png)

おっ、それっぽいグラフです。
最後、`plot関数`に`fx , I*fx , D*fx`と一気に入れてしまいましたが、各作用の結果は
$$
\boldsymbol{fx}=\boldsymbol{(x^2)}=
\begin{bmatrix}
 1  \\\ 
 4  \\\
 9  \\\
16  \\\
25  \\\
36  \\\
49  \\\
64  
\end{bmatrix} ,　
\boldsymbol{I×fx}=\int dx(x^2)=\frac{x^3}{3}=
\begin{bmatrix}
 1  \\\ 
 5  \\\
14  \\\
30  \\\
55  \\\
91  \\\
140  \\\
204 
\end{bmatrix}
 ?\   ,　
\boldsymbol{D×fx}=\frac{d}{dx}(x^2)=2x=
\begin{bmatrix}
 1  \\\ 
 3  \\\
 5  \\\
 7  \\\
 9  \\\
11  \\\
13  \\\
15  
\end{bmatrix}
?
$$
ん、なんか変。
あー、累積・差分として計算はあってるが、今回離散化幅 ($dx$) を 1 としているので微積にはデカすぎました。
$dx$を小さくして再び計算しましょう。

```julia
julia> dx=2^-8
0.00390625
julia> x_range=dx:dx:N
julia> I=[i ≥ j ? 1 : 0 for i in x_range , j in x_range]
julia> D=inv(I)
julia> fx=[x^2 for x in x_range]
julia> plot(x_range,[fx , I*dx*fx , D/dx*fx , D^2/dx^2*fx],label=[L"x^2"  L"\int dx (x^2)"  L"{d}/{dx} (x^2)" L"{d^2}/{dx^2} (x^2)"],xlims=(0,8),ylims=(0,30),legendfontsize=11)
```
結果プロット
![Figure_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/366073/49abddae-3d2f-569e-3da4-d6f3cded0c63.png)

だいぶ細かく刻んだので、良さげではないでしょうか。ついでに2回微分も追加してます。

#見比べてまとめ
さて、先ほど $dx$ を考慮する際、`plot`関数に
`fx , I*dx*fx , D/dx*fx , D^2/dx^2*fx`　と入れています。
…
$fx\ ,\ \int dx\ (fx)\ ,\ \frac{d}{dx}(fx)\ ,\ \frac{d^2}{dx^2}(fx)$　と完全一致です！

なので さっきの訂正、$\boldsymbol{I_{累積}}$⇒「$\int$」、$\boldsymbol{D_{差分}}$⇒「${d}$」でよくて

- 積分　⇒　$\boldsymbol{I_{累積}}$ × $dx$ × $\boldsymbol{fx}$  ⇒ $\int dx (fx)$
- 微分　⇒　$\boldsymbol{D_{差分}}$/ $dx$ × $\boldsymbol{fx}$  ⇒ $\frac{d}{dx} (fx)$
- 二階微分　⇒　$\boldsymbol{D_{差分}^2}$/ $dx^2$ × $\boldsymbol{fx}$  ⇒ $\frac{d^2}{dx^2} (fx)$

**演算子は行列だ** よく出来てるね。
ありがとうございました。

---
※タイトルは[EMANの物理学](https://eman-physics.net/)内の[量子力学ページ](https://eman-physics.net/quantum/contents.html)の記事タイトルからです。
記事読んでたが、俺 行列なんも分らんと思って調べててこうなった。量子力学でのエルミート行列とか今回関係ない。