标签: eigenvalue

特征向量(光谱)分解

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

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

c eigenvalue decomposition eigenvector

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

获得对应于Julia中p个最大特征值的特征向量

我看了看eigvecseigen,但他们都没有通过特征值的数量级的特征向量.这是我们必须自己编码的东西吗?

testM=diagm(0=>[1,3,2])
eigvals(testM)
eigvecs(testM)
U=eigen(testM)
U.vectors
U.values
Run Code Online (Sandbox Code Playgroud)

eigenvalue eigenvector julia

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

我们能从矩阵中获得针对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
查看次数

Armadillo中的稀疏svd(C++)

根据http://arma.sourceforge.net/docs.html#part_c,Armadillo支持以下功能:

eig_sym
eig_gen
eigs_sym
eigs_gen
svd
svd_econ
Run Code Online (Sandbox Code Playgroud)

但似乎没有像"svds_econ"这样的函数,它在"稀疏"矩阵上运行并返回奇异值和向量.

有没有办法在Armadillo中实现这个功能?

c++ eigenvalue svd armadillo

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

R 中协方差矩阵的特征值之一为负

我有一个数据集x。我用它cov(x)来计算 的协方差x。我想计算 的倒数平方根cov(x)。但我得到 的负特征值cov(x)

这是我的代码

S11=cov(x)
S=eigen(S11,symmetric=TRUE)
R=solve(S$vectors %*% diag(sqrt(S$values)) %*% t(S$vectors))
Run Code Online (Sandbox Code Playgroud)

这就是 的特征值S

c(0.897249923338732, 0.814314811717616, 0.437109871173458, 0.334921280373883, 
0.291910583884559, 0.257388456770167, 0.166787180227719, 0.148268784967556, 
0.121401731579852, 0.0588333377333529, 0.0519459283467876, 0.0472867806813002, 
0.0438199555429584, 0.0355421239839632, 0.0325106968911777, 0.0282860419784165, 
0.0222240269478354, 0.0174657163114068, 0.012318267910606, 0.00980611646284724, 
0.00969450391092417, 0.00804912897151307, 0.00788628666010145, 
0.00681419055130702, 0.00664707528670254, 0.00591471779140177, 
0.00581608875646686, 0.0057489828718098, 0.00564645095578336, 
0.00521029715741059, 0.00503304953884416, 0.0048677189522647, 
0.00395692706081966, 0.00391665618240403, 0.00389825739725093, 
0.00383611535401152, 0.00374242176786387, 0.0035160324422885, 
0.00299245160843966, 0.0029501156885799, 0.00289484923017341, 
0.00287327878694529, 0.0028447265712214, 0.00274130080219099, 
0.00273159993035393, 0.00265595612239575, 0.00261856622830277, 
0.0020004125628823, 0.00199834766485368, 0.00199579695856402, 
0.00198945452395265, 0.00197999810684363, 0.00195954105720554, 
0.00195502875017394, …
Run Code Online (Sandbox Code Playgroud)

r eigenvalue matrix-decomposition

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

如何在MATLAB中找到两个矩阵的联合特征值?

如果矩阵AB的联合特征值被定义为方程 det(lambda * A - B ) = 0 的根,我如何在 MATLAB 中解决这个问题?

特别是,我不确定 lambda 是如何定义的——它显然需要是一个矩阵或向量,否则只会有一个联合特征值。另外,我不确定是否有任何内置函数,或者是否需要使用 fzero 来查找非线性函数的根。

matlab matrix linear-algebra eigenvalue

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

特征值与PVE(方差百分比已说明)

有了prcomp()函数,我估计了方差百分比的解释

prcomp(env, scale=TRUE)
Run Code Online (Sandbox Code Playgroud)

第二列summary(pca)显示了所有PC的这些值:

                        PC1    PC2     PC3     PC4     PC5     PC6     PC7
Standard deviation     7.3712 5.8731 2.04668 1.42385 1.13276 0.79209 0.74043
Proportion of Variance 0.5488 0.3484 0.04231 0.02048 0.01296 0.00634 0.00554
Cumulative Proportion  0.5488 0.8972 0.93956 0.96004 0.97300 0.97933 0.98487
Run Code Online (Sandbox Code Playgroud)

现在,我想查找每台PC的特征值:

pca$sdev^2
[1] 5.433409e+01 3.449329e+01 4.188887e+00 2.027337e+00 1.283144e+00
[6] 6.274083e-01 5.482343e-01
Run Code Online (Sandbox Code Playgroud)

但是这些值似乎只是PVE本身的替代表示。那我在做什么错呢?

r eigenvalue pca

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

检查特征值是否等于实数的不同方法?

我有以下矩阵

M <- structure(c(0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 
0, 0, 1, 0, 0, 0, 1, 0), .Dim = c(5L, 5L))
Run Code Online (Sandbox Code Playgroud)

我想找到正好为1的特征值.我认为这样可行:

Re(eigen(M)$values) == 1 & Im(eigen(M)$values) == 0
Run Code Online (Sandbox Code Playgroud)

Re(eigen(M)$values) == 1不认为第5个特征值等于1,即使它确实如此.我错过了什么?

编辑:只要它指出了一个浮点问题,我研究了一点,了解几种解决方案,包括使用abs(value) < tol,all.equalsignif.答案可以讨论这些选项吗?

r eigenvalue complex-numbers

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

Matlab给出了正矩阵的负特征值

我有一个6000*6000对称矩阵,所有条目都是正数.我使用matlab的eig函数来分解它的特征值和特征向量.但结果中存在负特征值.你认为这是什么问题?

谢谢.Sevil.

matlab matrix linear-algebra eigenvalue

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

Matlab主成分分析(特征值顺序)

我想使用Matlab的"princomp"函数,但是这个函数给出了一个排序数组中的特征值.这样我就无法找出哪个列对应哪个特征值.对于Matlab,

m = [1,2,3;4,5,6;7,8,9];
[pc,score,latent] = princomp(m);
Run Code Online (Sandbox Code Playgroud)

是相同的

m = [2,1,3;5,4,6;8,7,9];
[pc,score,latent] = princomp(m);
Run Code Online (Sandbox Code Playgroud)

也就是说,交换前两列不会改变任何东西.潜在的结果(特征值)将是:(27,0,0)信息(特征值对应于哪个原始(输入)列)丢失.有没有办法告诉matlab不要对特征值进行排序?

matlab linear-algebra eigenvalue pca

-3
推荐指数
1
解决办法
2万
查看次数