Matlab EIG не выводит известный выходной вектор - PullRequest
0 голосов
/ 01 декабря 2018

Мне нужно найти собственный вектор матрицы ниже.Я знаю, что вывод должен быть для lamda = 1, мы должны увидеть вывод (12, 4, 9, 6), но вывод V не имеет смысла для меня.

A=[0 0 1 1/2 ; 
    1/3 0 0 0 ; 
    1/3 1/2 0 1/2 ;
    1/3 1/2 0 0 ];

[V,D] = eig(A)

Вывод:

    V =
             628/871    +    0i           543/719    +    0i           543/719    +    0i           820/1619   +    0i      
             771/3208   +    0i          -215/708    -  163/471i      -215/708    +  163/471i     -1178/1945   +    0i      
             471/871    +    0i          -200/2147   +   64/233i      -200/2147   -   64/233i     -1641/4301   +    0i      
             314/871    +    0i          -472/1317   +  150/2101i     -472/1317   -  150/2101i      461/959    +    0i      


        D =

               1        +    0i             0        +    0i             0        +    0i             0        +    0i      
               0        +    0i         -1643/4556   +  337/820i         0        +    0i             0        +    0i      
               0        +    0i             0        +    0i         -1643/4556   -  337/820i         0        +    0i      
               0        +    0i             0        +    0i             0        +    0i          -635/2278   +    0i

В Вольфраме и другом источнике, v_1 ​​= (12, 4, 9, 6)

Как получить (12, 4,9,6) как собственный вектор в matlab?

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Первый столбец V соответствует (12,4,9,6) в вольфраме.Величина другая, но направление одинаковое.

Если вы масштабируете V как:

V*871/628*12

Вы получите:

ans =
   1.2000e+01 + 0.0000e+00i   1.2569e+01 + 0.0000e+00i   1.2569e+01 + 0.0000e+00i   8.4296e+00 + 0.0000e+00i
   4.0000e+00 + 0.0000e+00i  -5.0541e+00 - 5.7598e+00i  -5.0541e+00 + 5.7598e+00i  -1.0080e+01 + 0.0000e+00i
   9.0000e+00 + 0.0000e+00i  -1.5504e+00 + 4.5716e+00i  -1.5504e+00 - 4.5716e+00i  -6.3501e+00 + 0.0000e+00i
   6.0000e+00 + 0.0000e+00i  -5.9648e+00 + 1.1882e+00i  -5.9648e+00 - 1.1882e+00i   8.0006e+00 + 0.0000e+00i

Обратите внимание, чтопервый столбец (12,4,9,6)

0 голосов
/ 02 декабря 2018

Вы также можете получить рациональный собственный вектор [2, 2/3, 3/2, 1], равный [12, 4, 9, 6]/6, с помощью набора инструментов Symbolic Math:

[v,d]=eig(sym(A));
simplify(v)

Результат -

ans =
[   2, 2^(1/3) + 2^(2/3)/2 - 1, (2^(1/3)*3^(1/2)*1i)/2 - (2^(2/3)*3^(1/2)*1i)/4 - 2^(1/3)/2 - 2^(2/3)/4 - 1, - (2^(1/3)*3^(1/2)*1i)/2 + (2^(2/3)*3^(1/2)*1i)/4 - 2^(1/3)/2 - 2^(2/3)/4 - 1]
[ 2/3,                -2^(1/3),                                             -(2^(1/3)*(- 1 + 3^(1/2)*1i))/2,                                                  (2^(1/3)*(1 + 3^(1/2)*1i))/2]
[ 3/2,              -2^(2/3)/2,                                                (2^(2/3)*(1 + 3^(1/2)*1i))/4,                                               -(2^(2/3)*(- 1 + 3^(1/2)*1i))/4]
[   1,                       1,                                                                           1,                                                                             1]

(Вектор [2, 2/3, 3/2, 1] находится в первом столбце результата)

0 голосов
/ 02 декабря 2018

Собственные векторы не уникальны, это означает, что они могут быть любой величины, если они имеют одинаковое направление.Matlab нормализует собственные векторы, если я правильно помню, поэтому вы можете добиться аналогичных результатов, если умножить вектор Matlab, предоставленный на величину v_1, чтобы они имели одинаковую величину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...