标签: eigenvalue

按特征值对特征向量进行排序(相关排序)

我有一个未排序的特征值向量和一个相关的特征向量矩阵.我想根据排序的特征值集对矩阵的列进行排序.(例如,如果特征值[3]移动到特征值[2],我希望特征向量矩阵的第3列移到第2列.)

我知道我可以对O(N log N)via中的特征值进行排序std::sort.如果不滚动我自己的排序算法,我如何确保矩阵的列(相关的特征向量)跟随它们的特征值,因为后者是排序的?

c++ sorting eigenvalue eigenvector associated-sorting

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

在c#中求解特征系统?

你知道一个很好的库/方法可以用来解决c#中的特征系统吗?

我的数据是2D/3D,我想获得第一和第二特征向量的方向和长度,以评估我的数据在2D空间中的延伸方式.

谢谢

c# image-processing eigenvalue computer-vision eigen

4
推荐指数
2
解决办法
2769
查看次数

Matlab不返回特征向量的正交矩阵

当我试图在Matlab中找到具有重复特征值但没有缺陷的矩阵的特征分解时,它没有返回eignevectors的标准正交矩阵.例如:

k = 5;
repeats = 1;

% First generate a random matrix of eignevectors that is orthonormal
V = orth(rand(k));

% Now generate a vector of eigenvalues with the given number of repeats
D = rand(k,1);
for i = 1:repeats
    % Put one random value into another (note this sometimes will result in
    % less than the given number of repeats if we ever input the same
    % number)
    D(ceil(k*rand())) = D(ceil(k*rand()));
end

A = V'*diag(D)*V;

% Now test …
Run Code Online (Sandbox Code Playgroud)

matlab matrix linear-algebra eigenvalue eigenvector

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

Julia:eigs()函数在每次评估后返回不同的值

我注意到在多次运行eigs()函数后,每次它给出不同但近似的结果.

有没有办法每次都返回相同的结果?输出有时带有"+"符号或" - "符号.

M的内容:

[2, 1]  =  1.0
[3, 1]  =  0.5
[1, 2]  =  1.0
[3, 2]  =  2.5
[1, 3]  =  0.5
[2, 3]  =  2.5

M = M+M'
(d, v) = eigs(M, nev=1, which=:LR)
Run Code Online (Sandbox Code Playgroud)

我尝试在Python中的相同稀疏矩阵上运行相同的函数,尽管矩阵看起来有点不同,我认为它是相同的.左边的值从0开始编号.在朱莉亚,它们从1开始编号.我不知道这是否有很大差异.Julia和Python中的值大致相同,但在Python中,每次评估后它们总是相同的.此外返回蟒蛇值是复数,在朱莉娅真实.

Python代码:

MT的内容:

from scipy.sparse import linalg

(1, 0)  1.0
(2, 0)  0.5
(0, 1)  1.0
(2, 1)  2.5
(0, 2)  0.5
(1, 2)  2.5

eigenvalue, eigenvector = linalg.eigs(M.T, k=1, which='LR')
Run Code Online (Sandbox Code Playgroud)

知道为什么会发生这种行为吗?

编辑:

这些是对四次评估的结果 …

eigenvalue eigenvector julia

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

用特征向量矩阵对特征值矩阵进行排序

我有列矢量形式的N个特征值.因此,存在与这些特征值对应的N个本征向量,形成特征向量矩阵.

现在,我正在处理的问题要求我按降序对特征值列向量进行排序.如何按照与特征值相同的顺序对特征向量矩阵进行排序以保持对应?

sorting wolfram-mathematica eigenvalue eigenvector

3
推荐指数
2
解决办法
7626
查看次数

仅搜索矩阵的第一(特征)特征值和特征向量 - MATLAB

我想通过有限差分方法解决PDE的特征值问题.因此我的问题被简化为矩阵特征值问题.问题是这个矩阵的大小会非常大,如果我使用该函数,eig它会搜索所有特征值和特征向量,这在我看来是浪费时间.

在找到第一个k特征值后,是否有可能使特征值算法停止?(其中k是一个小的正整数)

matlab eigenvalue eigenvector

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

如何在R中获得矩阵的右特征向量?

版本:我的问题中的问题是我试图S等式8中找到矩阵,但这个等式有误差.

如何在R中直接获得矩阵的右特征向量?'eigen()'仅给出左特征向量

真的是上一版,我在这里弄得很乱,但这个问题对我来说非常重要:

eigen()从函数帮助中提供一些特征向量矩阵:

"如果'r < - eigen(A)'和'V < - r $ vectors; lam < - r $ values',那么

                      A = V Lmbd V^(-1)                         
Run Code Online (Sandbox Code Playgroud)

(最多数字模糊),其中Lmbd =diag(lam)"

也就是说A V = V Lmbd,现在我们检查它是V是矩阵:

set.seed(1)
A<-matrix(rnorm(16),4,4)
Lmbd=diag(eigen(A)$values)
V=eigen(A)$vectors
A%*%V

> A%*%V
                      [,1]                  [,2]          [,3]           [,4]
[1,]  0.0479968+0.5065111i  0.0479968-0.5065111i  0.2000725+0i  0.30290103+0i
[2,] -0.2150354+1.1746298i -0.2150354-1.1746298i -0.4751152+0i -0.76691563+0i
[3,] -0.2536875-0.2877404i -0.2536875+0.2877404i  1.3564475+0i  0.27756026+0i
[4,]  0.9537141-0.0371259i  0.9537141+0.0371259i  0.3245555+0i -0.03050335+0i
> V%*%Lmbd
                      [,1] …
Run Code Online (Sandbox Code Playgroud)

r function eigenvalue eigenvector

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

同时用numpy对角化矩阵

我有一个m × n × n numpy.ndarraym个同时对角可平方的矩阵,想numpy用来获取它们的同时特征值。

例如,如果我有

from numpy import einsum, diag, array, linalg, random
U = linalg.svd(random.random((3,3)))[2]

M = einsum(
    "ij, ajk, lk",
    U, [diag([2,2,0]), diag([1,-1,1])], U)
Run Code Online (Sandbox Code Playgroud)

两个矩阵M同时对角线化,我正在寻找一种获取数组的方法

array([[2.,  1.],
       [2., -1.],
       [0.,  1.]])
Run Code Online (Sandbox Code Playgroud)

(直到行的排列)M。是否有内置或简单的方法来实现这一目标?

python numpy eigenvalue diagonal

3
推荐指数
3
解决办法
8388
查看次数

不正确的特征值SciPy稀疏linalg.eigs,非对角M矩阵的eigsh

当解决广义特征值问题A*x = lambda*M*x时,为什么eigheigshscipy.sparse.linalg一起使用,如果M是非对角线的?

import mkl
import numpy as np
from scipy import linalg as LA
from scipy.sparse import linalg as LAsp
from scipy.sparse import csr_matrix

A = np.diag(np.arange(1.0,7.0))
M = np.array([[ 25.1,   0. ,   0. ,  17.3,   0. ,   0. ],
       [  0. ,  33.6,  16.8,   8.4,   4.2,   2.1],
       [  0. ,  16.8,   3.6,   0. ,  11. ,   0. ],
       [ 17.3,   8.4,   0. ,   4.2,   0. ,   9.5],
       [  0. ,   4.2,  11. ,   0. …
Run Code Online (Sandbox Code Playgroud)

linear-algebra scipy eigenvalue sparse-matrix

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

Julia:大型稀疏矩阵的所有特征值

我有一个很大的稀疏矩阵,例如 128000×128000 SparseMatrixCSC{Complex{Float64},Int64} 有 1376000 个存储条目。
如何快速获取稀疏矩阵的所有特征值?是否可以 ?

我尝试eigs使用 128000×128000 存储 1376000 个条目,但内核已死。
我在 jupyter 笔记本上使用 16GB 内存和 Julia 1.3.1 的 mac book pro。

arrays eigenvalue sparse-matrix julia

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