特征值和特征向量Matlab

时间:2014-01-31 19:24:58

标签: matlab eigenvector eigenvalue

我有一个矩阵A

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 

上式:对于i等于1到3.对于实对称矩阵,所有的本征都是正数和特征向量作为矩阵的基础

我尝试了以下代码,但它似乎没有给我0.任何想法?

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

2 个答案:

答案 0 :(得分: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

为了表明满足特征分解的定义,

>> 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

结果不会完全为零,因为数字计算机不做精确的数学运算,但你可以看到它们非常接近。

答案 1 :(得分:0)

计算V

列之间的所有点积
M = squeeze(sum(bsxfun(@times, conj(V), permute(V, [1 3 2]))));

如果以上V是对角线,M(特征向量)的列将是正交的。