Finding eigenvectors in Maple gives me variables $t_2$

233 Views Asked by At

I have a matrix

$$ A = \begin{pmatrix} 0 & -1 \\ -1 & 0 \end{pmatrix} $$

I can find eigenvectors in Maple with Eigenvectors(A) from which I get the eigenvalues

$$ \lambda_1 = 1 \qquad \lambda_2 = -1 $$

and the eigenvectors

$$ v_1 = (-1,1) \qquad v_2 = (1,1) $$

which is all fine.

But if I want to find the eigenvectors more 'manually' I will first define the characteristic matrix $K_A(\lambda) = A-\lambda I$ and use v[1] = LinearSolve(K[A](lambda[1]),<0,0>,free='t') and v[2] = LinearSolve(K[A](lambda[2]),<0,0>,free='t') in Maple. Now I get the eigenvectors

$$ v_1 = (-t_2,t_2) \qquad v_2 = (t_2,t_2) $$

They are almost correct; however, I have to use subs(t[2]=1, %) in order to get the correct result.

Why does it use $t_2$ instead of $1$? Why is $t_2$ and not just $t$? How can I get the eigenvectors correct? I want to define an automatic procedure which gives me the eigenvectors, so I don't want to substitute $t_2$ manually afterwards.

3

There are 3 best solutions below

1
On

Maple is looking for ALL of the solutions when it runs LinearSolve. Eigenvectors only finds a basis for the eigenspace.

2
On

The second Maple result is correct, and the first is wrong... OK, maybe not exactly wrong, but not completely correct. For any eigenvalue of any matrix, there will always be infinitely many eigenvectors. Remember the definition: $v$ is an eigenvector of $A$ corresponding to eigenvalue $\lambda$ means $$Av=\lambda v\ ,\quad v\ne0\ .$$ If this is true and $t$ is a scalar, then $$A(tv)=\lambda(tv)\ ,$$ so $tv$ is also an eigenvector of $A$ corresponding to $\lambda$, as long as $t\ne0$.

0
On

You can find a basis for each of the eigenspaces associated with the eigenvalues, "by hand", as follows:

restart:

with(LinearAlgebra):

A:=Matrix([[0,-1],[-1,0]]):

evals:=Eigenvalues(A);

                                      [ 1]
                             evals := [  ]
                                      [-1]


NullSpace(CharacteristicMatrix(A,evals[1]));

                                 [-1]
                                {[  ]}
                                 [ 1]

NullSpace(CharacteristicMatrix(A,evals[2]));

                                  [1]
                                 {[ ]}
                                  [1]