Files
MultiPhysicsVault/.raw/FiniteElementProcedures/FiniteElementProcedures_091.md
T
김경종 4cc312954f
Tests / Hermetic test suite (push) Has been cancelled
Tests / Skill frontmatter validation (push) Has been cancelled
add wiki
2026-05-28 17:16:48 +09:00

364 lines
28 KiB
Markdown

<!-- source-page: 901 -->
Similarly, assuming that $\overline{\Phi}$ is an approximation to $\phi_{2}$ , we obtain
$$
\| \overline {{{\boldsymbol {\phi}}}} - \alpha_ {2} \boldsymbol {\phi} _ {2} \| _ {2} \leq 1
$$
and in both cases the bound obtained is very large (note that $\| \phi_1 \|_2 = 1$ and $\| \phi_2 \|_2 = 1$ ), indicating that $\overline{\Phi}$ does not approximate an eigenvector.
# Generalized Eigenproblem
Consider now that we wish to estimate the accuracy obtained in the solution of a generalized eigenproblem $K\phi = \lambda M\phi$ . Assume that we have calculated as an approximation to $\lambda_{i}$ and $\phi_{i}$ the values $\bar{\lambda}$ and $\bar{\phi}$ . Then, in analogy to the calculations performed above, we can calculate an error vector $r_{M}$ , where
$$
\mathbf {r} _ {\mathbf {M}} = \mathbf {K} \overline {{{\phi}}} - \overline {{{\lambda}}} \mathbf {M} \overline {{{\phi}}} \tag {10.103}
$$
In order to relate the error vector in (10.103) to the error vector that corresponds to the standard eigenproblem, we use $M = SS^{T}$ , and then
$$
\mathbf {r} = \tilde {\mathbf {K}} \tilde {\boldsymbol {\phi}} - \bar {\lambda} \tilde {\boldsymbol {\phi}} \tag {10.104}
$$
where $r = S^{-1}r_{M}$ , $\tilde{\phi} = S^{T}\overline{\phi}$ , and $\tilde{K} = S^{-1}KS^{-T}$ (see Section 10.2.5). It is the vector $S^{-1}r_{M}$ that we would need to use, therefore, to calculate the error bound given in (10.101). These error bound calculations would require the factorization of M into $SS^{T}$ , where it is assumed that M is positive definite. $^{1}$
# During Computations
In actual computations we frequently use the method of inverse iteration (see Sections 11.2 and 11.6), and then an error bound based on the following evaluations can be efficiently obtained (see H. Matthies [A] and also Exercise 10.11). Let
$$
\mathbf {K} \overline {{{\boldsymbol {\phi}}}} = \mathbf {M} \hat {\boldsymbol {\phi}} \tag {10.105}
$$
Then we have $\min_{i}\left|\lambda_{i}-\rho(\overline{\Phi})\right| \leq \left\{\left(\frac{\hat{\Phi}^{T}\mathbf{M}\hat{\Phi}}{\overline{\Phi}^{T}\mathbf{M}\overline{\Phi}}\right)-\left[\rho(\overline{\Phi})\right]^{2}\right\}^{1/2}$ (10.106)
and $\min_{\substack{i\\ \lambda_{i}\neq 0}}\left|\frac{\lambda_{i} - \rho(\overline{\Phi})}{\lambda_{i}}\right|\leq \left\{1 - \frac{(\rho(\overline{\Phi}))^{2}}{\hat{\Phi}^{T}\mathbf{M}\hat{\Phi} / \overline{\Phi}^{T}\mathbf{M}\overline{\Phi}}\right\}^{1 / 2}$ (10.107)
where $\rho (\overline{\Phi})$ is the Rayleigh quotient,
$$
\rho (\overline {{\phi}}) = \frac {\overline {{\phi}} ^ {T} \mathbf {K} \overline {{\phi}}}{\overline {{\phi}} ^ {T} \mathbf {M} \overline {{\phi}}}
$$
We will see that (10.105) is the typical step in an inverse iteration, Lanczos iteration, and subspace iteration, and $\rho(\overline{\Phi})$ is in practice also almost always calculated because of the good approximation quality of the Rayleigh quotient to an eigenvalue. Notice also that the term $\hat{\Phi}^T\mathbf{M}\hat{\Phi}/\overline{\Phi}^T\mathbf{M}\overline{\Phi}$ consists of two numbers that are easily calculated in the iterations.
While the above error bounds are very effective, it is finally also of interest to consider the following simple error measure:
$$
\epsilon = \frac {\| \mathbf {K} \overline {{{\boldsymbol {\phi}}}} - \overline {{{\lambda}}} \mathbf {M} \overline {{{\boldsymbol {\phi}}}} \| _ {2}}{\| \mathbf {K} \overline {{{\boldsymbol {\phi}}}} \| _ {2}} \tag {10.108}
$$
$^{1}$ To avoid the factorization of M we may instead consider the problem $M\phi = \lambda^{-1}K\phi$ if the factorization of K is already available, and then establish bounds on $\lambda^{-1}$ .
<!-- source-page: 902 -->
Since, physically, $K\overline{\Phi}$ represents the elastic nodal point forces and $\overline{\lambda}M\overline{\Phi}$ represents the inertia nodal point forces when the finite element assemblage is vibrating in the mode $\overline{\Phi}$ , we evaluate in (10.108) the norm of out-of-balance nodal point forces divided by the norm of elastic nodal point forces. This quantity should be small if $\overline{\lambda}$ and $\overline{\Phi}$ are an accurate solution of an eigenpair.
If $\mathbf{M} = \mathbf{I}$ , it should be noted that we can write
$$
\overline {{{\lambda}}} \epsilon = \| \mathbf {r} \| _ {2} \tag {10.109}
$$
and hence,
$$
\epsilon \geq \min _ {i} \frac {\left| \lambda_ {i} - \overline {{{\lambda}}} \right|}{\overline {{{\lambda}}}} \tag {10.110}
$$
EXAMPLE 10.23: Consider the eigenproblem $K\phi = \lambda M\phi$ , where
$$
\mathbf {K} = \left[ \begin{array}{c c} 1 0 & - 1 0 \\ - 1 0 & 1 0 0 \end{array} \right]; \quad \mathbf {M} = \left[ \begin{array}{c c} 2 & 1 \\ 1 & 4 \end{array} \right]
$$
The exact eigenvalues and eigenvectors to 12-digit precision are
$$
\lambda_ {1} = 3. 8 6 3 3 8 5 5 1 2 8 7 6; \quad \phi_ {1} = \left[ \begin{array}{l} 0. 6 4 0 7 7 6 0 1 1 2 4 6 \\ 0. 1 0 5 0 7 0 3 3 7 5 0 3 \end{array} \right]
$$
$$
\lambda_ {2} = 3 3. 2 7 9 4 7 1 6 2 9 9 8 2; \quad \Phi_ {2} = \left[ \begin{array}{c} - 0. 4 0 1 0 4 1 9 8 6 3 8 0 \\ 0. 5 2 4 0 9 3 9 8 9 5 5 8 \end{array} \right]
$$
Assume that $\overline{\Phi} = (\Phi_1 + \delta \Phi_2)c$ , where $c$ is such that $\overline{\Phi}^T\mathbf{M}\overline{\Phi} = 1$ and $\delta = 10^{-1}$ , $10^{-3}$ , and $10^{-6}$ . For each value of $\delta$ evaluate $\overline{\lambda}$ as the Rayleigh quotient of $\overline{\Phi}$ and calculate the error bounds based on (10.104), (10.106), and the error measure $\epsilon$ given in (10.108).
The following table summarizes the results obtained. The equations used to evaluate the quantities are given in (10.103) to (10.108). The results in the table show that for each value of $\delta$ the error bounds are satisfied and that $\epsilon$ is also small for an accurate solution.
<table><tr><td> $\delta$ </td><td> $10^{-1}$ </td><td> $10^{-3}$ </td><td> $10^{-6}$ </td></tr><tr><td rowspan="2"> $\overline{\phi}$ </td><td>0.597690792656</td><td>0.640374649073</td><td>0.640775610204</td></tr><tr><td>0.156698194481</td><td>0.105594378695</td><td>0.105070861597</td></tr><tr><td> $\overline{\phi}^{T}K\overline{\phi}$ </td><td>4.154633890275</td><td>3.863414928932</td><td>3.863385512905</td></tr><tr><td> $\overline{\lambda}$ </td><td>4.154633890275</td><td>3.863414928932</td><td>3.863385512905</td></tr><tr><td rowspan="2"> $r_{M}$ </td><td>-1.207470493734</td><td>-0.008218153965</td><td>-0.000008177422</td></tr><tr><td>4.605630581124</td><td>0.049838803226</td><td>0.000049870085</td></tr><tr><td rowspan="2"> $r$ </td><td>1.634419466242</td><td>0.021106743617</td><td>0.000021152364</td></tr><tr><td>1.411679295681</td><td>0.015042545327</td><td>0.000015049775</td></tr><tr><td> $|\lambda_{1}-\overline{\lambda}|$ </td><td>0.291248377399</td><td>0.000029416056</td><td>0.000000000029</td></tr><tr><td>Bound(10.101/10.104)</td><td>2.159667897036</td><td>0.025918580132</td><td>0.000025959936</td></tr><tr><td>Bound(10.106)</td><td>2.912483773983</td><td>0.029416056744</td><td>0.000029433139</td></tr><tr><td>Measure(10.108)</td><td>0.447113235813</td><td>0.007458208660</td><td>0.000007491764</td></tr></table>
<!-- source-page: 903 -->
# 10.4.2 Exercises
10.11. The following error bound is discussed by J. Stoer and R. Bulirsch [A]. Let $\mathbf{A}$ be a symmetric matrix and $\lambda_{i}$ be an eigenvalue of $\mathbf{A}$ ; then
$$
\min _ {i} \left| \lambda_ {i} - \frac {\mathbf {x} ^ {T} \mathbf {A x}}{\mathbf {x} ^ {T} \mathbf {x}} \right| \leq \sqrt {\frac {\mathbf {x} ^ {T} \mathbf {A A x}}{\mathbf {x} ^ {T} \mathbf {x}} - \left(\frac {\mathbf {x} ^ {T} \mathbf {A x}}{\mathbf {x} ^ {T} \mathbf {x}}\right) ^ {2}}
$$
for any vector x ≠ 0.
Show that (10.105) to (10.107) follow from this formula.
10.12. Consider the eigenproblem in Exercise 10.1. Let
$$
\hat {\boldsymbol {\phi}} = \left[ \begin{array}{c} 1 \\ 1 \\ 1 \end{array} \right]
$$
Calculate $\overline{\Phi}$ using (10.105) and $\rho(\overline{\Phi})$ . These values, $\rho(\overline{\Phi})$ and $\overline{\Phi}$ , are now the best approximations to an eigenvalue and eigenvector.
Establish the error bounds (10.101) [with (10.103)] and (10.106). Also evaluate the error measure (10.108).
<!-- source-page: 904 -->
# Solution Methods for Eigenproblems
# 11.1 INTRODUCTION
In Chapter 10 we discussed the basic facts that are used in eigenvalue and vector solutions and some techniques for the calculation of approximations to the required eigensystem. The purpose of this chapter is to present effective eigensolution techniques. The methods considered here are based on the fundamental aspects discussed in Chapter 10. Therefore, for a thorough understanding of the solution techniques to be presented in this chapter, it is necessary to be very familiar with the material discussed in Chapter 10. In addition, we also employ the notation that was defined in that chapter.
As before, we concentrate on the solution of the eigenproblem
$$
\mathbf {K} \boldsymbol {\phi} = \lambda \mathbf {M} \boldsymbol {\phi} \tag {11.1}
$$
and, in particular, on the calculation of the smallest eigenvalues $\lambda_1, \ldots, \lambda_p$ and corresponding eigenvectors $\phi_1, \ldots, \phi_p$ . The solution methods that we consider here first (see Sections 11.2 to 11.4) can be subdivided into four groups, corresponding to which basic property is used as the basis of the solution algorithm (see, for example, J. H. Wilkinson [A]).
The vector iteration methods make up the first group, in which the basic property used is that
$$
\mathbf {K} \boldsymbol {\phi} _ {i} = \lambda_ {i} \mathbf {M} \boldsymbol {\phi} _ {i} \tag {11.2}
$$
The transformation methods constitute the second group, using
$$
\Phi^ {T} \mathbf {K} \Phi = \Lambda \tag {11.3}
$$
and $\Phi^T\mathbf{M}\Phi = \mathbf{I}$ (11.4)
where $\Phi = [\phi_1, \ldots, \phi_n]$ and $\Lambda = \mathrm{diag}(\lambda_i)$ , $i = 1, \ldots, n$ . The solution methods of the
<!-- source-page: 905 -->
third group are polynomial iteration techniques that operate on the fact that
$$
p \left(\lambda_ {i}\right) = 0 \tag {11.5}
$$
where $p(\lambda) = \det (\mathbf{K} - \lambda \mathbf{M})$ (11.6)
The solution methods of the fourth group employ the Sturm sequence property of the characteristic polynomials
$$
p (\lambda) = \det (\mathbf {K} - \lambda \mathbf {M}) \tag {11.7}
$$
and $p^{(r)}(\lambda^{(r)}) = \det (\mathbf{K}^{(r)} - \lambda^{(r)}\mathbf{M}^{(r)});\qquad r = 1,\dots ,n - 1$ (11.8)
where $p^{(r)}(\lambda^{(r)})$ is the characteristic polynomial of the $r$ th associated constraint problem corresponding to $\mathbf{K}\boldsymbol{\Phi} = \lambda \mathbf{M}\boldsymbol{\Phi}$ .
A number of solution algorithms have been developed within each of these four groups of solution methods. However, for an effective calculation of the required eigensystem of $K\phi = \lambda M\phi$ , only a few techniques need to be considered, and we present important methods for finite element analysis in the following sections. Vector iteration and transformation methods are presented separately in Sections 11.2 and 11.3, respectively. However, polynomial and Sturm sequence iteration methods are presented together in one section, Section 11.4, because both of these methods use the characteristic polynomials and can be directly employed in one solution scheme. In addition to those techniques that can be classified as falling into one of the four groups, we discuss in Sections 11.5 and 11.6 the Lanczos method and the subspace iteration method, both of which use a combination of the fundamental properties given in (11.2) to (11.8).
Before presenting the solution techniques of interest, a few basic additional points should be noted. It is important to realize that all solution methods must be iterative in nature because, basically, solving the eigenvalue problem $K\phi = \lambda M\phi$ is equivalent to calculating the roots of the polynomial $p(\lambda)$ , which has order equal to the order of K and M. Since there are for the general case no explicit formulas available for the calculation of the roots of $p(\lambda)$ when the order of p is larger than 4, an iterative solution method has to be used. However, before iteration is started, we may choose to transform the matrices K and M into a form that allows a more economical solution of the required eigensystem (see Section 11.3.3).
Although iteration is needed in the solution of an eigenpair $(\lambda_{i}, \phi_{i})$ , it should be noted that once one member of the eigenpair has been calculated, we can obtain the other member without further iteration. Assume that $\lambda_{i}$ has been evaluated by iteration; then we can obtain $\phi_{i}$ using (11.2); i.e., $\phi_{i}$ is calculated by solving
$$
(\mathbf {K} - \lambda_ {i} \mathbf {M}) \boldsymbol {\phi} _ {i} = \mathbf {0} \tag {11.9}
$$
On the other hand, if we have evaluated $\phi_{i}$ by iteration, we can obtain the required eigenvalue from the Rayleigh quotient; i.e., using (11.3) and (11.4), we have
$$
\boldsymbol {\lambda} _ {i} = \boldsymbol {\phi} _ {i} ^ {T} \mathbf {K} \boldsymbol {\phi} _ {i}; \quad \boldsymbol {\phi} _ {i} ^ {T} \mathbf {M} \boldsymbol {\phi} _ {i} = 1 \tag {11.10}
$$
Therefore, when considering the design of an effective solution method, a basic question is whether we should first solve for the eigenvalue $\lambda_{i}$ and then calculate the eigenvector $\phi_{i}$ , or vice versa, or whether it is most economical to solve for both $\lambda_{i}$ and $\phi_{i}$ simultaneously. The answer to this question depends on the solution requirements and the properties of the matrices K and M, i.e., such factors as the number of required eigenpairs, the order of K and M, the bandwidth of K, and whether M is banded.
<!-- source-page: 906 -->
The effectiveness of a solution method depends largely on two factors: first, the possibility of a reliable use of the procedure, and second, the cost of solution. The solution cost is essentially determined by the number of high-speed storage operations and an efficient use of backup storage devices. However, it is most important that a solution method can be employed in a reliable manner. This means that for well-defined stiffness and mass matrices the solution is always obtained to the required precision without solution breakdown. In practice, a solution is then interrupted only when the problem is ill-defined; for example, due to a data input error the stiffness and mass matrices are not properly defined. This solution interruption then occurs best as early as possible during the calculations, i.e., prior to any large computational expense. We should study the algorithms presented in the following with these considerations.
# 11.2 VECTOR ITERATION METHODS
As has been pointed out already, in the solution of an eigenvector or an eigenvalue we need to use iteration. In Section 11.1 we classified the solution methods according to the basic relation on which they operate. In the vector iteration methods the basic relation considered is
$$
\mathbf {K} \phi = \lambda \mathbf {M} \phi \tag {11.1}
$$
The aim is to satisfy the equation in (11.1) by directly operating on it. Consider that we assume a vector for $\Phi$ , say $\mathbf{x}_1$ , and assume a value for $\lambda$ , say $\lambda = 1$ . We can then evaluate the right-hand side of (11.1); i.e., we may calculate
$$
\mathbf {R} _ {1} = (1) \mathbf {M} \mathbf {x} _ {1} \tag {11.11}
$$
Since $x_{1}$ is an arbitrarily assumed vector, we do not have, in general, $Kx_{1} = R_{1}$ . If $Kx_{1}$ were equal to $R_{1}$ , then $x_{1}$ would be an eigenvector and, except for trivial cases, our assumptions would have been extremely lucky. Instead, we have an equilibrium equation as encountered in static analysis (see Section 8.2), which we may write
$$
\mathbf {K} \mathbf {x} _ {2} = \mathbf {R} _ {1}; \quad \mathbf {x} _ {2} \neq \mathbf {x} _ {1} \tag {11.12}
$$
where $x_{2}$ is the displacement solution corresponding to the applied forces $R_{1}$ . Since we know that we have to use iteration to solve for an eigenvector, we may now feel intuitively that $x_{2}$ may be a better approximation to an eigenvector than $x_{1}$ was. This is indeed the case, and by repeating the cycle we obtain an increasingly better approximation to an eigenvector.
This procedure is the basis of inverse iteration. We will see that other vector iteration techniques work in a similar way. Specifically, in forward iteration, the iterative cycle is reversed; i.e., in the first step we evaluate $R_{1} = Kx_{1}$ and then obtain the improved approximation, $x_{2}$ , to an eigenvector by solving $Mx_{2} = R_{1}$ .
The basic steps of the vector iteration schemes and of the other solution methods that we consider later can be introduced using intuition. Namely, we need to satisfy one of the basic relations summarized in Section 11.1 and try to do so by some iterative cycle. However, the real justification for using any one of the methods derives from the fact that they do work and that they can be used economically.
<!-- source-page: 907 -->
# 11.2.1 Inverse Iteration
The technique of inverse iteration is very effectively used to calculate an eigenvector, and at the same time the corresponding eigenvalue can also be evaluated. Inverse iteration is employed in various important iteration procedures, including the subspace iteration method described in Section 11.6. It is therefore important that we discuss the method in detail.
In this section we assume that K is positive definite, whereas M may be a diagonal mass matrix with or without zero diagonal elements or may be a banded mass matrix. If K is only positive semidefinite, a shift should be used prior to the iteration (see Section 11.2.3).
In the following we first consider the basic equations used in inverse iteration and then present a more effective form of the technique. In the solution we assume a starting iteration vector $x_{1}$ and then evaluate in each iteration step $k = 1, 2, \ldots$ :
$$
\mathbf {K} \overline {{{\mathbf {x}}}} _ {k + 1} = \mathbf {M} \mathbf {x} _ {k} \tag {11.13}
$$
and $\mathbf{x}_{k + 1} = \frac{\overline{\mathbf{x}}_{k + 1}}{(\overline{\mathbf{x}}_k^T + \mathbf{M}\overline{\mathbf{x}}_{k + 1})^{1 / 2}}$ (11.14)
where provided that $x_{1}$ is not M-orthogonal to $\phi_{1}$ , meaning that $x_{1}^{T}M\phi_{1} \neq 0$ , we have
$$
\mathbf {x} _ {k + 1} \rightarrow \phi_ {1} \quad \text { as } k \rightarrow \infty
$$
The basic step in the iteration is the solution of the equations in (11.13) in which we evaluate a vector $\overline{x}_{k+1}$ with a direction closer to an eigenvector than had the previous iteration vector $x_{k}$ . The calculation in (11.14) merely ensures that the M-weighted length of the new iteration vector $x_{k+1}$ is unity; i.e., we want $x_{k+1}$ to satisfy the mass orthonormality relation
$$
\mathbf {x} _ {k + 1} ^ {T} \mathbf {M} \mathbf {x} _ {k + 1} = 1 \tag {11.15}
$$
Substituting for $x_{k+1}$ from (11.14) into (11.15), we find that (11.15) is indeed satisfied. If the scaling in (11.14) is not included in the iteration, the elements of the iteration vectors grow (or decrease) in each step and the iteration vectors do not converge to $\phi_{1}$ but to a multiple of it. We illustrate the procedure by means of the following example.
EXAMPLE 11.1: Consider the eigenproblem $\mathbf{K}\phi = \lambda \mathbf{M}\phi$ , where
$$
\mathbf {K} = \left[ \begin{array}{r r r r} 2 & - 1 & 0 & 0 \\ - 1 & 2 & - 1 & 0 \\ 0 & - 1 & 2 & - 1 \\ 0 & 0 & - 1 & 1 \end{array} \right]; \quad \mathbf {M} = \left[ \begin{array}{c c c c} 0 & & & \\ & 2 & & \\ & & 0 & \\ & & & 1 \end{array} \right]
$$
The eigenvalues and corresponding vectors of the problem have been evaluated in Examples 10.12 and 10.13. Use two steps of inverse iteration to evaluate an approximation to $\phi_{1}$ .
The first step is to decompose $\mathbf{K}$ into $\mathbf{LDL}^T$ in order to be able to solve the equations in (11.13). We obtained the triangular factors of $\mathbf{K}$ in Example 10.13.
As starting iteration vector we need a vector that is not orthogonal to $\phi_{1}$ . Since we do not know $\phi_{1}$ , we cannot make sure that $\phi_{1}^{T}\mathbf{M}\mathbf{x}_{1} \neq 0$ , but we want to pick a vector that is not likely to be orthogonal to $\phi_{1}$ . Experience has shown that a good starting vector is in many cases a unit full vector (but see Example 11.6 for a case in which a unit full vector is a bad choice). In this
<!-- source-page: 908 -->
example we use
$$
\mathbf {x} _ {1} ^ {T} = \left[ \begin{array}{l l l l} 1 & 1 & 1 & 1 \end{array} \right]
$$
and then obtain, for k = 1,
$$
\left[ \begin{array}{r r r r} 2 & - 1 & 0 & 0 \\ - 1 & 2 & - 1 & 0 \\ 0 & - 1 & 2 & - 1 \\ 0 & 0 & - 1 & 1 \end{array} \right] \overline {{\mathbf {x}}} _ {2} = \left[ \begin{array}{c c c c} 0 & & & \\ & 2 & & \\ & & 0 & \\ & & & 1 \end{array} \right] \left[ \begin{array}{l} 1 \\ 1 \\ 1 \\ 1 \end{array} \right]
$$
Hence, $\overline{\mathbf{x}}_2 = \begin{bmatrix} 3 \\ 6 \\ 7 \\ 8 \end{bmatrix}$ ; $\overline{\mathbf{x}}_2^T \mathbf{M} \overline{\mathbf{x}}_2 = 136$
and $\mathbf{x}_2 = \frac{1}{\sqrt{136}}\begin{bmatrix} 3 \\ 6 \\ 7 \\ 8 \end{bmatrix}$
Note that the zero diagonal elements in $\mathbf{M}$ do not introduce solution difficulties. Proceeding to the next iteration, $k = 2$ , we use
$$
\left[ \begin{array}{r r r r} 2 & - 1 & 0 & 0 \\ - 1 & 2 & - 1 & 0 \\ 0 & - 1 & 2 & - 1 \\ 0 & 0 & - 1 & 1 \end{array} \right] \overline {{{\mathbf {x}}}} _ {3} = \left[ \begin{array}{c c c c} 0 & & & \\ & 2 & & \\ & & 0 & \\ & & & 1 \end{array} \right] \left[ \begin{array}{c} \frac {3}{\sqrt {1 3 6}} \\ \frac {6}{\sqrt {1 3 6}} \\ \frac {7}{\sqrt {1 3 6}} \\ \frac {8}{\sqrt {1 3 6}} \end{array} \right]
$$
Hence, $\overline{\mathbf{x}}_3 = \frac{1}{\sqrt{136}}\left[ \begin{array}{l}20\\ 40\\ 48\\ 56 \end{array} \right];\qquad \overline{\mathbf{x}}_3^T\mathbf{M}\overline{\mathbf{x}}_3 = \frac{6336}{136}$
and $\mathbf{x}_3 = \frac{1}{\sqrt{6336}}\left[ \begin{array}{l}20\\ 40\\ 48\\ 56 \end{array} \right]$
Comparing $x_{3}$ with the exact solution (see Example 10.12), we have
$$
\mathbf {x} _ {3} = \left[ \begin{array}{l} 0. 2 5 1 \\ 0. 5 0 3 \\ 0. 6 0 3 \\ 0. 7 0 4 \end{array} \right] \quad \text { and } \quad \boldsymbol {\phi} _ {1} = \left[ \begin{array}{l} 0. 2 5 0 \\ 0. 5 0 0 \\ 0. 6 0 2 \\ 0. 7 0 7 \end{array} \right]
$$
Hence, with only two iterations we have already obtained a fair approximation to $\phi_{1}$ .
<!-- source-page: 909 -->
The relations in (11.13) and (11.14) state the basic inverse iteration algorithm. However, in actual computer implementation it is more effective to iterate as follows. Assuming that $y_{1} = Mx_{1}$ , we evaluate for $k = 1, 2, \ldots$ ,
$$
\mathbf {K} \overline {{{\mathbf {x}}}} _ {k + 1} = \mathbf {y} _ {k} \tag {11.16}
$$
$$
\overline {{{\mathbf {y}}}} _ {k + 1} = \mathbf {M} \overline {{{\mathbf {x}}}} _ {k + 1} \tag {11.17}
$$
$$
\rho (\overline {{{\mathbf {x}}}} _ {k + 1}) = \frac {\overline {{{\mathbf {x}}}} _ {k + 1} ^ {T} \overline {{{\mathbf {y}}}} _ {k}}{\overline {{{\mathbf {x}}}} _ {k + 1} ^ {T} \overline {{{\mathbf {y}}}} _ {k + 1}} \tag {11.18}
$$
$$
\mathbf {y} _ {k + 1} = \frac {\overline {{\mathbf {y}}} _ {k + 1}}{(\overline {{\mathbf {x}}} _ {k + 1} ^ {T} \overline {{\mathbf {y}}} _ {k + 1}) ^ {1 / 2}} \tag {11.19}
$$
where, provided that $y_{1}^{T}\phi_{1} \neq 0$ ,
$$
\mathbf {y} _ {k + 1} \rightarrow \mathbf {M} \boldsymbol {\phi} _ {1} \quad \text { and } \quad \rho (\overline {{\mathbf {x}}} _ {k + 1}) \rightarrow \lambda_ {1} \quad \text { as } \quad k \rightarrow \infty
$$
It should be noted that we essentially dispense in (11.16) to (11.19) with the calculation of the matrix product $\mathbf{M}\mathbf{x}_k$ in (11.13) by iterating on $\mathbf{y}_k$ rather than on $\mathbf{x}_k$ . But the value of $\overline{\mathbf{y}}_{k+1}$ is evaluated in either procedure; i.e., $\overline{\mathbf{y}}_{k+1}$ must be calculated in (11.14) and is evaluated in (11.17). Using the second iteration procedure, we obtain in (11.18) an approximation to the eigenvalue $\lambda_1$ given by the Rayleigh quotient $\rho(\overline{\mathbf{x}}_{k+1})$ . It is this approximation to $\lambda_1$ that is conveniently used to measure convergence in the iteration. Denoting the current approximation to $\lambda_1$ by $\lambda_1^{(k+1)}$ [i.e., $\lambda_1^{(k+1)} = \rho(\overline{\mathbf{x}}_{k+1})$ ], we measure convergence using
$$
\frac {\left| \lambda_ {1} ^ {(k + 1)} - \lambda_ {1} ^ {(k)} \right|}{\lambda_ {1} ^ {(k + 1)}} \leq t o l \tag {11.20}
$$
or (10.107) is used for the left-hand side in (11.20), where tol should be $10^{-2s}$ or smaller when the eigenvalue $\lambda_{1}$ is required to 2s-digit accuracy. The use of the right-hand side of (10.107) is preferable but requires more computations, and it is in general sufficient to evaluate the error bound in (10.107) only after (11.20) has been met and to restart the iteration if the error is considered to be too large.
The eigenvector will then be accurate to about $s$ or more digits [see text following (11.33)]. Let $l$ be the last iteration; then we have
$$
\lambda_ {1} \doteq \rho (\overline {{{\mathbf {x}}}} _ {i + 1}) \tag {11.21}
$$
and $\phi_{1} \doteq \frac{\overline{\mathbf{x}}_{l+1}}{(\overline{\mathbf{x}}_{l+1}^{T} \overline{\mathbf{y}}_{l+1})^{1/2}}$ (11.22)
EXAMPLE 11.2: Use the inverse iteration procedure given in (11.16) to (11.19) to evaluate an approximation to $\lambda_{1}$ and $\phi_{1}$ of the eigenproblem $\mathbf{K}\phi = \lambda \mathbf{M}\phi$ considered in Example 11.1. Use $tol = 10^{-6}$ (i.e., $s = 3$ ) in (11.20), in order to measure convergence.
As in Example 11.1, we start the iteration with
$$
\mathbf {x} _ {1} = \left[ \begin{array}{l} 1 \\ 1 \\ 1 \\ 1 \end{array} \right]
$$
<!-- source-page: 910 -->
Proceeding as given in (11.16) to (11.19), we obtain for $k = 1$ ,
$$
\mathbf {y} _ {1} = \left[ \begin{array}{l} 0 \\ 2 \\ 0 \\ 1 \end{array} \right]; \quad \overline {{\mathbf {x}}} _ {2} = \left[ \begin{array}{l} 3 \\ 6 \\ 7 \\ 8 \end{array} \right]; \quad \overline {{\mathbf {y}}} _ {2} = \left[ \begin{array}{l} 0 \\ 1 2 \\ 0 \\ 8 \end{array} \right]; \quad \rho (\overline {{\mathbf {x}}} _ {2}) = \frac {\overline {{\mathbf {x}}} _ {2} ^ {T} \mathbf {y} _ {1}}{\overline {{\mathbf {x}}} _ {2} ^ {T} \overline {{\mathbf {y}}} _ {2}} = 0. 1 4 7 0 5 8 8
$$
and $y_{2}=\begin{bmatrix}0.0\\ 1.02899\\ 0.0\\ 0.68599\end{bmatrix}$
The next iterations are carried out in the same way. The results are summarized in Table E11.2. It is seen that after five iterations, convergence has been achieved. It should be noted that the Rayleigh quotient $\rho(\overline{\mathbf{x}}_{k+1})$ converges much faster than the vector $\overline{\mathbf{x}}_{k+1}$ (see Example 11.3) and converges from above to $\lambda_1$ . Using (11.21) and (11.22), we have
$$
\lambda_ {1} \doteq 0. 1 4 6 4 4 7; \quad \phi_ {1} \doteq \left[ \begin{array}{l} 0. 2 5 0 0 1 \\ 0. 5 0 0 0 1 \\ 0. 6 0 3 5 5 \\ 0. 7 0 7 0 9 \end{array} \right]
$$
Also, at the end of iteration 5 we have $\left|\lambda_{1}^{\mathrm{exact}}-\rho(\overline{\mathbf{x}}_{6})\right|/\lambda_{1}^{\mathrm{exact}}=3.14\times10^{-9}$ and the right-hand side in (10.107) is $1.23\times10^{-4}$ . Note that in this case (10.107) significantly overestimates the error.
TABLE E11.2
<table><tr><td>k</td><td> $\overline{\mathbf{x}}_{k+1}$ </td><td> $\overline{\mathbf{y}}_{k+1}$ </td><td> $\rho(\overline{\mathbf{x}}_{k+1})$ </td><td> $\frac{|\lambda_{1}^{(k+1)} - \lambda_{1}^{(k)}|}{\lambda_{1}^{(k+1)}}$ </td><td> $\mathbf{y}_{k}$ </td></tr><tr><td rowspan="4">1</td><td>3</td><td>0</td><td rowspan="4">0.1470588</td><td rowspan="4">—</td><td>0</td></tr><tr><td>6</td><td>12</td><td>1.02899</td></tr><tr><td>7</td><td>0</td><td>0</td></tr><tr><td>8</td><td>8</td><td>0.68599</td></tr><tr><td rowspan="4">2</td><td>1.71499</td><td>0</td><td rowspan="4">0.1464646</td><td rowspan="4">0.004056795132</td><td>0</td></tr><tr><td>3.42997</td><td>6.85994</td><td>1.00504</td></tr><tr><td>4.11597</td><td>0</td><td>0</td></tr><tr><td>4.80196</td><td>4.80196</td><td>0.70353</td></tr><tr><td rowspan="4">3</td><td>1.70856</td><td>0</td><td rowspan="4">0.1464471</td><td rowspan="4">0.00011953858</td><td>0</td></tr><tr><td>3.41713</td><td>6.83426</td><td>1.00087</td></tr><tr><td>4.12066</td><td>0</td><td>0</td></tr><tr><td>4.82418</td><td>4.82418</td><td>0.70649</td></tr><tr><td rowspan="4">4</td><td>1.70736</td><td>0</td><td rowspan="4">0.1464466</td><td rowspan="4">0.000003518989</td><td>0</td></tr><tr><td>3.41472</td><td>6.82944</td><td>1.00015</td></tr><tr><td>4.12121</td><td>0</td><td>0</td></tr><tr><td>4.82771</td><td>4.82771</td><td>0.70700</td></tr><tr><td rowspan="4">5</td><td>1.70715</td><td>0</td><td rowspan="4">0.1464466</td><td rowspan="4">0.000000103589</td><td>0</td></tr><tr><td>3.41430</td><td>6.82860</td><td>1.00003</td></tr><tr><td>4.12130</td><td>0</td><td>0</td></tr><tr><td>4.82830</td><td>4.82830</td><td>0.70709</td></tr></table>