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

Time-stamp: "2016-05-31 Tue 18:17 JST hig"

情報

  • 出題:2016-05-25
  • 実行/提出期限:2016-05-31
  • 提出
    • markov01.c プログラム.
    • markov01.xlsx データとグラフを含むExcelワークシート

学習目標

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

課題

状況の説明

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

課題のタスク

  • 大注意:乱数は使いません.
  • 大注意:これまでと違って, 画面上の縦方向が\(t\)軸, 横方向が\(x\)軸です.
  1. 下の仕様のプログラムを作ろう
  2. \(T=10\)で実行してデータを得て, Excelで加工して, 横軸 t, 縦軸 \(p(1,t),p(2,t),p(3,t),p(4,t)\)の折れ線グラフを描こう (xとtの見出しを手でつけた後, 挿入>グラフ>散布図(直線とマーカー). もし横軸がxでなくtになってたら, コンテキストメニュー(右クリック)>グラフデータの選択>行/列の切り替え).
  3. 推移確率行列の固有値1の固有ベクトルである確率ベクトル\(\vec{u}_1\)を, このプログラムの出力から数値的に求めてExcelワークシート内で答えよう.
  4. Excelで, 横軸 t, 縦軸 \(d=\log|\vec{p}(t)-\vec{u}_1|\)の折れ線グラフを描こう. 答えなくていいけど, なぜこう振る舞うか説明できる?

プログラムの入力

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

プログラムの入力例

3

プログラムの出力

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

アドバイス

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

自分でチェック!

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

Useful Links

この科目の課題の一覧

このサイトのコンテンツ

QRcode to hig3.net

http://hig3.net