标签: eigenvector

特征向量(光谱)分解

我试图在C代码中找到一个程序,它允许我计算方阵的特征值(谱)分解.我特意试图找到最高特征值(因此其相关的特征值)位于第一列的代码.

我需要输出按此顺序的原因是因为我试图计算特征向量中心性,因此我只需要计算与最高特征值相关联的特征向量.提前致谢!

c eigenvalue decomposition eigenvector

2
推荐指数
1
解决办法
4417
查看次数

广义特征值问题

我试图将广义特征值问题转换为正常的特征值计算.

我有这个代码:

[V,D,flag] = eigs(A, T);

现在我把它转换成:

A1 = inv(T)*A;
[V1,D1,flag1] = eigs(A1);
Run Code Online (Sandbox Code Playgroud)

我不应该得到相同的结果?根据我在Matlab文档中的理解,第一个等式解决了:

A*V = B*V*D
Run Code Online (Sandbox Code Playgroud)

第二个解决了:

A*V = V*D
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

谢谢!!

matlab linear-algebra eigenvalue eigenvector

2
推荐指数
1
解决办法
2688
查看次数

我们能从矩阵中获得针对eigenVectors的不同解决方案吗?

我的目的是找到矩阵的特征向量.在Matlab中,有一个[V,D] = eig(M)用于得到矩阵的特征向量:[V,D] = eig(M).或者,我使用WolframAlpha网站来仔细检查我的结果.

我们有一个10X10矩阵叫M:

0.736538062307847   -0.638137874226607  -0.409041107160722  -0.221115060391256  -0.947102932298308  0.0307937582853794  1.23891356582639    1.23213871779652    0.763885436104244   -0.805948245321096
-1.00495215920171   -0.563583317483057  -0.250162608745252  0.0837145788064272  -0.201241986127792  -0.0351472158148094 -1.36303599752928   0.00983020375259212 -0.627205458137858  0.415060573134481
0.372470672825535   -0.356014310976260  -0.331871925811400  0.151334279460039   0.0983275066581362  -0.0189726910991071 0.0261595600177302  -0.752014960080128  -0.00643718050231003    0.802097123260581
1.26898635468390    -0.444779390923673  0.524988731629985   0.908008064819586   -1.66569084499144   -0.197045800083481  1.04250295411159    -0.826891197039745  2.22636770820512    0.226979917020922
-0.307384714237346  0.00930402052877782 0.213893752473805   -1.05326116146192   -0.487883985126739  0.0237598951768898  -0.224080566774865  0.153775526014521   -1.93899137944122   -0.300158630162419
7.04441299430365    -1.34338456640793   -0.461083493351887  5.30708311554706    -3.82919170270243   -2.18976040860706   6.38272280044908    2.33331906669527    9.21369926457948    -2.11599193328696
1   0   0   0 …
Run Code Online (Sandbox Code Playgroud)

matlab linear-algebra eigenvalue eigenvector wolframalpha

1
推荐指数
2
解决办法
5530
查看次数

计算随机矩阵的特征值/特征向量

我很难确定马尔可夫模型的平稳分布。我开始理解理论和联系:给定一个随机矩阵,要确定平稳分布,我们需要找到最大特征值(即 1)的特征向量

我从生成一个随机矩阵开始

set.seed(6534)
stoma <- matrix(abs(rnorm(25)), nrow=5, ncol=5)
stoma <- (stoma)/rowSums(stoma) # that should make it a stochastic matrix rowSums(stoma) == 1
Run Code Online (Sandbox Code Playgroud)

之后我使用Reigen函数

ew <- eigen(stoma)
Run Code Online (Sandbox Code Playgroud)

但我不明白结果

> ew
$values
[1]  1.000000e+00+0.000000e+00i -6.038961e-02+0.000000e+00i -3.991160e-17+0.000000e+00i
[4] -1.900754e-17+1.345763e-17i -1.900754e-17-1.345763e-17i

$vectors
              [,1]           [,2]          [,3]                  [,4]                  [,5]
[1,] -0.4472136+0i  0.81018968+0i  0.3647755+0i -0.0112889+0.1658253i -0.0112889-0.1658253i
[2,] -0.4472136+0i  0.45927081+0i -0.7687393+0i  0.5314923-0.1790588i  0.5314923+0.1790588i
[3,] -0.4472136+0i  0.16233945+0i  0.2128250+0i -0.7093859+0.0000000i -0.7093859+0.0000000i
[4,] -0.4472136+0i -0.09217315+0i  0.4214660+0i -0.1305497-0.1261247i -0.1305497+0.1261247i
[5,] -0.4472136+0i -0.31275073+0i -0.2303272+0i  0.3197321+0.1393583i  0.3197321-0.1393583i
Run Code Online (Sandbox Code Playgroud)

最大值 (1) 的向量具有所有相同的分量值“-0.4472136”。即使我改变种子,绘制不同的数字,我也会再次得到相同的值。我想念什么?为什么特征向量的分量都是相等的?为什么它们的总和不等于 1 …

r eigenvalue eigenvector markov-models

1
推荐指数
1
解决办法
1390
查看次数

Numpy似乎产生了不正确的特征向量

我想用Numpy来计算特征值和特征向量.这是我的代码:

import numpy as np
from numpy import linalg as LA

lapl = np.array(
       [[ 2, -1, -1,  0,  0,  0],
        [-1,  3,  0, -1,  0, -1],
        [-1,  0,  2, -1,  0,  0],
        [ 0, -1, -1,  3, -1,  0],
        [ 0,  0,  0, -1,  2, -1],
        [ 0, -1,  0,  0, -1,  2]])

w, v = LA.eigh(lapl)

print ('Eigenvalues:', np.round(w,0))
print ('Eigenvectors:', np.round(v,2))
Run Code Online (Sandbox Code Playgroud)

结果如下:

Eigenvalues: [ 0.  1.  2.  3.  3.  5.]
Eigenvectors: [[ 0.41  0.5   0.41 -0.46  0.34 …
Run Code Online (Sandbox Code Playgroud)

python numpy eigenvector

1
推荐指数
1
解决办法
1996
查看次数

Julia与Matlab对特征向量计算进行基准测试

我是一个新的Julia用户,我需要尽快找到大矩阵的特征向量*.我无法让Julia以与Matlab一样快的速度运行以下示例:

朱莉娅

const j = 1000 ::Int

A = Array{Float64}(j,j)

B = Array{Float64}(j,j)

f(x) = eigvecs(x)

A = randn(j,j)

B = f(A)

@time f(A)
Run Code Online (Sandbox Code Playgroud)

输出时间:2.950973秒(12.31 k分配:76.445 MB,0.11%gc时间)

MATLAB

j = 1000;

A = randn(j,j);

tic

[v, d] = eig(A);

toc
Run Code Online (Sandbox Code Playgroud)

经过的时间是1.161133秒.

我还检查了Matlab的1个线程,使用maxNumCompThreads = 1进行比较,但它仍然提供了与之前类似的时间(1.16s).我也尝试通过运行两次预编译加速Julia,并设置blas_set_num_threads(4)但这没有帮助.

我真的很感激有关如何改进我的Julia代码的任何建议!

*(我在OSX El Capitan 10.11.6上使用Matlab 2015b和Julia 0.4.7)

benchmarking matlab eigenvector julia

1
推荐指数
1
解决办法
423
查看次数

NumPy eigh()给出了不正确的特征向量

我一直在使用NumPy来做一些线性代数,但是我遇到了eigh()看似返回不正确的特征向量的问题.是我正在使用的对称矩阵(481乘481).看下面的代码:

import numpy as np

c = np.load('C.npy')
eigenvectors_h = np.linalg.eigh(c)[1]
c.dot(eigenvectors_h[:, 0]) / eigenvectors_h[:, 0]
Run Code Online (Sandbox Code Playgroud)

c是真实的,因为np.allclose(c, c.T)回归肯定是对称的True.

而不是得到一个由特征值组成的数组重复481次,而不是看到什么看起来像随机数:

-1.03913672e+04   1.70145524e-15  -6.30342977e-16  -5.80181781e-15
2.43586988e-15   1.02142854e-13  -1.59100453e-13   6.34768223e-14
1.47793139e-14   5.19832084e-15   1.23786159e-14  -6.89332604e-14
3.35120474e-14  -5.55497774e-14   3.35912194e-14   2.41599711e-14
-8.10853045e-15   3.39728566e-14   1.66605768e-14  -4.62536283e-14
4.78158644e-15   1.05840004e-14   2.49968277e-14   6.37161752e-14
-8.29049452e-15   7.69540224e-13  -1.41737099e-14  -2.04904903e-14
-2.02649833e-14   8.75614182e-15  -6.43718154e-14  -6.71884701e-15
2.89567850e-15  -1.93639427e-14   2.05961830e-15  -2.82825321e-14
-2.99156760e-14  -1.17149803e-14  -1.00413883e-13   2.81365540e-15
-1.47420105e-14  -1.54638301e-14   2.97770540e-14   9.42616109e-14
-2.18819275e-13   6.23156105e-13  -1.14148906e-14   1.97147438e-14
-5.04103330e-14  -1.39415849e-13  -6.78032159e-14  -2.18085326e-14
-1.36511305e-14   3.09529929e-14 …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-algebra eigenvector

1
推荐指数
1
解决办法
942
查看次数

特征脸未正确显示且非常暗

我需要使用PCA显示前10个特征脸,用于图像特征向量矩阵.

我正在使用以下matlab代码来创建第一个特征脸,但我变得非常黑暗并且不那么正确的特征脸.eFea是240x4096的矩阵,其中每行代表64x64的图像

 newData = eFea';
data  = newData;
[M,N] = size(data); 

mn = mean(data,2); 
data = double(data) - repmat(mn,1,N); 
% construct the matrix Y 
Y = data' / sqrt(N-1); 
% SVD 
[u,S,PC] = svd(Y,0); 


imshow(reshape(PC(1,:),64,64))
Run Code Online (Sandbox Code Playgroud)

关于代码中的错误的任何提示都会有所帮助.

matlab face-recognition computer-vision eigenvector

0
推荐指数
1
解决办法
2083
查看次数