为什么从加速框架计算的特征向量符号不同?

时间:2012-07-30 07:25:05

标签: ios eigenvector accelerate-framework

您好以下9x9输入矩阵

6.522752 0.985874 0.000000 0.000000 0.000000 0.000000 -1.239167 1.833633 1.542076 
0.985874 5.591528 0.000000 0.000000 0.000000 0.000000 1.833633 6.220998 -3.414516 
0.000000 0.000000 4.000000 0.000000 0.000000 0.000000 1.542076 -3.414516 0.000000 
0.000000 0.000000 0.000000 6.522752 0.985874 0.000000 -3.478164 -2.197849 -2.923418 
0.000000 0.000000 0.000000 0.985874 5.591528 0.000000 -2.197849 5.979956 -5.347403 
0.000000 0.000000 0.000000 0.000000 0.000000 4.000000 -2.923418 -5.347403 0.000000 
-1.239167 1.833633 1.542076 -3.478164 -2.197849 -2.923418 7.943390 4.655086 2.544306 
1.833633 6.220998 -3.414516 -2.197849 5.979956 -5.347403 4.655086 26.187047 -8.514617 
1.542076 -3.414516 0.000000 -2.923418 -5.347403 0.000000 2.544306 -8.514617 10.540343

来自dsyevd_(lapack)的特征向量是

-0.240839 -0.138424 0.519974 0.115826 -0.370674 0.288584 -0.393926 0.431228 0.277905 
0.244180 -0.537519 -0.093966 0.107875 -0.362227 0.419277 0.386924 0.074391 -0.410777 
-0.085046 0.080591 -0.087321 0.405798 0.480233 0.520947 0.351553 0.085795 0.425460 
0.326714 -0.343211 0.687494 -0.137128 0.486896 -0.164580 0.125151 -0.051854 -0.038804 
-0.025542 0.219686 0.021264 -0.732741 0.149150 0.596999 -0.112391 -0.057387 -0.138370 
0.347073 0.682316 0.396621 0.256967 -0.282724 0.116437 0.200305 -0.155640 -0.181131 
0.802559 -0.030022 -0.272760 -0.009368 -0.014541 0.068134 -0.376412 0.154091 0.332006 
0.041949 0.027988 0.028721 -0.432580 -0.332588 -0.207674 0.588240 0.161115 0.532709 
-0.037747 -0.228302 0.086833 0.036285 -0.225159 0.157222 -0.124072 -0.849258 0.354327

来自opencv的特征向量

0.037747 0.228302 -0.086833 -0.036285 0.225159 -0.157222 0.124072 0.849258 -0.354327 
0.041949 0.027988 0.028721 -0.432580 -0.332588 -0.207674 0.588240 0.161115 0.532709 
0.802559 -0.030022 -0.272760 -0.009368 -0.014541 0.068134 -0.376412 0.154091 0.332006 
0.347073 0.682316 0.396621 0.256967 -0.282724 0.116437 0.200305 -0.155640 -0.181131 
0.025542 -0.219686 -0.021264 0.732741 -0.149150 -0.596999 0.112391 0.057387 0.138370 
0.326714 -0.343211 0.687494 -0.137128 0.486896 -0.164580 0.125151 -0.051854 -0.038804 
-0.085046 0.080591 -0.087321 0.405798 0.480233 0.520947 0.351553 0.085795 0.425460 
-0.244180 0.537519 0.093966 -0.107875 0.362227 -0.419277 -0.386924 -0.074391 0.410777 
-0.240839 -0.138424 0.519974 0.115826 -0.370674 0.288584 -0.393926 0.431228 0.277905

值的位置和符号不同。我怎么能在lapack中解决这个问题。

1 个答案:

答案 0 :(得分:2)

特征向量在实际比例因子下是唯一的。这意味着如果x是一个特征向量,那么l.x(其中l是标量)也是一个。特别是,如果x是特征向量或M,那么-x也是一个。请注意,很常见的特征向量是单位标准化的,因此||x|| = 1,但当然仍然会留下两个可能的向量(x-x)。您可以通过取特征向量j.x解决此歧义,其中jx的第一个非负坐标的符号。

编辑特征向量也可以按不同的顺序返回。通常,它们按相应特征值的降序返回。

在你的例子中,特征向量似乎与不同的特征值有关,你能证实吗?