Why is the eigenvalue a column of zeroes

10 次查看(过去 30 天)
I'm given the matrix A and need to find it's eigenvectors. I could simply do [V,D]=eigen(A) but I need to do its proccess.The problem arrives when I've found the A−λI 's and I need to basically do systems of linear equations. A*x=B so I do A\B=x. The x for all of them ends of being zero column vectors which I guess does make sense since A*0=0 but thats not what I'm looking for. Is there something I'm doing wrong? Heres what I've been using to check my work: https://www.emathhelp.net/en/calculators/linear-algebra/eigenvalue-and-eigenvector-calculator/?i=%5B%5B4%2C0%2C1%2C0%5D%2C%5B0%2C4%2C1%2C0%5D%2C%5B1%2C1%2C4%2C2%5D%2C%5B0%2C0%2C2%2C4%5D%5D
A=[4,0,1,0;0,4,1,0;1,1,4,2;0,0,2,4];
p=poly(A);%Coefficients of polynomial
x=roots(p);%Eigenvalues
x=real(x); %same as eig(A)
A1=[(4-x(1)),0,1,0;0,(4-x(1)),1,0;1,1,(4-x(1)),2;0,0,2,(4-x(1))];
A2=[(4-x(2)),0,1,0;0,(4-x(2)),1,0;1,1,(4-x(2)),2;0,0,2,(4-x(2))];
A3=[(4-x(3)),0,1,0;0,(4-x(3)),1,0;1,1,(4-x(3)),2;0,0,2,(4-x(3))];% These are the A-lamdaI's
A4=[(4-x(4)),0,1,0;0,(4-x(4)),1,0;1,1,(4-x(4)),2;0,0,2,(4-x(4))];
B=[0;0;0;0];
A1\B
ans = 4×1
0 0 0 0
A2\B
ans = 4×1
0 0 0 0
A3\B
ans = 4×1
0 0 0 0
A4\B
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 3.486855e-17.
ans = 4×1
0 0 0 0

回答(1 个)

Abolfazl Chaman Motlagh
for the system , is technically a solution. you should search for non-trivial solution. for this you should create null space of matrix. and because this phenomena is numerically very sensitive to matrix, by using default functions you almost always get nothing (empty null space). because the matrix become full-rank by small purturbation caused by approximating eigenvalues. (to be more precise isn't invertible so numerically condition number of it is very high, making it critically non stable for any purturbation)
A=[4,0,1,0;0,4,1,0;1,1,4,2;0,0,2,4];
lambdas = (roots(poly(A)));
T1 = A - lambdas(1) * eye(4); % A - lambda*I
null(T1)
ans = 4×0 empty double matrix
the thing you can do is try numerically find null space of T1 or equally eigenvector of A. one method that is iterative itself is finding SVD decomposition of matrix. as MATLAB documentation mentioned even the null function use SVD algorithm. the rest is up to you for finding eigenvector, but for example :
[U,S,V] = svd(A);
[S , zeros(4,1) , diag(real(lambdas))]
ans = 4×9
6.4495 0 0 0 0 6.4495 0 0 0 0 4.0000 0 0 0 0 4.0000 0 0 0 0 4.0000 0 0 0 0 4.0000 0 0 0 0 1.5505 0 0 0 0 1.5505
as you can see the S is diagonal of our lambdas.
norm(T1 * V(:,1))
ans = 3.4262e-14
you can see columns of matrix V are very close to eigenvectors.

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by