问题描述
|
function H = calcHyperlinkMatrix(M)
[r c] = size(M);
H = zeros(r,c);
for i=1:r,for j=1:c,if (M(j,i) == 1)
colsum = sum(M,2);
H(i,j) = 1 / colsum(j);
end;
end;
end;
H
function V = pageRank(M)
[V D] = eigs(M,1);
V
function R = google(links)
R = pageRank(calcHyperlinkMatrix(links));
R
M=[[0 1 1 0 0 0 0 0];[0 0 0 1 0 0 0 0];[0 1 0 0 1 0 0 0];[0 1 0 0 1 1 0 0];
[0 0 0 0 0 1 1 1];[0 0 0 0 0 0 0 1];[1 0 0 0 1 0 0 1];[0 0 0 0 0 1 1 0];]
google(M)
ans =
-0.1400
-0.1576
-0.0700
-0.1576
-0.2276
-0.4727
-0.4201
-0.6886
Mathematica:
calculateHyperlinkMatrix[linkMatrix_] := {
{r,c} = Dimensions[linkMatrix];
H = Table[0,{a,1,r},{b,c}];
For[i = 1,i < r + 1,i++,For[j = 1,j < c + 1,j++,If[linkMatrix[[j,i]] == 1,H[[i,j]] = 1/Total[linkMatrix[[j]]],0]
]
];
H
}
H = {{0,1/3,0},{1/2,1/2,{0,1/2},0}};
R = Eigensystem[H];
VR = {R[[1,1]],R[[2,1]]}
PageRank = VR[[2]]
{1,{12/59,27/118,6/59,39/118,81/118,36/59,1}}
Matlab和Mathematica的特征值1并没有给出相同的特征向量。尽管两者都可以工作……哪一个是正确的,为什么它们不同?如何处理所有特征值为1的特征向量?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)