2014-01-31 3 views
0

У меня есть матрица Aсобственных значений и собственных векторов Matlab

A = [ 124.6,95.3,42.7 ; 95.3,55.33,2.74 ; 42.7,2.74,33.33 ] 

Собственные значения и векторы:

[V,D] = eig(A) 

Как показывают собственные взаимно перпендикулярны? Я пробовал это, если точечный продукт собственных значений равен нулю, это показывает, что они взаимно перпендикулярны, но как бы вы вычислили это в MATLAB? Я попытался следующий код

transpose(diag(D)) * diag(D) %gives 4.1523e+04 

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

A e_i - L_i e_i = 0 

вышеприведенное уравнение: для я равен 1 до 3. Для реальной, симметричной матрицы все собственные числа являются положительными числами и собственными векторами для базиса для матрицы

Я пробовал следующий код, но он, кажется, не дает мне 0. Любые идеи?

A*V(1) - D(1)*V(1) 
+2

собственные значения перпендикулярно? вы подразумеваете собственные векторы. Я полагаю, что – mathematician1975

ответ

2

Чтобы показать ортогональность

>> V'*V-eye(size(V)) 

ans = 

    1.0e-15 * 

    0.2220 0.1110 0.2498 
    0.1110 -0.4441 0.1388 
    0.2498 0.1388 0.4441 

Чтобы показать, что определение eigendecomposition выполнено,

>> A*V - V*D 

ans = 

    1.0e-13 * 

    0.4086 0.0400 0.8527 
    0.3908 0.0355 0.5684 
    0.1954 0.0355   0 

Результаты не будет точно равна нулю, так как цифровые компьютеры не делать точную математику, но вы можете видеть, что они довольно близки.

+0

+1 намного лучше использовать 'V '* V', чем мой подход' bsxfun' –

0

Чтобы вычислить все точечные продукты между колоннами V:

M = squeeze(sum(bsxfun(@times, conj(V), permute(V, [1 3 2])))); 

Столбцы V (собственных векторов) будут ортогональны, если выше M диагоналей.

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