大きな状態空間のマルコフ連鎖の数値計算(markovpde01) - 課題p062

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

情報

  • 出題:2016-06-01
  • 実行/提出期限:2016-06-08
  • 提出
    • markovpde01.c プログラム.
    • markovpde01.xlsx データとグラフを含むWxcelワークシート

学習目標

  • マルコフ連鎖の状態空間が大きいとき, 推移確率行列\(M\)の規則性を利用して, 「\(M\)を分布にかける」関数をかける

課題

状況の説明

この課題番号の近くの

状態空間 \(S=\{1,2,3,\ldots,m\}\) 上のマルコフ連鎖を考える.

\(m\)の値と推移確率行列は, 各自RaMMoodleの提出場所付近から得ること.

初期分布を \( p(x,0)= \begin{cases} 1 & (x=10)\\ 0 & (\text{他})\\ \end{cases} \) とする.

課題のタスク

大注意:乱数は使いません.

大注意:これまでと違って, 画面上の縦方向が\(t\)軸, 横方向が\(x\)軸です.

  • 下の仕様のプログラムを作ろう. ただし, \(m\times m\)の行列を書かずに, \(M\)の規則性を利用して関数 multiply_trans を書こう. 2-4行分くらい例外扱いしないといけないでしょう.
  • Excelで, グラフ(散布図)を使って, 横軸 x, 縦軸 p, で, \(p(x,t)\)の \(t=0,1,2,\ldots,30\) の31本の折れ線グラフを描こう(xとtの見出しを手でつけた後, 挿入>グラフ>散布図(直線とマーカー). もし横軸がxでなくtになってたら, コンテキストメニュー(右クリック)>グラフデータの選択>行/列の切り替え).

プログラムの入力

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

プログラムの入力例

3

プログラムの出力

  • 1行目に#T=に続いて 最終時刻\(T\)
  • 2行目にコンマで区切って, 時刻t=0の\(t, p_1,p_2,p_3,\ldots,p_m,\).ただし, 小数点以下15桁まで表示.
  • 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,0.0,0.0,&hellip,0.0,0.0,
  1,0.0,0.0,&hellip,0.0,0.0,
  2,0.0,0.0,&hellip,0.0,0.0,
  3,0.0,0.0,&hellip,0.0,0.0,

アドバイス

  • 以前にやった授業内Quiz参照.

自分でチェック!

Useful Links

この科目の課題の一覧

このサイトのコンテンツ

QRcode to hig3.net

http://hig3.net