gpt4 book ai didi

Matlab vs Mathematica,特征向量?

转载 作者:行者123 更新时间:2023-12-02 06:23:05 25 4
gpt4 key购买 nike

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

数学:

calculateHyperlinkMatrix[linkMatrix_] := {
{r, c} = Dimensions[linkMatrix];
H = Table[0, {a, 1, r}, {b, 1, 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, 0, 0, 0, 0, 0, 1/3, 0}, {1/2, 0, 1/2, 1/3, 0, 0, 0, 0}, {1/2,
0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1/2, 1/3,
0, 0, 1/3, 0}, {0, 0, 0, 1/3, 1/3, 0, 0, 1/2}, {0, 0, 0, 0, 1/3,
0, 0, 1/2}, {0, 0, 0, 0, 1/3, 1, 1/3, 0}};
R = Eigensystem[H];
VR = {R[[1, 1]], R[[2, 1]]}
PageRank = VR[[2]]


{1, {12/59, 27/118, 6/59, 27/118, 39/118, 81/118, 36/59, 1}}

Matlab 和 Mathematica 不会给出特征值为 1 的相同特征向量。虽然两者都有效......哪一个是正确的,为什么它们不同?我如何 gte 所有具有特征值 1 的特征向量?

最佳答案

Eigenvector 的定义X 是一些向量 X 满足

AX = kX

其中 A 是一个矩阵,k 是一个常数。从定义中可以很清楚地看出,cX 也是任何不等于 0c 的特征向量。所以存在一些常量 c 使得 X_matlab = cX_mathematica

看起来第一个是正常的(欧几里德长度为 1,即,将坐标的平方和相加然后取平方根,您将得到 1),第二个被归一化,因此最终坐标为 1(找到任何特征向量,然后将所有坐标除以最终坐标)。

如果您只需要一个特征向量,您可以使用任何一个。

关于Matlab vs Mathematica,特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com