2009-04-06 19 views
1

Я получаю неправильный собственный вектор (также проверяется, выполняя несколько раз, чтобы убедиться), когда я использую matrix.eig(). Матрица:Проблема с функцией декомпозиции собственных значений Jama

1.2290 1.2168 2.8760 2.6370 2.2949 2.6402 
1.2168 0.9476 2.5179 2.1737 1.9795 2.2828 
2.8760 2.5179 8.8114 8.6530 7.3910 8.1058 
2.6370 2.1737 8.6530 7.6366 6.9503 7.6743 
2.2949 1.9795 7.3910 6.9503 6.2722 7.3441 
2.6402 2.2828 8.1058 7.6743 7.3441 7.6870 

функция возвращает собственные векторы:

-0.1698 0.6764 0.1442 -0.6929 -0.1069 0.0365 
-0.1460 0.6478 0.1926 0.6898 0.0483 -0.2094 
-0.5239 0.0780 -0.5236 0.1621 -0.2244 0.6072 
-0.4906 -0.0758 -0.4573 -0.1279 0.2842 -0.6688 
-0.4428 -0.2770 0.4307 0.0226 -0.6959 -0.2383 
-0.4884 -0.1852 0.5228 -0.0312 0.6089 0.2865 

Matlab дает следующий собственные векторы-вектору для того же вход:

0.1698 -0.6762 -0.1439 0.6931 0.1069 0.0365 
0.1460 -0.6481 -0.1926 -0.6895 -0.0483 -0.2094 
0.5237 -0.0780 0.5233 -0.1622 0.2238 0.6077 
0.4907 0.0758 0.4577 0.1278 -0.2840 -0.6686 
0.4425 0.2766 -0.4298 -0.0227 0.6968 -0.2384 
0.4888 0.1854 -0.5236 0.0313 -0.6082 0.2857 

Собственных значения для MATLAB и jama являются совпадающими, но с собственными векторами первые 5 столбцов меняются по знаку, и только последний столбец является точным.

Есть ли какие-либо проблемы с видом ввода, который Jama.Matrix.EigenvalueDecomposition.eig() принимает или любую другую проблему с тем же? Пожалуйста, скажите мне, как я могу исправить ошибку. Заранее спасибо.

ответ

7

Здесь нет ошибки, оба результата верны - как и любые другие скалярные времена собственных векторов.

Существует бесконечное число собственных векторов, которые работают - его справедливая конвенция о том, что большинство программных программ сообщают о векторах, длина которых одна. Тот Jama сообщает, что собственные векторы, равные -1, больше, чем у Matlab, вероятно, являются лишь артефактом используемого алгоритма.

+0

внимательно смотрите .... не скалярные времена другой собственный вектор все столбцы кроме последнего были инвертированы в знаке .. последний столбец для обоих одинаковый ... что неверно. – BHS

+0

Поскольку я понимаю соглашения, используемые для результата, каждый столбец является собственным вектором. Так что * один из них не был перевернут в знак. Что делает каждый столбец по-прежнему действительным собственным вектором нормы 1. Где проблема? – Varkhan

+0

Итак, каждый из собственных вектонов может быть перевернут в знак, и он по-прежнему безопасен. Затем мое сомнение очищается. Благодаря.. – BHS

Смежные вопросы