The power iteration is an eigenvalue algorithm. For any given real symmetric matrix A, the
algorithm will generate an eigenvalue λ and a non zero eigenvector x,
such that,
The power iteration is probably the simplest method for finding the eigenvalue and eigenvector of a real symmetric matrix.
However, it will find only a single eigenvalue (the one with the largest absolute value) and it may converge slowly.
Algorithm Creation
Suppose A is an [n x n] real symmetric matrix and v0
is any vector of length n.
We perform the following operations: (v-vector, A-matrix)
The above operations generate a series of vectors, v0, v1, v2,... . It
turns out that these vectors converge to the eigenvector that corresponds to the eigenvalue with the largest absolute. The proof
to confirm this theory is not shown.
The Power method is a method for finding the largest eigenvalue (in absolute value) and the corresponding eigenvector.
Running this set up produces the results shown above.
We believe the best way to show how our Power algorithm works
is by running real-time and showing results ready to compare. The reader can try variations above by entering new values.
Testing the Eigenvalue Power Method
In order to test the Power method as defined above, a new TestPower()
static method has been added and executed. Supporting code and methods are not shown.
►
|
static void TestPower();
{
ListBox1.Items.Clear();
ListBox2.Items.Clear();
double[] x;
MatrixR A = new MatrixR(new double[,] { { t1, t2, t3 }, { t4, t5, t6 },
{ t7, t8, t9 } });
VectorR x;
double lambda;
Eigenvalue.Power(A, 1e-5, out x, out lambda);
ListBox1.Items.Add(" " + lambda);
ListBox2.Items.Add(" " + x);
}
|
|