暇だったので、マルコフ連鎖の遷移行列を再評価する定常定理を調べてみました。だから私は単純なものを定義しました、例えば:
>> T=[0.5 0.5 0; 0.5 0 0.5; 0.2 0.4 0.4];
定常定理によると、遷移行列を非常に高い累乗で計算すると、行に主成分を持つ定常行列が得られます。それでは、試してみましょう:
>> T^1000
ans =
0.4211 0.3158 0.2632
0.4211 0.3158 0.2632
0.4211 0.3158 0.2632
これまでのところすべて良い。続けましょう:
>> T^1000000000
ans =
0.4211 0.3158 0.2632
0.4211 0.3158 0.2632
0.4211 0.3158 0.2632
いいよ。ゼロをもう 1 つ取りましょう。
>> T^10000000000
ans =
0.4210 0.3158 0.2632
0.4210 0.3158 0.2632
0.4210 0.3158 0.2632
??? 何かが変わった....もっと試してみましょう:
>> T^10000000000000000
ans =
1.0e-03 *
0.5387 0.4040 0.3367
0.5387 0.4040 0.3367
0.5387 0.4040 0.3367
ここで何が起こっているのか、行の合計でも 1 ではなくなりました
>> T^10000000000000000000
ans =
0 0 0
0 0 0
0 0 0
ああ、それはなくなった。
R2011aで試してみました。バックラウンドには、この高べき行列を近似するいくつかの凝ったアルゴリズムがあると思います。しかし、これはどのように起こりますか?このような計算を高速に実行し、このような極端な状況でこの種の誤動作を引き起こすアルゴリズムはどれですか?