Finding the eigenvectors of a matrix that has one eigenvalue of multiplicity three This is a simple question, which hopefully has a quick answer. I have a given matrix A, such that
\begin{equation} A = \begin{pmatrix} 1 & 0 & 0 \\ 1 & 1 & 1 \\ 0 & 0 & 1 \end{pmatrix} \end{equation}
Since it's fairly straightforward, I'll just state that the eigenvalue of this matrix is $\lambda = 1$ with algebraic multiplicity $3$. To find the eigenvectors of this matrix, all I have to do is find the kernel of $(A-\lambda I)$. Thus,
\begin{equation} (A-\lambda I) = \begin{pmatrix} 1 & 0 & 0 \\ 1 & 1 & 1 \\ 0 & 0 & 1 \end{pmatrix} -(1)\begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} 0 & 0 & 0 \\ 1 & 0 & 1 \\ 0 & 0 & 0 \end{pmatrix}\end{equation}
The kernel of this matrix, according to my work and Wolfram Alpha, is $Ker(A-\lambda I) = \{(-1, 0, 1)^T, (0, 1, 0)^T\}$.
However, MATLAB and my calculator say that the eigenvectors are $(0, 1, 0)^T, (0,-1,0)^T,  (0, -1, 0)^T$. 
My question, then, is where did I go wrong? I looked through my book, and it does indeed cover eigenvalues with multiplicity, but it doesn't treat them any differently than the case with no multiplicity. Did I commit an algebraic error somewhere?
NOTE: I should be a little more precise. Find the kernel of $(A-\lambda I) gives the eigenspace of the corresponding eigenvalue, which happens to be composed of eigenvectors.
 A: Your answer is correct, and Matlab is being problematic. Here's some discussion of why this isn't so surprising:
Defective eigenvalue problems are numerically problematic. This is because diagonalizable matrices are dense in the space of all matrices. Consequently an arbitrarily small arithmetic error can make a nondiagonalizable matrix into a diagonalizable matrix. So unless you use a solver which uses exact arithmetic, your solver will assume that your matrix is diagonalizable and attempt to find three independent eigenvectors. 
The problem occurs when, in the background, some of the approximate eigenvectors converge to one another. If you use a solver with exact arithmetic, then no issues occur. Indeed, Matlab's jordan command gives the correct output for this problem. 
Apparently Matlab's eig command is having trouble with this problem in particular. One thing that makes this problem especially bad is that the eigenvector Matlab is successfully finding gets split into two independent vectors when you perturb your matrix into a diagonalizable matrix (for instance by replacing all of the $0$s with $10^{-6}$). Somehow this causes that eigenvector to get weighted much more heavily, and makes the other one "invisible" to the algorithm used by eig.
