2
$\begingroup$

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.

$\endgroup$
11
  • $\begingroup$ The vectors $(0,1,0)^T$ and $(0,-1,0)^T$ are proportional, so it's strange to include them both and one twice. $\endgroup$
    – Chappers
    Commented May 4, 2015 at 18:33
  • $\begingroup$ The independent eigenvectors are just those two that you found. Behind the scenes in Matlab, it is trying to find 3 independent eigenvectors and failing, in that the third eigenvector and the second eigenvector are converging to one another. It proceeds this way because it is impossible to detect nondiagonalizability without carrying out calculations in exact arithmetic, because diagonalizable matrices are dense in the space of all matrices. You might try using the jordan command in Matlab (which uses exact arithmetic, and hence is extremely slow in large problems) to see this effect. $\endgroup$
    – Ian
    Commented May 4, 2015 at 18:35
  • $\begingroup$ @Ian Interesting. That's good to know. Also, why, then, does the Kernel differ from the first two eigenvectors produced by MATLAB? I multiplied $A$ by the vectors in my Kernel, and they are indeed eigenvectors. Furthermore, The first two eigenvectors of of the ones MATLAB found are linearly dependent, so it seems like it really only found one eigenvector. $\endgroup$
    – Mlagma
    Commented May 4, 2015 at 18:38
  • $\begingroup$ @Mlagma I am not sure about that part, apparently eig runs into trouble with this matrix, in that it is actually only detecting one independent eigenvector. Yet you can check that $\begin{bmatrix} -1 \\ 0 \\ 1 \end{bmatrix}$ is indeed an eigenvector with eigenvalue $1$. The jordan command correctly finds both independent eigenvectors along with the "generalized eigenvector" $\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}$. $\endgroup$
    – Ian
    Commented May 4, 2015 at 18:41
  • $\begingroup$ @Ian That's somewhat irritating that $eig$ runs into this problem. However, it's good to know its limitations - and to know that I was doing the problem right. As a side note, I tested it on Wolfram Alpha, and it finds the correct eigenvectors, but it also tries to find a third eigenvector. The third "eigenvector", though, is simply the zero vector so it can be ignored. $\endgroup$
    – Mlagma
    Commented May 4, 2015 at 18:47

1 Answer 1

1
$\begingroup$

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.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .