マルコフ連鎖の分布の時間発展の数値計算(markov02) - 課題p041

Time-stamp: "2018-05-14 Mon 15:41 JST hig"

情報

  • 出題:2018-05-15
  • 実行/提出期限:2018-05-15
  • 提出
    • markov02.c プログラム
    • markov02.R R Script
    • markov02.docx RStudioのレポート

学習目標

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

課題

状況の説明

状態空間 \(S=\{x\}=\{0,1,2,3\}\) 上のマルコフ連鎖を考える. 転置推移確率行列\(M\)は, 各自Learn Math Moodleの課題提出場所付近から得ること.

課題のタスク

  • 大注意:乱数は使いません.
  • 大注意:これまでと違って, 画面(CSVファイル)の縦方向が\(t\)軸, 横方向が\(x\)軸です.
  1. 下の仕様のプログラムを作ろう.
  2. 初期分布 \( \vec{p}(0)= \begin{pmatrix} 0\\ 1\\0\\0 \end{pmatrix} \), \(T=30\)で実行してデータを得て, RStudioで, 横軸 t, 縦軸 \(p(0,t),p(1,t),p(2,t),p(3,t)\)の(4本の)折れ線グラフを重ねて描こう. R Scriptはサンプル参照. RStudioの操作方法はガイド参照. 極限分布\(\lim_{t\rightarrow+\infty}\vec{p}(t)\)があるなら記録しよう. ただしこれは提出しない.
  3. 初期分布 \( \vec{p}(0)= \begin{pmatrix} 1\\ 0\\0\\0 \end{pmatrix} \), \(T=100\)で再度実行してデータを得て, RStudioで, 横軸 t, 縦軸 \(p(0,t),p(1,t),p(2,t),p(3,t)\)の(4本の)折れ線グラフを重ねて描こう.
  4. 極限分布が存在するなら, 数値から, 簡単な有理数成分のベクトルとして予想して, markov02.R 内で答えよう. \(\vec{q}\)は定常分布かどうか判定して書こう. さっきの極限分布らしきものと同じか? ほかの初期分布で試してみてもよい. また, Mathematica や Wolfram Alpha で\(M\)の固有値固有ベクトルを求めてみるのも参考になる.
  5. 横軸 t, 縦軸 \(d=\log|\vec{p}(t)-\vec{q}|\)の1本のグラフをmarkov02.R内で描き, (\(t\)が中間程度でグラフが直線になっているときの)傾きをmarkov02.R内で答えよう.

プログラムの入力

  • t=0での初期分布ベクトルの成分p[0] p[1] ... p[m-1](m個の小数)
  • 最終時刻T(0以上の整数)

プログラムの入力例

1.0 0.0 0.0 0.0
3

プログラムの出力

  • 1行目に#T=に続いて 最終時刻\(T\)
  • 2行目に文字列t,p0,p1,p2,p3
  • 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
t,p0,p1,p2,p3,
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