Why isn't eig returning all eigenvectors?
Mostrar comentarios más antiguos
I have a matrix in Matlab, that can be created by the following commands
c = 3; t = 3; l = 4;
A = [l*ones(c), -ones(c,t*l); -l*ones(t*l,c), kron(eye(l), l*ones(t))];
By the special block structure of A and for given parameter values c,t,l, the eigenvalue 0 should appear with multiplicity 11. This is also what I get when I compute the dimension of the nullspace of A:
size(null(A))
ans =
15 11
Now, I use eig to calculate all eigenvalues and eigenvectors of A. The eigenvalue 0 appears with multiplicity 11, too:
[V,D] = eig(A);
d = diag(D); [d,I] = sort(d); V = V(:,I); %sort eigenvalues in ascending order and rearrange eigenfunctions accordingly
transpose(d)
ans =
-0.0000 -0.0000 0 0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 12.0000 12.0000 12.0000 24.0000
That means that the first 11 columns of V are now the eigenvectors of the eigenvalue 0. However, my problem is that the eigenfunctions of the eigenvalue 0 are linearly dependent, i.e.
rank(V(:,1:11))
ans =
8
So why did eig only return 8 linearly independent vectors, even though there are 11? Of course I could just use null(A), to obtain all eigenvectors, but I try to understand the behavior of eig.
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Linear Algebra en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!