2010-11-13 59 views
2

我試圖找到馬爾可夫鏈的均衡分佈,這意味着找到代表它的轉換矩陣的特徵值,然而,eig函數會自動將特徵向量返回,MatLab中有你可以傳遞給函數停止這種行爲什麼是eig(X,'nobalance')的八度當量

eig(X, 'nobalance')

其中X是一個矩陣的標誌。請參閱http://www.mathworks.com/help/techdoc/ref/eig.html。然而,當我嘗試在八度音程中,我只是得到一個錯誤:

error: eig: wrong type argument `sq_string'

是否有一些其他函數,我應該打電話?

乾杯

回答

1

如果你的目標是計算馬爾可夫鏈的平衡分佈,看看從PMTK3 toolboxmcStatDist功能的實現。它顯示了四種不同的方法來計算結果。例如:

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 

正如代碼鏈接的評論中指出,這種方法可以爲某些情況下數值不穩定的,所以你可能要考慮的其他選項之一......

+0

歡呼聲,那是做訣竅。 – 2010-11-13 22:19:08