PDA

查看完整版本 : eig(X,'nobalance')的八度倍数是多少


poster
2019-12-10, 20:48
我试图找到马尔可夫链的平衡分布,这意味着找到表示它的过渡矩阵的特征值,但是,eig函数自动归一化它返回的特征向量,在MatLab中有一个可以传递给该函数的标志停止这种行为

eig(X,'nobalance')

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

错误:EIG:类型参数'sq_string'错误

我应该调用其他功能吗?

干杯



回答:

如果您的目标是计算马尔可夫链的平衡分布,请查看PMTK3工具箱 (http://code.google.com/p/pmtk3/)中的mcStatDist (http://pmtk3.googlecode.com/svn/trunk/toolbox/BasicModels/markov/sub/mcStatDist.m)函数实现。它显示了四种计算结果的方法。例:

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



更多&回答... (https://stackoverflow.com/questions/4173860)