我们能不能从一个矩阵的特征向量不同的解决方案?我们能不能从一个矩阵的特征向量不同的解决方案?(Cou

2019-05-12 09:50发布

我的目的是找到一个矩阵A的特征向量。 在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   0   0   0   0   0   0
0   1   0   0   0   0   0   0   0   0
0   0   0   1   0   0   0   0   0   0
0   0   0   0   0   0   1   0   0   0

D

2.84950796497613 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    1.08333535157800 + 0.971374792725758i   0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    1.08333535157800 - 0.971374792725758i   0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -2.05253164206377 + 0.00000000000000i   0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -0.931513274011512 + 0.883950434279189i 0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -0.931513274011512 - 0.883950434279189i 0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -1.41036956613286 + 0.354930202789307i  0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -1.41036956613286 - 0.354930202789307i  0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    -0.374014257422547 + 0.00000000000000i  0.00000000000000 + 0.00000000000000i
0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.00000000000000 + 0.00000000000000i    0.165579401742139 + 0.00000000000000i

V

-0.118788118233448 + 0.00000000000000i  0.458452024790792 + 0.00000000000000i   0.458452024790792 + -0.00000000000000i  -0.00893883603500744 + 0.00000000000000i    -0.343151745490688 - 0.0619235203325516i    -0.343151745490688 + 0.0619235203325516i    -0.415371644459693 + 0.00000000000000i  -0.415371644459693 + -0.00000000000000i -0.0432672840354827 + 0.00000000000000i 0.0205670999343567 + 0.00000000000000i
0.0644460666316380 + 0.00000000000000i  -0.257319460426423 + 0.297135138351391i -0.257319460426423 - 0.297135138351391i 0.000668740843331284 + 0.00000000000000i    -0.240349418297316 + 0.162117384568559i -0.240349418297316 - 0.162117384568559i -0.101240986260631 + 0.370051721507625i -0.101240986260631 - 0.370051721507625i 0.182133003667802 + 0.00000000000000i   0.0870047828436781 + 0.00000000000000i
-0.0349638967773464 + 0.00000000000000i -0.0481533171088709 - 0.333551383088345i    -0.0481533171088709 + 0.333551383088345i    -5.00304864960391e-05 + 0.00000000000000i   -0.0491721720673945 + 0.235973015480054i    -0.0491721720673945 - 0.235973015480054i    0.305000451960374 + 0.180389787086258i  0.305000451960374 - 0.180389787086258i  -0.766686233364027 + 0.00000000000000i  0.368055402163444 + 0.00000000000000i
-0.328483258287378 + 0.00000000000000i  -0.321235466934363 - 0.0865401147007471i    -0.321235466934363 + 0.0865401147007471i    -0.0942807049530764 + 0.00000000000000i -0.0354015249204485 + 0.395526630779543i    -0.0354015249204485 - 0.395526630779543i    -0.0584777280581259 - 0.342389123727367i    -0.0584777280581259 + 0.342389123727367i    0.0341847135233905 + 0.00000000000000i  -0.00637190625187862 + 0.00000000000000i
0.178211880664383 + 0.00000000000000i   0.236391683569043 - 0.159628238798322i  0.236391683569043 + 0.159628238798322i  0.00705341924756006 + 0.00000000000000i 0.208292766328178 + 0.256171148954103i  0.208292766328178 - 0.256171148954103i  -0.319285221542254 - 0.0313551221105837i    -0.319285221542254 + 0.0313551221105837i    -0.143900055026164 + 0.00000000000000i  -0.0269550068563120 + 0.00000000000000i
-0.908350536903352 + 0.00000000000000i  0.208752559894992 + 0.121276611951418i  0.208752559894992 - 0.121276611951418i  -0.994408141243082 + 0.00000000000000i  0.452243212306010 + 0.00000000000000i   0.452243212306010 + -0.00000000000000i  0.273997199582534 - 0.0964058973906923i 0.273997199582534 + 0.0964058973906923i -0.0270087356931836 + 0.00000000000000i 0.00197408431000798 + 0.00000000000000i
-0.0416872385315279 + 0.00000000000000i 0.234583850413183 - 0.210340074973091i  0.234583850413183 + 0.210340074973091i  0.00435502958971167 + 0.00000000000000i 0.160642433241717 + 0.218916331789935i  0.160642433241717 - 0.218916331789935i  0.276971588308683 + 0.0697020017773242i 0.276971588308683 - 0.0697020017773242i 0.115683515205146 + 0.00000000000000i   0.124212913671392 + 0.00000000000000i
0.0226165595687948 + 0.00000000000000i  0.00466011130798999 + 0.270099580217056i    0.00466011130798999 - 0.270099580217056i    -0.000325812684017280 + 0.00000000000000i   0.222664282388928 + 0.0372585184944646i 0.222664282388928 - 0.0372585184944646i 0.129604953142137 - 0.229763189016417i  0.129604953142137 + 0.229763189016417i  -0.486968076893485 + 0.00000000000000i  0.525456559984271 + 0.00000000000000i
-0.115277185508808 + 0.00000000000000i  -0.204076984892299 + 0.103102999488027i -0.204076984892299 - 0.103102999488027i 0.0459338618810664 + 0.00000000000000i  0.232009172507840 - 0.204443701767505i  0.232009172507840 + 0.204443701767505i  -0.0184618718969471 + 0.238119465887194i    -0.0184618718969471 - 0.238119465887194i    -0.0913994930540061 + 0.00000000000000i -0.0384824814248494 + 0.00000000000000i
-0.0146296269545178 + 0.00000000000000i 0.0235283849818557 - 0.215256480570249i 0.0235283849818557 + 0.215256480570249i -0.00212178438590738 + 0.00000000000000i    0.0266030060993678 - 0.209766836873709i 0.0266030060993678 + 0.209766836873709i -0.172989400304240 - 0.0929551855455724i    -0.172989400304240 + 0.0929551855455724i    -0.309302420721495 + 0.00000000000000i  0.750171291624984 + 0.00000000000000i

我得到的结果如下:

  1. 原矩阵:

  1. 来自WolframAlpha的结果:

  1. 从MATLAB EIG的结果:

d(特征值)

V(特征向量)

是否有可能得到的特征向量不同的解决方案,或者它应该是唯一的答案。 我有兴趣获得这个概念澄清。

Answer 1:

特征向量不是唯一的,用于各种原因。 更改标志和特征向量仍然是相同的特征值的特征向量。 事实上,任何常数乘和特征向量仍然是。 不同的工具有时可以选择不同的归一化。

如果特征值是多重性大于一,那么特征向量是又不是唯一的,只要它们跨越相同的子空间。



Answer 2:

如木片指出(1),特征向量是最多只有一个线性变换是唯一的。 这一事实是从定义显而易见的,即本征向量/特征值对解决特性函数A * V = K * V,其中A是矩阵,v是特征向量,k是特征值。

让我们考虑一个比你(可怕看)的问题非常简单的例子:

M = [1, 2, 3; 4, 5, 6; 7, 8, 9];
[EigVec, EigVal] = eig(M);

Matlab的收益:

EigVec =
-0.2320   -0.7858    0.4082
-0.5253   -0.0868   -0.8165
-0.8187    0.6123    0.4082

而数学收益率:

EigVec = 
0.2833    -1.2833    1
0.6417    -0.1417    -2
1         1          1

从MATLAB文档:

“对于EIG(A),本征向量进行缩放,使得每个的范数为1.0。”。

数学,另一方面显然缩放向量,从而使最后一个元素是团结。

即便只是目测我给的输出,你就可以开始看到出现的关系(尤其是比较来自两个输出的第三特征向量)。

顺便说一句,我建议你修改你的问题有一个更简单的输入矩阵M ,如我在这里使用了一个。 这将使任何人谁在未来访问此页它更具可读性。 它实际上并不坏的问题,而是它正在格式化的方式可能会导致它被向下投票。



Answer 3:

我完全Mr.Colin牛逼鲍尔斯同意,做数学正常化,以便特征向量,去年值成为一体。 使用MATLAB,如果有人想制作特征向量导致像数学那么我们可以告诉MATLAB规范化特征向量的最后一个值结果为1以下使用正常化的一步。

M = [1, 2, 3; 4, 5, 6; 7, 8, 9];

[EigVec, EigVal] = eig(M);

sf=1./EigVec(end,:); %get the last value of each eigen vector and inverse for scale factor

sf=repmat(sf,size(EigVec,1),1); % Repeat Scale value of each element in the vector

Normalize_EigVec=EigVec.*sf;

Normalize_EigVec =

    0.2833   -1.2833    1.0000
    0.6417   -0.1417   -2.0000
    1.0000    1.0000    1.0000


Answer 4:

由于罗迪指出Mathematica使用的正常化,使最后一个元素的统一。 像QZ算法的其他EIG函数(你必须在Matlab编码器例如使用,因为不支持的Cholesky),不nomalize Matlab的确实为[V,林] = EIG(C)的方式。 EX:[V,林] = EIG(C,眼(尺寸(C)), 'QZ');

从文档http://www.mathworks.com/help/techdoc/ref/eig.html

注意:对于EIG(A),本征向量进行缩放,使得每个的范数是1.0。 用于EIG(A,B),EIG(A, 'nobalance'),和EIG(A,B,标志),本征矢量是不归一化。 还要注意的是,如果A是对称的,EIG(A,“nobalance”)忽略nobalance选择,因为一个是已经平衡。

为[V,林] = EIG(C); 特征向量被缩放,使得每个的范数是1.0。 这就是我们在这里需要。 MATLAB确实,对于乔莱斯基制定,因此,如何让他们有同样规模的一个再通过标准化生产QZ特征向量? 像这样:

W = V;
for i = 1:size(V,2) % for each column
    V(:,i) = V(:,i) / norm(V(:,i), 2);  % Normalize column i
end

这将找到的每个矢量的长度和由长度划分的元素来缩放矢量。 Mathamatica基本上做同样的事情,使最后一个元素1而不是归一化向量。 http://www.fundza.com/vectors/normalize/

注意,向量和值不以相同的顺序不一定,所以你可能还需要对它们进行排序。 Matlab的乔列斯基算法产生的排列顺序,像这样的项目:

lam=diag(lam);
[sorted_lam,index]=sort(lam);
for cont=1:length(sorted_lam)
   sorted_V(:,cont)=V(:,index(cont));
end
W=sorted_W;
lam = diag(sorted_lam);

即使这样做的迹象后,可能无法在同一方向指出(特征向量仍然特征向量,如果他们是乘以-1)。 注意相同的排序必须被施加到拉姆达(特征值),或者那些将不按顺序。

典型惯例是的filp列的迹象,如果在列的第一个元素是负的。

有一两件事你可以做的是翻转迹象,如果超过2负:

%FLIP SIGNS IF MORE THAN 2 ARE NEGATIVE
W=sorted_W;
for i = 1:size(W,2) % for each column in V
    A = W(:,i);
    s=sign(A);
    inegatif=sum(s(:)==-1);
    if(inegatif>1)
        W(:,i) = -W(:,i);
    end
end

但是,这只有真正帮助,如果该元素不接近于0,因为如果他们是接近于0的不同算法可能找到的0,而不是对方的价值,但它总比没有好。

最后一点,对于“B”值(广义本征值问题的输入矩阵),我使用的“眼(尺寸(C))”。 有选择“B”,以提高该算法并使其给出答案更接近乔莱斯基的或更准确的最佳方法是什么? 你可以使用任何值(同样大小的实矩阵)为B包括A又或A”(A是输入矩阵),但什么是‘好的选择吗?’ 也许A”,我注意到了一些投入-1一个3x3似乎给接近相同答案‘哲’?

https://www.mathworks.com/help/matlab/ref/eig.html?searchHighlight=eig&s_tid=doc_srchtitle#inputarg_B



文章来源: Could we get different solutions for eigenVectors from a matrix?