Determine, whether the matrix is diagonalizable or not Suppose, we have the following matrix $$A=\begin{pmatrix} 1 & 1 & 4\\ 2 & 2 & 1\\ 2 & 4 & 4\end{pmatrix}$$ over the field $\mathbb{Z}_5$.
To show, that $A$ is diagonalizable, we need to show, that the dimension of the sum of all eigenspaces equals the dimension of the matrix.
Therefore, we will calculate the eigenvalues, eigenvectors and get the eigenspaces. We need to calculate the characteristic polynomial with
$$\chi_A(\lambda)=\begin{vmatrix} 1-\lambda & 1 & 4\\ 2 & 2-\lambda & 1\\ 2 & 4 & 4-\lambda \end{vmatrix}=4\lambda^3+2\lambda^2+4,\quad \lambda\in\mathbb{Z}_5$$
In order to compute the eigenvalues, I will need to find the roots of $4\lambda^3+2\lambda^2+4$. 
\begin{align}
4\lambda^3+2\lambda^2+4&=0 && \mid &+1\\
4\lambda^3+2\lambda^2&=1 && \mid &\\
\lambda^2(4\lambda+2)&=1
\end{align}
We have $\lambda_1=1,\lambda_2=4,\lambda_3=1$
Now, we insert them into $\chi_a(\lambda)$
$\lambda = 1$:
$$
\begin{pmatrix}
0 & 1 & 4\\
2 & 1 & 1\\
2 & 4 & 3
\end{pmatrix}
\iff\dots \iff 
\begin{pmatrix}
2 & 1 & 1\\
0 & 1 & 4\\
0 & 0 & 0
\end{pmatrix}
$$
$L:=\{t\cdot(4,1,1)\mid t\in \mathbb{Z}_5\}$
One of the (infinity) eigenvectors of $\lambda = 1$ is $v=(4,1,1)$ and the eigenspace is $E_A(\lambda = 1):=\{t\cdot(4,1,1)\mid t\in \mathbb{Z}_5\}$
For $\lambda = 4$, I will get an eigenvector of $u=(0,0,0)$ which wouldn't work with $u\neq 0$ in the definition of eigenvalues/-vectors. Does that mean, the matrix is not diagonalizable?
 A: The characteristic polynomial of that matrix is 
$$x^3-7x^2-14=x^3+3x^2+1=(x-1)(x+2)^2\pmod 5=(x-1)(x-3)^2\pmod5$$ 
so we only need the dimension of the eigenvalue $\;x=-2=3\pmod5\;$:
$$\begin{cases}3x+y+4z=0\\{}\\
2x+4y+z=0\\{}\\
2x+4y+z=0\end{cases}\implies x+2y+3z=0$$
and since this last equation is a plane (in $\;\left(\Bbb Z_5\right)^2)\;$ , the matrix is diagonalizable.
A: Note that computer algebra systems like sage solve such computational exercises in a way, that may accelerate the learning curve. There is no "structural business" in computing (and humanly checking the own sparse computation on a sheet of paper) the characteristic polynomial of a matrix, and its roots, so letting a computer do the job may be a good strategy to get the focus on structure and ideas.
If code is not what you want, please ignore the following answer.
Sage code, typed interactively:
sage: A = matrix( GF(5), 3, 3, [1,1,4, 2,2,1, 2,4,4] )
sage: A
[1 1 4]
[2 2 1]
[2 4 4]

sage: A.charpoly()
x^3 + 3*x^2 + 1
sage: A.charpoly().factor()
(x + 4) * (x + 2)^2

sage: D, T = A.jordan_form(transformation=True)

sage: D
[1|0|0]
[-+-+-]
[0|3|0]
[-+-+-]
[0|0|3]

sage: T
[1 1 0]
[4 0 1]
[4 3 1]

sage: T * D * T.inverse()
[1 1 4]
[2 2 1]
[2 4 4]

sage: T * D * T.inverse() == A
True

sage: A.eigenvectors_right()
[(1, [
  (1, 4, 4)
  ], 1), (3, [
  (1, 0, 3),
  (0, 1, 1)
  ], 2)]

Then from the A.eigenvectors_right() result, for the eigenvalue 1 we have the eigenvector (1, 4, 4) corresponding to the first column in the computed base change matrix T. For the eigenvalue 3 with multiplicity two there are also two (linearly independent) eigenvectors 
  (1, 0, 3),
  (0, 1, 1)

(the other two columns of T,)
and having them we also knowthe given matrix $A$ is diagonalizable.
