マルコフ連鎖の母期待値の数値計算(p051-markovexpect04)
情報
- 出題:2021-05-17
- 実行/提出期限:2021-05-24 14:00:00
- 提出
- markovexpect04.c プログラム
- markovexpect04.xlsx 結果のデータとグラフ
学習目標
- マルコフ連鎖で母期待値の時間変化を計算するプログラムを書ける.
課題
状況の説明
課題markov01と同じ状況を考える. 転置推移確率行列は新たに取得する.
課題のタスク
- 課題markov01で作成したプログラム または解答のプログラム を改造して, 時刻ごとに母期待値 \(\mathrm{E}[X(t)^2]\),母分散\(\mathrm{V}[X(t)]\), 母比率\(p=P(X(t)>1)\)を計算する, 仕様の通りのプログラムを作成しよう.
-
30 0.4 0.6 0.0 0.0
30 0.4 0.3 0.2 0.1
の2種類の入力で実行し, 横軸t, 縦軸母期待値or母分散or母比率で別々のシート(Excelって1個のファイルに複数のシートを持てるよね)にグラフを描こう.
プログラムの入力
- 最終時刻T(0以上の整数)
- t=0での初期分布ベクトルの成分p[0] p[1] ... p[m-1](m個の小数)
プログラムの入力例
3 0.0 1.0 0.0 0.0
プログラムの出力
- 1行目に#T=に続いて 最終時刻\(T\)
- 2行目にコンマで区切って, 時刻t=0の\(t, p_0,p_1,p_2,\ldots,p_{m-1},\mathrm{E}[X(T)^2]\),母分散\(\mathrm{V}[X(T)]\),母比率\(p\)
- 3行目にコンマで区切って, 時刻t=1の\(t, p_0,p_1,p_2,\ldots,p_{m-1},\mathrm{E}[X(T)^2]\),母分散\(\mathrm{V}[X(T)]\),母比率\(p\)
- …
- T+2行目にコンマで区切って, 時刻t=Tの\(t, p_0,p_1,p_2,\ldots,p_{m-1},\mathrm{E}[X(T)^2]\),母分散\(\mathrm{V}[X(T)]\),母比率\(p\)
プログラムの出力例
小数点以下の桁数は気にしないでいいです.#T=3 0,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000 1,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000 2,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000 3,0.000000,1.000000,0.000000,0.000000,1.000000,0.000000,0.000000
アドバイス
- 「単純な」マルコフ連鎖(w06.pdf(--p.15))でないケースです. 違ったこと(w06.pdf(p.16--))が起きます. 動画L06-04, L06-05参照.
- 母期待値等の計算は,
void measures_dist(double p[],int m, int t)
内部のみの修正で行うことをお奨めします. - それ以外に, (main)初期分布の入力, (multiply_transf)行列の変更,の修正が必要です.
- 母分散の計算は, 公式\(\mathrm{V}[X(t)]=\mathrm{E}[X(t)^2]-\mathrm{E}[X(t)]^2\)を使うのがいいでしょう.
- 標本ナントカじゃなく母ナントカなのでご注意. \(m=4\)って標本サイズじゃなくて母分布の量だよね. 標本抽出してるわけじゃないからもちろんそうなんですけど.
- 与える初期分布 p[]={0,1,0.2,0.3,0.4} とかの時に正しい母期待値, 母分散, 母比率=確率 は数式で手計算できるわけじゃん? それと同じ結果が出力されるかチェックすれば?