Matlab与Mathematica,特征向量?

问题描述

|
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 (将#修改为@)