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:
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);
-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.
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.