2

我试图找到马尔可夫链的平衡分布,这意味着找到表示它的转移矩阵的特征值,但是,eig 函数会自动标准化它返回的特征向量,在 MatLab 中有一个标志可以传递给函数停止这种行为

eig(X, '不平衡')

其中 X 是一个矩阵。请参阅http://www.mathworks.com/help/techdoc/ref/eig.html。但是,当我在 octave 中尝试这个时,我得到了一个错误:

错误:eig:错误的类型参数“sq_string”

还有其他我应该调用的函数吗?

干杯

4

1 回答 1

1

如果您的目标是计算马尔可夫链的平衡分布,请查看PMTK3 工具箱中的mcStatDist函数实现。它显示了计算结果的四种不同方法。例子:

TR = rand(3,3);                          %# random transition matrix
TR = bsxfun(@rdivide, TR, sum(TR,2));    %# normalize so that rows sum to one

[V,D] = eig(TR');                        %'# eigen-decomposition
EQ = V(:,1) ./ sum(V(:,1));              %# state equilibrium distribution

如链接代码的注释中所述,此方法在某些情况下可能在数值上不稳定,因此您可能需要考虑其他选项之一...

于 2010-11-13T22:11:53.077 回答