質問

私は、エルゴーディックマルコフ行列の定常分布を決定するために一連の式を解決しようとしています。

つまり、マトリックスは

です
P=[0   0   0   0.5 0   0.5;
   0.1 0.1 0   0.4 0   0.4;
   0   0.2 0.2 0.3 0   0.3;
   0   0   0.3 0.5 0   0.2;
   0   0   0   0.4 0.6 0;
   0   0   0   0   0.4 0.6];
.

と一組の方程式は、下の定理からのものです。

上記の式を有効なMATLAB構文に変換する方法は?

役に立ちましたか?

解決

固定分布は、固有値1を有する固有ベクトルによって与えられます。

>> [V D] = eig( P.' ); %// note the transpose .' - we are looking for the **left** EV
>> st = V(:,1).'; %//' the stationary distribution
st =
 0.0051    0.0509    0.2291    0.6110    0.5346    0.5346
>> D(1)
 1.0000
.

他のヒント

これは@ Shaiの答えからの異なるアプローチです。

代替方法は、定常状態のためにPI * P= PI方程式を解くことから、PI_Jの合計が1つである必要があるという要件を無視します(現時点)。

小さな行列代数...
DTMC定常分布

それから私達はPIが「合計1」の要求なしにこれに対する独自の解決策を持っていないことを知っています。PIは(transpose(p)-i)のヌルスペースになければなりません。MATLABはこれが得意です。正規化後の結果(コメントの@Luismendoによって指摘されたように)を与えます。

 P=[0   0   0   0.5 0   0.5;
   0.1 0.1 0   0.4 0   0.4;
   0   0.2 0.2 0.3 0   0.3;
   0   0   0.3 0.5 0   0.2;
   0   0   0   0.4 0.6 0;
   0   0   0   0   0.4 0.6];

I = eye(size(P));

Y = null(P'-I)
PI = Y./(sum(Y))
.

チェックが簡単です。

>> PI(:)'     % Force into row vector
ans =
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
.

25段階遷移行列と比較します。

P5 = P*P*P*P*P;
P25 = P5*P5*P5*P5*P5;
>>P25 =
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
    0.0026    0.0259    0.1166    0.3109    0.2720    0.2720
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top