2014-12-27 10 views
0

Я реализую алгоритмы Якоби, чтобы получить собственные векторы симметричной матрицы. Я не понимаю, почему я получить различный собственный вектор из моих приложений (тот же результат, как у меня здесь: http://fptchlx02.tu-graz.ac.at/cgi-bin/access.com?c1=0000&c2=0000&c3=0000&file=0638) и diffrent от Wolfram Aplha: http://www.wolframalpha.com/input/?i=eigenvector%7B%7B1%2C2%2C3%7D%2C%7B2%2C2%2C1%7D%2C%7B3%2C1%2C1%7D%7DСобственный вектор. Реализация алгоритма Якоби

Пример матрицы:

1 2 3 
2 2 1 
3 1 1 

Мой результат:

0.7400944496522529, 0.6305371413491765, 0.23384421945632447 
-0.20230251371232585, 0.5403584533063043, -0.8167535949636785 
-0.6413531776951003, 0.5571668060588798, 0.5274763043839444 

Результат от WA:

1.13168, 0.969831, 1 
-1.15396, 0.315431, 1 
0.443327, -1.54842, 1 

Я ожидаю, что решение тривиально, но я не могу его найти. Я задал этот вопрос о mathoverflow, и они указали мне на этот сайт.

+0

Я думаю, что это не имеет ничего общего с программированием –

+0

Вы можете улучшить свой вопрос и сделать его полезным для других, если вы добавите запросы, которые вы запускали в WA, а также перекрестные ссылки на ваш вопрос на Math Exchange. – kkm

ответ

0

Собственные векторы матрицы не являются уникальными, и существует множество возможных разложений; на самом деле, только собственные пространства могут быть определены однозначно. Оба результата, которые вы получаете, действительны. Вы можете легко увидеть, что, попросив Вольфрама Альфа ортогонализировать вторую матрицу. Run the following query:

Orthogonalize[{{1.13168, 0.969831, 1.}, {-1.15396, 0.315431, 1.}, {0.443327, -1.54842, 1.}}] 

получить

0.630537 0.540358 0.557168 
-0.740094 0.202306 0.641353 
0.233844 -0.816754 0.527475 

Теперь вы можете увидеть, что ваш алгоритм возвращает правильный результат. Во-первых, матрица транспонирована: WA дал вам векторы строк, и ваш алгоритм возвращает их в столбцах. Тогда первый вектор умножается на -1, но любой собственный вектор можно умножить на ненулевую константу, чтобы получить действительный собственный вектор. В противном случае результаты идеально совпадают.

Вы также можете найти следующий Mathematics StackExchange ответа полезным: Are the eigenvectors of a real symmetric matrix always an orthonormal basis without change?

+0

Да, вы правы. Спасибо за ваш ответ, а не тривиальным для меня, как я ожидаю, но я это понял. –