2018年4月19日木曜日

Matlab for Java : (10) マルコフ連鎖シミュレーション

JavaからMatlabを使ってマルコフ連鎖シミュレーションをやってみます。
    https://jp.mathworks.com/help/matlab/ref/mpower.html
    https://jp.mathworks.com/help/econ/create-and-modify-markov-chain-model-objects.html
    https://jp.mathworks.com/help/econ/visualize-markov-chain-structure-and-evolution.html


(1) データの準備
推移確率行列
double data_transition[][] = {{ 0.25, 0.25, 0.5, 0 }, { 0, 0.25, 0.5, 0.25 }, { 0.25, 0.25, 0.25, 0.25 }, { 0.25, 0.25, 0, 0.5}};
初期状態
double initial[] = {0.25, 0.25, 0.25, 0.25};

(2) 推移確率行列の可視化(有向グラフ)
これは2乗した時の、推移確率の様子を示しています。
 (3) 推移確率行列の可視化(Heat Map)
推移確率をHeat Mapで表してみます。これも2乗した時のです。
1 から 4への推移確率が低く、1への推移は低くなっています。

(4) 定常分布のシミュレーション
初期状態から世代を経て、確率分布がわかります。状態1は低く、状態3が高くなります。
5世代後の定常分布です。4世代目から動かなくなっていますので収束した状態です。
ソースコード

1 件のコメント:

  1. Thanks for sharing, nice post! Post really provice useful information!

    Giaonhan247 chuyên dịch vụ mua hộ hàng hàn quốc trên những web order hàng đức hay chia sẻ Amazon là gì, kinh nghiệm mua hàng trên amazon như thế nào và giải đáp alibaba.com là gì mua hàng như thế nào.

    返信削除