2012-07-30 3 views
1

하이가속 프레임 워크에서 계산 된 고유 벡터가 부호가 다른 이유는 무엇입니까? 다음 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.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 

OpenCV의 행

 
-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 

아이겐 벡터이다 기호. lapack에서이 문제를 어떻게 해결할 수 있습니까?

답변

2

고유 벡터는 실제 스케일링 팩터까지 고유합니다. 즉, x가 고유 벡터이면 l.x (여기서 l은 스칼라 임)도 하나임을 의미합니다. 특히 x이 고유 벡터이거나 M 인 경우 -x도 하나입니다. 고유 벡터는 매우 자주 단위 표준화되어 (||x|| = 1) 물론 두 개의 가능한 벡터 (x-x)를 남깁니다. 고유 벡터를 취하여이 모호성을 해결할 수 있습니다. j.x 여기서 j은 음이 아닌 음수 좌표 인 x의 부호입니다.

EDIT 고유 벡터는 다른 순서로 반환 될 수도 있습니다. 보통, 그것들은 대응하는 고유치의 내림차순으로 리턴됩니다.

예에서 고유 벡터는 다른 고유 값과 관련이있는 것 같습니다. 확인할 수 있습니까?

+0

위 예제와 관련하여 j 값 (첫 번째 음수가 아닌 값)을 알려주시겠습니까? – pradeepa

+0

방금 ​​내 대답을 편집했습니다. –

+0

@pradeepa : Régis B.는 각 고유 벡터에 대해 첫 번째 0이 아닌 (음이 아닌) 좌표를 찾음을 의미합니다. 음수이면 고유 벡터를 부정합니다. 따라서 [1, 2, 3]은 [1, 2, 3]로 유지됩니다. [0, 1, 2]는 [0, 1, 2]로 유지됩니다; [-1, 2, 3]은 [1, -2, -3]이된다. [0, -1, 2]는 [0, 1, -2]가된다. –