Eigenvalues for HP-41cv/cx

This program determines the eigenvalues of a real number matrix.\(\)

Theory

Multiplying a vector with a square matrix, usually changes both the magnitude (scale) and the direction of the vector.  In the special case where it changes only the magnitude of the vector and leaves the direction unchanged (or switches the vector to the opposite direction), that vector is called an eigenvector of that matrix.

When multiplied by a matrix, each eigenvector of that matrix changes its magnitude by a factor, called the eigenvalue corresponding to that eigenvector.  In other words: vector x is called an eigenvector of the matrix A with eigenvalue λ if the following equation holds [5]

$$Ax=\lambda x$$

The eigenvalues of A are precisely the solutions λ to the equation \(det(A – \lambda x) = 0\). Here \(det()\) is the determinant of matrix formed by \(A – \lambda I\) in which \(I\) is a \(n\times n\) identity matrix. This equation is called the characteristic equation of \(A\).

For a more detailed description including complex eigenvalues, refer to my piece “Complex Eigenvalues for HP-41cv/cx

Method

The program uses the iterative power method to determine the largest eigenvalue. This value is removed from the matrix using the deflation method of Hotelling [1]. The remaining eigenvalues are determined in a similar way. Note that accumulation of rounding errors will affect the accuracy of successive eigenvalues.

The power method is an iterative method for approximating eigenvalues. This method is perhaps not the most respected method, and can only be used when:

  • There are no two identical eigenvalues.
  • The start vector is not the null vector.
  • The matrix does not contain complex eigenvalues. (The method will typically work well with a strongly dominated diagonal).

If desired, the eigenvectors can be calculated from the original matrix A. (The deflation method spoils the eigenvector, but not the eigenvalue.)

Examples

Example 1

$$A=\left(\begin{array}{cc}
8 & 4 \\
4 & 6
\end{array}\right)$$
A=\(\left(\begin{array}{cc}
8 & 4 \\
4 & 6
\end{array}\right)\)

keystrokes display
FIX 3
XEQ “EW” DIM?
2 R/S INV.MATRIX:
1:1=0.000?
8 R/S 1:2=0.000?
4 R/S 2:1=0.000?
3 R/S 2:2=0.000?
6 R/S INV.STARTV.:
1:1=0.000?
1 R/S 2:1=0.000?
1 R/S EPS=0.001?
R/S 10.500
:
10.605
EW=10.606
R/S INV.STARTV.:
1:1=0.838?
1 R/S 2:1=0.546?
1 R/S EPS=0.001?
R/S -0.230
3.393
3.394
EW=3.394
R/S EINDE

The computed eigenvalues \(10.606,\ 3.394\) can be verified through:

$$Ax=\lambda x$$

as in

$$\left\{
\begin{aligned}
\left(\begin{array}{cc}
8 & 4 \\
4 & 6
\end{array}\right)\times
\left(\begin{array}{cc}
1.535\\
1
\end{array}\right)
&=
\left(\begin{array}{cc}
8\times1.535 + 4\times1 \\
4\times1.535 + 6\times1
\end{array}\right)\\
&=
\left(\begin{array}{c}
16.280\\
10.606\\
\end{array}\right)
=
10.606\times
\left(\begin{array}{c}
1.535 \\
1
\end{array}\right)\\
\left(\begin{array}{cc}
8 & 4 \\
4 & 6
\end{array}\right)\times
\left(\begin{array}{cc}
-0.8685\\
1
\end{array}\right)
&=
\left(\begin{array}{cc}
8\times(-0.8685) + 4\times1 \\
4\times(-0.8685) + 6\times1
\end{array}\right)\\
&=
\left(\begin{array}{c}
-2.948\\
3.394\\
\end{array}\right)
=
3.394\times
\left(\begin{array}{c}
-0.8695 \\
1
\end{array}\right)
\end{aligned}
\right.$$

This is also verified through the characteristic polynomial. The eigenvalues of \(A\) are precisely the solutions \(\lambda\) to the equation listed below with \(I\) is the \(n\times n\) identify matrix.

$$det(A-\lambda I)=0$$

Therefore

$$\require{amsmath}\require{amssymb}\begin{aligned}
A=\left(\begin{array}{cc}
8 & 4 \\
3 & 6
\end{array}\right)\ \land\ det(A-\lambda I)&=0 \\
\Rightarrow\ det\left[\left(\begin{array}{cc}
8 & 4 \\ 3 & 6
\end{array}\right) –
\lambda \left(
\begin{array}{cc}
8 & 4 \\ 3 & 6
\end{array} \right)\right]&=0\\
\Rightarrow\ det\left(\begin{array}{cc}
8-\lambda & 4\\
3 & 6-\lambda
\end{array}\right)&=0\\
\Rightarrow\ (8-\lambda)(6-\lambda)-(4)(3)=0\\
\\
\Rightarrow\ \lambda^2-14\lambda+36=0
\end{aligned}$$

Source code

  • Requires X-Functions module on the HP-41cv and the Advantage ROM
  • Available as source code, raw for the V41 emulator and bar code for the HP Wand (HP82153A).
  • Size is 39 registers
  • Registers:
    • alfa, X, Y, Z, T, L
    • R00: epsilon
    • R01: loop counter
    • R02: eigenvalue
  • Long jumps:
    • 41
    • 95

Listing

References

[1] Eigenwaarden
Coert Vonk, 27 September 1986
HP User News, SEP86 N9, blz. 48-50
[2] Matrixrekenen
Dictaat Lineaire Algebra, blz. 51 e.v.
Ir. A. van der Knaap
HTS Dordrecht, the Netherlands
[3] Wiskunde voor het HBO Deel 2, blz. 153 e.v.
R. van Asselt
ISBN 90 11 008480
[4] Dictaat Lineaire Algebra 4e druk, blz. 152 ev.
G. W. Decnop & H. van Iperen
ISBN 90 65 620362
[5] Eigenvalues and eigenvectors
Wikipedia
https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
[6] Eigenwerte und Eigenvektoren berechnen
Arndt Brünner
http://www.arndt-bruenner.de/mathe/scripts/engl_eigenwert2.htm
Embedded software developer
Passionately curious and stubbornly persistent. Enjoys to inspire and consult with others to exchange the poetry of logical ideas.

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.