|
|
Line 1: |
Line 1: |
| '''Rayleigh quotient iteration''' is an [[eigenvalue algorithm]] which extends the idea of the [[inverse iteration]] by using the [[Rayleigh quotient]] to obtain increasingly accurate [[eigenvalue]] estimates.
| | [https://www.google.com/search?hl=en&gl=us&tbm=nws&q=Catrina Catrina] Le is what's written on her birth records though she doesn't extremely like being [http://Pinterest.com/search/pins/?q=called+prefer called prefer] that. Software raising is where her center income comes from remember, though , soon her husband and her will start their own business. What my friend loves doing is to get information to karaoke but this woman is thinking on starting a new challenge. For years she's been living located in Vermont. She is running and always keeping a blog here: http://prometeu.net<br><br>Look at my homepage :: clash of clans hack tool [[http://prometeu.net click through the next page]] |
| | |
| Rayleigh quotient iteration is an [[iterative method]], that is, it must be repeated until it [[Limit of a sequence|converges]] to an answer (this is true for all eigenvalue algorithms). Fortunately, very rapid convergence is guaranteed and no more than a few iterations are needed in practice. The Rayleigh quotient iteration algorithm [[rate of convergence|converges cubically]] for Hermitian or symmetric matrices, given an initial vector that is sufficiently close to an [[EigenVector|eigenvector]] of the [[Matrix (mathematics)|matrix]] that is being analyzed.
| |
| | |
| == Algorithm ==
| |
| | |
| The algorithm is very similar to inverse iteration, but replaces the estimated eigenvalue at the end of each iteration with the Rayleigh quotient. Begin by choosing some value <math>\mu_0</math> as an initial eigenvalue guess for the Hermitian matrix <math>A</math>. An initial vector <math>b_0</math> must also be supplied as initial eigenvector guess.
| |
| | |
| Calculate the next approximation of the eigenvector <math>b_{i+1}</math> by
| |
| | |
| <math>
| |
| b_{i+1} = \frac{(A-\mu_i I)^{-1}b_i}{||(A-\mu_i I)^{-1}b_i||},
| |
| </math><br>
| |
| where <math>I</math> is the identity matrix,
| |
| and set the next approximation of the eigenvalue to the Rayleigh quotient of the current iteration equal to<br>
| |
| <math>
| |
| \mu_i = \frac{b^*_i A b_i}{b^*_i b_i}.
| |
| </math>
| |
| | |
| To compute more than one eigenvalue, the algorithm can be combined with a deflation technique.
| |
| | |
| == Example == | |
| | |
| Consider the matrix
| |
| | |
| :<math> | |
| A =
| |
| \left[\begin{matrix}
| |
| 1 & 2 & 3\\
| |
| 1 & 2 & 1\\
| |
| 3 & 2 & 1\\
| |
| \end{matrix}\right]
| |
| </math>
| |
| | |
| for which the exact eigenvalues are <math>\lambda_1 = 3+\sqrt5</math>, <math>\lambda_2 = 3-\sqrt5</math> and <math>\lambda_3 = -2</math>, with corresponding eigenvectors
| |
| | |
| :<math>v_1 = \left[
| |
| \begin{matrix}
| |
| 1 \\
| |
| \varphi-1 \\
| |
| 1 \\
| |
| \end{matrix}\right]</math>, <math>v_2 = \left[
| |
| \begin{matrix}
| |
| 1 \\
| |
| -\varphi \\
| |
| 1 \\
| |
| \end{matrix}\right]</math> and <math>v_3 = \left[
| |
| \begin{matrix}
| |
| 1 \\
| |
| 0 \\
| |
| 1 \\
| |
| \end{matrix}\right]</math>.
| |
| | |
| (where <math>\textstyle\varphi=\frac{1+\sqrt5}2</math> is the golden ratio).
| |
| | |
| The largest eigenvalue is <math>\lambda_1 \approx 5.2361</math> and corresponds to any eigenvector proportional to <math>v_1 \approx \left[
| |
| \begin{matrix}
| |
| 1 \\
| |
| 0.6180 \\
| |
| 1 \\
| |
| \end{matrix}\right].
| |
| </math>
| |
| | |
| We begin with an initial eigenvalue guess of
| |
| | |
| :<math>b_0 =
| |
| \left[\begin{matrix}
| |
| 1 \\
| |
| 1 \\
| |
| 1 \\
| |
| \end{matrix}\right], ~\mu_0 = 200</math>.
| |
| | |
| Then, the first iteration yields
| |
| | |
| :<math>b_1 \approx
| |
| \left[\begin{matrix}
| |
| -0.57927 \\
| |
| -0.57348 \\
| |
| -0.57927 \\
| |
| \end{matrix}\right], ~\mu_1 \approx 5.3355
| |
| </math> | |
| | |
| the second iteration,
| |
| | |
| :<math>b_2 \approx | |
| \left[\begin{matrix}
| |
| 0.64676 \\
| |
| 0.40422 \\
| |
| 0.64676 \\
| |
| \end{matrix}\right], ~\mu_2 \approx 5.2418
| |
| </math>
| |
| | |
| and the third,
| |
| | |
| :<math>b_3 \approx | |
| \left[\begin{matrix}
| |
| -0.64793 \\
| |
| -0.40045 \\
| |
| -0.64793 \\
| |
| \end{matrix}\right], ~\mu_3 \approx 5.2361
| |
| </math>
| |
| | |
| from which the cubic convergence is evident.
| |
| | |
| == Octave Implementation ==
| |
| | |
| The following is a simple implementation of the algorithm in [[GNU Octave|Octave]].
| |
| | |
| <source lang="matlab">
| |
| function x = rayleigh(A,epsilon,mu,x)
| |
| x = x / norm(x);
| |
| y = (A-mu*eye(rows(A))) \ x;
| |
| lambda = y'*x;
| |
| mu = mu + 1 / lambda
| |
| err = norm(y-lambda*x) / norm(y)
| |
| while err > epsilon
| |
| x = y / norm(y);
| |
| y = (A-mu*eye(rows(A))) \ x;
| |
| lambda = y'*x;
| |
| mu = mu + 1 / lambda
| |
| err = norm(y-lambda*x) / norm(y)
| |
| end
| |
| end
| |
| </source>
| |
| | |
| == See also ==
| |
| * [[Power iteration]]
| |
| * [[Inverse iteration]]
| |
| | |
| ==References==
| |
| * Lloyd N. Trefethen and David Bau, III, ''Numerical Linear Algebra'', Society for Industrial and Applied Mathematics, 1997. ISBN 0-89871-361-7.
| |
| * Rainer Kress, "Numerical Analysis", Springer, 1991. ISBN 0-387-98408-9
| |
| | |
| {{Numerical linear algebra}}
| |
| | |
| [[Category:Numerical linear algebra]]
| |
Catrina Le is what's written on her birth records though she doesn't extremely like being called prefer that. Software raising is where her center income comes from remember, though , soon her husband and her will start their own business. What my friend loves doing is to get information to karaoke but this woman is thinking on starting a new challenge. For years she's been living located in Vermont. She is running and always keeping a blog here: http://prometeu.net
Look at my homepage :: clash of clans hack tool [click through the next page]