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
A2\B
A3\B
A4\B
0 个评论
回答(1 个)
Abolfazl Chaman Motlagh
2022-2-18
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)
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))]
as you can see the S is diagonal of our lambdas.
norm(T1 * V(:,1))
you can see columns of matrix V are very close to eigenvectors.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!