マルコフ連鎖の数値計算(markov01) - 課題p061

Time-stamp: "2020-05-18 Mon 14:22 JST hig"

情報

  • 出題:2020-05-19
  • 実行/提出期限:2020-06-02 15:40:00
  • 提出
    • markov01.c プログラム.
    • markov01.xlsx データとグラフを含むExcelワークシート
    • markov01.txt 答を記述したテキストファイル

学習目標

  • マルコフ連鎖の初期分布と推移確率行列から, 分布の時間発展が計算できる.
  • 分布の時間発展のグラフがExcelで描ける.

課題

状況の説明

状態空間 \(S=\{0,1,2,3\}\) 上のマルコフ連鎖を考える. 初期分布を \( \vec{p}(0)= \begin{pmatrix} 1\\ 0\\0\\0 \end{pmatrix} \) とする. 転置推移確率行列は, 各自SUBMISSIONの課題提出場所付近から得ること.

課題のタスク

  • 大注意:乱数は使いません.
  • 大注意:これまでと違って, 画面上の縦方向が\(t\)軸, 横方向が\(x\)軸です.
  1. 下の仕様のプログラムを作ろう
  2. \(T=100\)で実行してデータを得て, Excelで加工して, 横軸 t, 縦軸 \(p(0,t),p(1,t),p(2,t),p(3,t)\)の(4本の)折れ線グラフを(重ねて)描こう. グラフの描き方は ガイド> CSVデータからExcelでグラフ作成参照 (xとtの見出しを手でつけた後, 挿入>グラフ>散布図(直線とマーカー). もし横軸がtでなくxになってたら, コンテキストメニュー(右クリック)>グラフデータの選択>行/列の切り替え).
  3. グラフを目で見たところ\(\vec{q}=\lim_{t\rightarrow+\infty}\vec{p}(t)\)が存在するなら, 簡単な有理数のベクトルとして予想して, markov01.txt で答えよう. \(\vec{q}\)は定常分布かどうか手計算で厳密に判定してmarkov01.txtで答えよう.
  4. これは今回はやらなくていい. 今後の別の課題, またはレポートのときに. Excelで, 横軸 t, 縦軸 \(d(t)=\log|\vec{p}(t)-\vec{q}|\)の1本の折れ線グラフをmarkov01.xlsx内で描き, (\(t\)が中間程度でグラフが直線になっているときの)傾きから, 転置推移確率行列の第2固有値の絶対値を求め, markov01.txt内で答えよう.
    • Excelのセル内に入力する式は, =ln(sqrt((p1-q1)^2+(p2-q2)^2+…+(pM-qM)^2)), Mは状態の個数.

プログラムの入力

  • 最終時刻T(0以上の整数)

プログラムの入力例

3

プログラムの出力

  • 1行目に#T=に続いて 最終時刻\(T\)
  • 2行目にコンマで区切って, 時刻t=0の\(t, p_0,p_1,p_2,p_3,\ldots,p_M,\)
  • 3行目にコンマで区切って, 時刻t=1の\(t, p_0,p_1,p_2,p_3,\ldots,p_M,\)
  • T+1行目にコンマで区切って, 時刻t=Tの\(t, p_0,p_1,p_2,p_3,\ldots,p_M,\)

プログラムの出力例

#T=3
0,1.0,0.0,0.0,0.0,
1,1.0,0.0,0.0,0.0,
2,1.0,0.0,0.0,0.0,
3,1.0,0.0,0.0,0.0,

アドバイス

  • 定常分布の固有値は…
  • 極限分布が存在するならそれは定常分布.
  • プログラムはサンプルがかなり参考になると思います.

自分でチェック!

  • 確率ベクトルの満たす性質って何だっけ?

このサイトのコンテンツ

QRcode to hig3.net

http://hig3.net