私はthe cat and mouse Markov model on wikipediaを読んで、そして経験的に分析結果を確認するために、いくつかのジュリアコードを記述することを決定しました:期待寿命
P = [
0 0 0.5 0 0.5 ;
0 0 1 0 0 ;
0.25 0.25 0 0.25 0.25;
0 0 0.5 0 0.5 ;
0 0 0 0 1
]
prob_states = transpose([0.0, 1, 0, 0, 0])
prob_end = [0.0]
for i in 1:2000
prob_states = prob_states * P
prob_end_new = (1 - sum(prob_end)) * prob_states[end]
push!(prob_end, prob_end_new)
println("Ending probability: ", prob_end_new)
println("Cumulative: ", sum(prob_end))
end
println("Expected lifetime: ", sum(prob_end .* Array(1:2001)))
ここP
はprob_states
は確率である、遷移行列であり、 prob_end
は、各ステップにおける終了の確率の配列である(例えば、prob_end[3]
はステップ3で終了の確率である)。
このスクリプトの結果によると、予想されるマウスの寿命は約4.3であり、分析結果は4.5です。スクリプトは私には意味があるので、どこが間違っているのか本当に分かりません。誰でも助けてくれますか?
P.S.反復回数を1桁大きくすると、ほとんど変わりません。
私はMを実行したのHadoopの貢献に取り組んでいますが/ RのMonte Carlo Pi推定値が何回も消えてしまったので、Pi trullyの値が3.12 –