この記事は..
マルコフ連鎖を勉強したのでまとめてみた.
簡単な行列計算はpythonでやりました.
行列
大学では線形代数で学ぶ.高校では数Cで学ぶ.
最近数Cがなくなった,なくなっていたらしい..
こんな感じで数字を管理するもの.
3×3行列
A =
\begin{bmatrix}
a_{11} & a_{12} & a_{13}\\\
a_{21} & a_{22} & a_{23}\\\
a_{31} & a_{32} & a_{33}\end{bmatrix},
a_{ij} (i,j ={1,2,3} )
npと行列の対応表
numpy関数 | 行列 |
---|---|
np.zeros() | 零行列 |
np.eye() | 単位行列 |
arr.T arr.transpose() | 転置行列 |
np.dot() | 内積 |
np.outer() | 外積 |
おまけ | --- |
np.ones() | 全部1の行列 |
np.empty() | 空の行列 |
np.arange() | 例にしやすい行列 |
arr.reshape() | 行列の変換 |
slice,copy
少しハマった..今後遠回りしないために..
初級者はいろいろなことを勉強しないといけないから大変..
- slice:参照
- copy:コピー
array = np.array([1,2,3,4])
array_slice = array[:]
array_slice[:] = 0
print (array)
# =>[0,0,0,0]
マルコフ連鎖
厳密な定義は知らない..けど,
ある地点における事象(j)の起こる確率は,その前の結果(i)にのみ依存する.
その推移する確率を
p_{ij} = P(X_{n+1} = j | P(X_{n} = i )
と定義する.
先のA行列に以下の条件を加えると推移行列になります.
\sum_{j=1}^{n=3} a_{ij} = a_{i1} + a_{i2} + a_{i3} = 1\\(i={1,2,3} )
つまり,その前の結果(i:行)を固定して,次の起こりうる事象の総和は1になる行列.
確率行列はPの方が一般的だけどただの表記の問題なのでAで続けます.
なるほど,確かに世の中の現象に当てはめて考えることができそうだ.
感想
マルコフ連鎖を調べて見て,推移行列は量子力学などでなんとなくやったけど,具体的に数字を当てはめると面白いと思った.