开发者

problem in finding eigenvectors of a matrix in MATLAB

I have a symmetric matrix with the elements A=[8.8191,0,1.0261; 0,3,0; 1.0261,0,3.1809]; I used the eig(A) function in MATLAB , the eigenvalues and eigenvectors are given :

eigvect =

0.1736 开发者_如何学JAVA        0    0.9848
     0   -1.0000         0
-0.9848         0    0.1736


eigval =

3.0000         0         0
     0    3.0000         0
     0         0   9.0000    

Eigenvalues are correct but the eigenvectors are not which I expect, because I think 2 of them should be equal. Does MATLAB calculate correctly the eigenvectors?


The definition of an eigenvalue can be found anywhere on the web

A*v = lam*v

v being the eigenvector with lam, its corresponding eigenvalue.

So test your results:

i =1;
A*eigvect (:,i)-eigval(i,i)*eigvect(:,i) %which should be approx [0;0;0]


It is not necessary that each of the repeating eigenvalue should have its (independent) associated eigenvector. This means, an nxn matrix with an eigenvalue repeating more than once has less or equal to n linearly independent eigenvectors.

Example 1: Matrix 2 0; 0 2 has eigenvalue 2 (repeating twice), but it has two linearly independent eigenvectors associated with eigenvalue 2

Example 2:Matrix A= 1 1 1 -2; 0 1 0 -1; 0 0 1 1; 0 0 0 1

has eigenvalue 1 (repeating four times), but it has only two independent eigenvectors associated with eigenvalue 1.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜