These quantities can have a geometric meaning and are also useful in matrix algebra, the geometric meaning is discussed on this page, it tells us something about the symmetry of a transform.
An eigenvector is a vector whose direction is not changed by the transform, it may be streached, but it still points in the same direction.
Each eigenvector has a corresponding eigenvalue which gives the scaling factor by which the transform scales the eigenvector. So the eigenvector is a vector and the eigenvalue is a scaler.
A given transform may have more than one eigenvector and eigenvalue pair depending on how many dimensions we are working in. For instance:
- If we are working in 2 dimensions there are upto 2 eigenvector and eigenvalue pairs.
- If we are working in 3 dimensions there are upto 3 eigenvector and eigenvalue pairs.
and so on.
As an example, if we have a rotation transform in 3 dimensions, then the eigenvector would be the axis of rotation since this is not altered by the transform and the corresponding eigenvalue would be +1 since the axis is not scaled by the rotation. If we have a rotation in 2 dimensions then the eigenvectors would be ±i where i is √-1 since all vectors in the plane change direction.
Eigenvalues
The eigenvalues of a matrix [M] are the values of λ such that:
[M] v = λ v
where:
- v = eigenvector
- λ = lambda = eigenvalue
this gives:
|M - λ I| = 0
where I = identity matrix
this gives:
|
= 0 |
so
(m00- λ) (m11- λ) (m22- λ) + m01 m12 m20 + m02 m10 m21 - (m00- λ) m12 m21 - m01 m10 (m22- λ) - m02 (m11- λ) m20 = 0
the values of λ are the eigenvalues of the matrix
Eigenvectors
Associated with each eigenvalue λi is an eigenvector {ui} such that:
[M] {ui} = λi {ui}
where:
- [M] is a matrix
- λi is its eigenvalues (i=1,2,3)
- {ui}is its eigenvectors
Program
There are a number of open source programs that can calculate eigenvalues and eigenvectors. I have used Axiom, how to install Axiom here.
To get a numeric solution for a given matrix, we can use eigenvalues(m) and eigenvectors(m) as shown here:
I have put user input in red:
(1) -> m := matrix[[1,4,7],[2,5,8],[3,6,9]]
+1 4 7+ | | (1) |2 5 8| | | +3 6 9+ Type: Matrix Integer (2) -> ev := eigenvalues(m)
2 (2) [0,%A | %A - 15%A - 18] Type: List Union(Fraction Polynomial Integer,SuchThat(Symbol, Polynomial Integer)) (3) -> eigenvectors(m)
(3) + 1 + | | [[eigval= 0,eigmult= 1,eigvec= [|- 2|]], | | + 1 + +%G - 12+ |-------| | 6 | 2 | | [eigval= (%G | %G - 15%G - 18),eigmult= 1,eigvec= [|%G - 6 |]]] |------ | | 12 | | | + 1 + Type: List Record(eigval: Union(Fraction Polynomial Integer,SuchThat(Symbol,Polynomial Integer)),eigmult: NonNegativeInteger,eigvec: List Matrix Fraction Polynomial Integer) |
Or we can find a general formula for a given matrix as shown here:
(1) -> msymb := matrix[[a,b,c],[d,e,f],[g,h,i]] +a b c+ | | (1) |d e f| | | +g h i+ Type: Matrix Polynomial Integer (2) -> evsymb := eigenvalues(msymb) (2) [ %B | 2 ((a - %B)e - b d - %B a + %B )i + ((- a + %B)f + c d)h + 2 2 3 (b f - c e + %B c)g + (- %B a + %B )e + %B b d + %B a - %B ] Type: List Union(Fraction Polynomial Integer, SuchThat(Symbol,Polynomial Integer)) (3) -> eigenvectors(msymb) (3) [ [ eigval = %H | 2 ((a - %H)e - b d - %H a + %H )i + ((- a + %H)f + c d)h + 2 2 3 (b f - c e + %H c)g + (- %H a + %H )e + %H b d + %H a - %H , eigmult= 1, + 2 2 + | ((e - %H)h + b g)i - f h + (- c g - %H e + %H )h - %H b g | | ---------------------------------------------------------- | | 2 2 | | d h + (- e + a)g h - b g | | | eigvec= [| 2 2 |]] |(- d h + (- a + %H)g)i + (f g + %H d)h + c g + (%H a - %H )g| |-------------------------------------------------------------| | 2 2 | | d h + (- e + a)g h - b g | | | + 1 + ] Type: List Record(eigval: Union(Fraction Polynomial Integer, SuchThat(Symbol,Polynomial Integer)) ,eigmult: NonNegativeInteger,eigvec: List Matrix Fraction Polynomial Integer) |