328 lines
31 KiB
Markdown
328 lines
31 KiB
Markdown
<!-- source-page: 971 -->
|
|
|
|
11.15. Use a Lanczos iteration method that you design to solve for the smallest eigenvalue and corresponding eigenvector of the problem
|
|
|
|
$$
|
|
\left[ \begin{array}{r r r r} 4 & - 1 & 0 & 0 \\ - 1 & 4 & - 1 & 0 \\ 0 & - 1 & 2 & - 1 \\ 0 & 0 & - 1 & 1 \end{array} \right] \boldsymbol {\phi} = \lambda \left[ \begin{array}{c c c c} 2 & & & \\ & 1 & & \\ & & 1 & \\ & & & 1 \end{array} \right] \boldsymbol {\phi}
|
|
$$
|
|
|
|
11.16. Use a Lanczos iteration method that you design to calculate the smallest two eigenvalues and corresponding eigenvectors of the problem
|
|
|
|
$$
|
|
\left[ \begin{array}{c c c c} 2 & - 1 & & \\ - 1 & 1 & - \frac {1}{4} & \\ & - \frac {1}{4} & 1 & - 1 \\ & & - 1 & 2 \end{array} \right] \boldsymbol {\Phi} = \lambda \left[ \begin{array}{c c c c} 1 & & & \\ & \frac {1}{2} & & \\ & & \frac {1}{2} & \\ & & & 1 \end{array} \right] \boldsymbol {\Phi}
|
|
$$
|
|
|
|
11.17. Write a computer program for a Lanczos iteration method. Use this program to solve for the smallest $p$ eigenvalues and corresponding eigenvectors of the problem
|
|
|
|
$$
|
|
\left[ \begin{array}{c c c c c c c} 1 0 1 & - 1 0 & & & & & \\ - 1 0 & 1 0 2 & - 1 0 & & & & \\ & - 1 0 & 1 0 3 & & & & \\ & & & \ddots & & & \\ & & & & & - 1 0 & \\ & & & & - 1 0 & 1 0 0 + n \end{array} \right] \boldsymbol {\phi} = \lambda \left[ \begin{array}{c c c c c c c} 1 & & & & & \\ & 2 & & & & \\ & & 3 & & & \\ & & & \ddots & & \\ & & & & & n \end{array} \right] \boldsymbol {\phi}
|
|
$$
|
|
|
|
Use $p = 4; \quad n = 40$
|
|
|
|
$$
|
|
p = 8; \quad n = 8 0
|
|
$$
|
|
|
|
$$
|
|
p = 1 6; \quad n = 8 0
|
|
$$
|
|
|
|
Use the error bounds in $(10.106)$ to identify the accuracy of the calculated eigenvalues and ensure that no eigenvalues have been missed or are spuriously given as multiple eigenvalues.
|
|
|
|
# 11.6 THE SUBSPACE ITERATION METHOD
|
|
|
|
An effective method widely used in engineering practice for the solution of eigenvalues and eigenvectors of finite element equations is the subspace iteration procedure. This technique is particularly suited for the calculation of a few eigenvalues and eigenvectors of large finite element systems.
|
|
|
|
The subspace iteration method developed and so named by K. J. Bathe [A] consists of the following three steps.
|
|
|
|
1. Establish q starting iteration vectors, q > p, where p is the number of eigenvalues and vectors to be calculated.
|
|
2. Use simultaneous inverse iteration on the q vectors and Ritz analysis to extract the "best" eigenvalue and eigenvector approximations from the q iteration vectors.
|
|
3. After iteration convergence, use the Sturm sequence check to verify that the required eigenvalues and corresponding eigenvectors have been calculated.
|
|
|
|
<!-- source-page: 972 -->
|
|
|
|
The solution procedure was named the subspace iteration method because the iteration is equivalent to iterating with a q-dimensional subspace and should not be regarded as a simultaneous iteration with q individual iteration vectors. Specifically, we should note that the selection of the starting iteration vectors in step 1 and the Sturm sequence check in step 3 are very important parts of the iteration procedure. Altogether, the subspace iteration method is largely based on various techniques that have been used earlier, namely, simultaneous vector iteration (see F. L. Bauer [A] and A. Jennings [A]), Sturm sequence information (see Section 10.2.2), and Rayleigh-Ritz analysis (see Section 10.3.2), but very enlightening has been the work of H. Rutishauser [B].
|
|
|
|
Some advantages of the subspace iteration method are that the theory is relatively easy to understand and that the method is robust and can be programmed with little effort (see K. J. Bathe [A] and K. J. Bathe and E. L. Wilson [D]).
|
|
|
|
In the following sections, we describe the basic theory and iterative steps of the subspace iteration method and then present a complete program of the basic algorithm. Our only objective here is to discuss the basic subspace iteration method and reinforce this understanding by presenting a computer program. In actual engineering practice, a well-programmed subroutine of the Lanczos method (see Section 11.5) or of an accelerated subspace iteration method that includes shifting can be substantially more effective.
|
|
|
|
# 11.6.1 Preliminary Considerations
|
|
|
|
The basic objective in the subspace iteration method is to solve for the smallest p eigenvalues and corresponding eigenvectors satisfying
|
|
|
|
$$
|
|
\mathbf {K} \boldsymbol {\Phi} = \mathbf {M} \boldsymbol {\Phi} \boldsymbol {\Lambda} \tag {11.146}
|
|
$$
|
|
|
|
where $\Lambda = \mathrm{diag}(\lambda_i)$ and $\Phi = [\phi_1, \ldots, \phi_p]$ .
|
|
|
|
In addition to the relation in (11.146), the eigenvectors also satisfy the orthogonality conditions
|
|
|
|
$$
|
|
\boldsymbol {\Phi} ^ {T} \mathbf {K} \boldsymbol {\Phi} = \boldsymbol {\Lambda}; \quad \boldsymbol {\Phi} ^ {T} \mathbf {M} \boldsymbol {\Phi} = \mathbf {I} \tag {11.147}
|
|
$$
|
|
|
|
where I is a unit matrix of order p because $\Phi$ stores only p eigenvectors. It is important to note that the relation in (11.146) is a necessary and sufficient condition for the vectors in $\Phi$ to be eigenvectors but that the eigenvector orthogonality conditions in (11.147) are necessary but not sufficient. In other words, if we have p vectors that satisfy (11.147), p < n, then these vectors are not necessarily eigenvectors. However, if the p vectors satisfy (11.146), they are definitely eigenvectors, although we still need to make sure that they are indeed the p specific eigenvectors sought (see Section 10.2.1).
|
|
|
|
The essential idea of the subspace iteration method uses the fact that the eigenvectors in (11.146) form an M-orthonormal basis of the p-dimensional least dominant subspace of the matrices K and M, which we will now call $E_{\infty}$ (see Section 2.3). In the solution the iteration with p linearly independent vectors can therefore be regarded as an iteration with a subspace. The starting iteration vectors span $E_{1}$ , and iteration continues until, to sufficient accuracy, $E_{\infty}$ is spanned. The fact that iteration is performed with a subspace has some important consequences. The total number of required iterations depends on how “close” $E_{1}$ is to $E_{\infty}$ and not on how close each iteration vector is to an eigenvector. Hence, the effectiveness of the algorithm lies in that it is much easier to establish a p-dimensional
|
|
|
|
<!-- source-page: 973 -->
|
|
|
|
starting subspace which is close to $E_{\infty}$ than to find p vectors that are each close to a required eigenvector. The specific algorithm used to establish the starting iteration vectors is described later. Also, because iteration is performed with a subspace, convergence of the subspace is all that is required and not convergence of individual iteration vectors to eigenvectors. In other words, if the iteration vectors are linear combinations of the required eigenvectors, the solution algorithm converges in one step.
|
|
|
|
To demonstrate the essential idea, we first consider simultaneous vector inverse iteration on p vectors. Let $X_{1}$ store the p starting iteration vectors, which span the starting subspace $E_{1}$ . Simultaneous inverse iteration on the p vectors can be written
|
|
|
|
$$
|
|
\mathbf {K X} _ {k + 1} = \mathbf {M X} _ {k}; \quad k = 1, 2, \dots \tag {11.148}
|
|
$$
|
|
|
|
where we now observe that the p iteration vectors in $X_{k+1}$ span a p-dimensional subspace $E_{k+1}$ , and the sequence of subspaces generated converges to $E_{\infty}$ , provided the starting vectors are not orthogonal to $E_{\infty}$ . This seems to contradict the fact that in this iteration each column in $X_{k+1}$ is known to converge to the least dominant eigenvector unless the column is deficient in $\phi_{1}$ (see Section 11.2.1). Actually, there is no contradiction. Although in exact arithmetic the vectors in $X_{k+1}$ span $E_{k+1}$ , they do become more and more parallel and therefore a poorer and poorer basis for $E_{k+1}$ . One way to preserve numerical stability is to generate orthogonal bases in the subspaces $E_{k+1}$ using the Gram-Schmidt process (see Section 11.2.5). In this case we iterate for $k = 1, 2, \ldots$ , as follows:
|
|
|
|
$$
|
|
\mathbf {K} \overline {{{\mathbf {X}}}} _ {k + 1} = \mathbf {M} \mathbf {X} _ {k} \tag {11.149}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {k + 1} = \overline {{{\mathbf {X}}}} _ {k + 1} \mathbf {R} _ {k + 1} \tag {11.150}
|
|
$$
|
|
|
|
where $R_{k+1}$ is an upper triangular matrix chosen in such way that $X_{k+1}^{T}MX_{k+1} = I$ . Then provided that the starting vectors in $X_{1}$ are not deficient in the eigenvectors $\phi_{1}, \phi_{2}, \ldots, \phi_{p}$ , we have
|
|
|
|
$$
|
|
\mathbf {X} _ {k + 1} \rightarrow \Phi ; \quad \mathbf {R} _ {k + 1} \rightarrow \Lambda
|
|
$$
|
|
|
|
It is important to note that the iteration in (11.148) generates the same sequence of subspaces as the iteration in (11.149) and (11.150). However, the ith column in $X_{k+1}$ of (11.150) converges linearly to $\phi_{i}$ with the convergence rate equal to $\max\{\lambda_{i-1}/\lambda_{i}, \lambda_{i}/\lambda_{i+1}\}$ . To demonstrate the solution procedure, consider the following example.
|
|
|
|
EXAMPLE 11.24: Consider the eigenproblem $\mathbf{K}\phi = \lambda \mathbf{M}\phi$ , where
|
|
|
|
$$
|
|
\mathbf {K} = \left[ \begin{array}{r r r} 2 & - 1 & 0 \\ - 1 & 4 & - 1 \\ 0 & - 1 & 2 \end{array} \right]; \quad \mathbf {M} = \left[ \begin{array}{c c c} \frac {1}{2} & & \\ & 1 & \\ & & \frac {1}{2} \end{array} \right]
|
|
$$
|
|
|
|
The two smallest eigenvalues and corresponding eigenvectors are (see Example 10.4)
|
|
|
|
$$
|
|
\lambda_ {1} = 2, \quad \phi_ {1} = \left[ \begin{array}{l} \frac {1}{\sqrt {2}} \\ \frac {1}{\sqrt {2}} \\ \frac {1}{\sqrt {2}} \end{array} \right]; \quad \lambda_ {2} = 4, \quad \phi_ {2} = \left[ \begin{array}{l} - 1 \\ 0 \\ 1 \end{array} \right]
|
|
$$
|
|
|
|
<!-- source-page: 974 -->
|
|
|
|
Use the simultaneous vector iteration with Gram-Schmidt orthogonalization given in (11.149) and (11.150) with starting vectors
|
|
|
|
$$
|
|
\mathbf {X} _ {1} = \left[ \begin{array}{l l} 0 & 2 \\ 1 & 1 \\ 2 & 0 \end{array} \right]
|
|
$$
|
|
|
|
to calculate approximations to $\lambda_1, \phi_1$ and $\lambda_2, \phi_2$ .
|
|
|
|
The relation $\mathbf{K}\overline{\mathbf{X}}_2 = \mathbf{M}\mathbf{X}_1$ gives
|
|
|
|
$$
|
|
\overline {{{\mathbf {X}}}} _ {2} = \left[ \begin{array}{l l} 0. 2 5 & 0. 7 5 \\ 0. 5 0 & 0. 5 0 \\ 0. 7 5 & 0. 2 5 \end{array} \right]
|
|
$$
|
|
|
|
M-orthonormalizing $\overline{X}_{2}$ gives
|
|
|
|
$$
|
|
\mathbf {X} _ {2} = \left[ \begin{array}{c c} 0. 3 3 3 3 & 1. 1 7 9 \\ 0. 6 6 6 7 & 0. 2 3 5 7 \\ 1. 0 0 0 & - 0. 7 0 7 1 \end{array} \right]; \quad \mathbf {R} _ {2} = \left[ \begin{array}{c c} 1. 3 3 3 & - 1. 6 5 0 \\ 0 & 2. 1 2 1 \end{array} \right]
|
|
$$
|
|
|
|
Proceeding similarly, we obtain the following results:
|
|
|
|
$$
|
|
\mathbf {X} _ {3} = \left[ \begin{array}{c c} 0. 5 2 2 2 & 1. 1 0 8 \\ 0. 6 9 6 3 & 0. 1 2 3 1 \\ 0. 8 7 0 4 & - 0. 8 6 1 4 \end{array} \right]; \quad \mathbf {R} _ {3} = \left[ \begin{array}{c c} 2. 0 8 9 & - 0. 9 8 4 7 \\ 0 & 3. 8 3 0 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {4} = \left[ \begin{array}{c c} 0. 6 1 6 3 & 1. 0 5 8 \\ 0. 7 0 4 4 & 0. 0 6 2 2 \\ 0. 7 9 2 4 & - 0. 9 3 3 9 \end{array} \right]; \quad \mathbf {R} _ {4} = \left[ \begin{array}{c c} 2. 0 2 3 & - 0. 5 2 0 2 \\ 0 & 3. 9 5 4 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {5} = \left[ \begin{array}{c c} 0. 6 6 2 3 & 1. 0 3 0 \\ 0. 7 0 6 4 & 0. 0 3 1 2 \\ 0. 7 5 0 6 & - 0. 9 6 7 8 \end{array} \right]; \quad \mathbf {R} _ {5} = \left[ \begin{array}{c c} 2. 0 0 6 & - 0. 2 6 3 9 \\ 0 & 3. 9 8 8 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {6} = \left[ \begin{array}{c c} 0. 6 8 4 8 & 1. 0 1 5 \\ 0. 7 0 6 9 & 0. 0 1 5 6 \\ 0. 7 2 9 0 & - 0. 9 8 4 1 \end{array} \right]; \quad \mathbf {R} _ {6} = \left[ \begin{array}{c c} 2. 0 0 1 & - 0. 1 3 2 4 \\ 0 & 3. 9 9 7 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {7} = \left[ \begin{array}{l l} 0. 6 9 6 0 & 1. 0 0 8 \\ 0. 7 0 7 1 & 0. 0 0 7 8 \\ 0. 7 1 8 1 & - 0. 9 9 2 1 \end{array} \right]; \quad \mathbf {R} _ {7} = \left[ \begin{array}{c c} 2. 0 0 0 & - 0. 0 6 6 3 \\ 0 & 3. 9 9 9 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {8} = \left[ \begin{array}{c c} 0. 7 0 1 6 & 1. 0 0 4 \\ 0. 7 0 7 1 & 0. 0 0 3 9 \\ 0. 7 1 2 6 & - 0. 9 9 6 1 \end{array} \right]; \quad \mathbf {R} _ {8} = \left[ \begin{array}{c c} 2. 0 0 0 & - 0. 0 3 3 1 \\ 0 & 4. 0 0 0 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {9} = \left[ \begin{array}{c c} 0. 7 0 4 3 & 1. 0 0 2 \\ 0. 7 0 7 1 & 0. 0 0 2 0 \\ 0. 7 0 9 9 & - 0. 9 9 8 0 \end{array} \right]; \quad \mathbf {R} _ {9} = \left[ \begin{array}{c c} 2. 0 0 0 & - 0. 0 1 6 6 \\ 0 & 4. 0 0 0 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {X} _ {1 0} = \left[ \begin{array}{c c} 0. 7 0 5 7 & 1. 0 0 1 \\ 0. 7 0 7 1 & 0. 0 0 1 0 \\ 0. 7 0 8 5 & - 0. 9 9 9 0 \end{array} \right]; \quad \mathbf {R} _ {1 0} = \left[ \begin{array}{c c} 2. 0 0 0 & - 0. 0 0 8 3 \\ 0 & 4. 0 0 0 \end{array} \right]
|
|
$$
|
|
|
|
<!-- source-page: 975 -->
|
|
|
|
and after nine iterations we have
|
|
|
|
$$
|
|
\phi_ {1} \doteq \left[ \begin{array}{l} 0. 7 0 5 7 \\ 0. 7 0 7 1 \\ 0. 7 0 8 5 \end{array} \right]; \qquad \lambda_ {1} \doteq 2. 0 0 0
|
|
$$
|
|
|
|
$$
|
|
\boldsymbol {\phi} _ {2} \doteq \left[ \begin{array}{c} 1. 0 0 1 \\ 0. 0 0 1 0 \\ - 0. 9 9 9 0 \end{array} \right]; \quad \lambda_ {2} \doteq 4. 0 0 0
|
|
$$
|
|
|
|
It should be noted that although the vectors in $X_{1}$ already span the space of $\phi_{1}$ and $\phi_{2}$ , we need a relatively large number of iterations for convergence.
|
|
|
|
The solution in the preceding example demonstrates the iteration procedure in (11.149) and (11.150) and also shows the main deficiency of the method. Namely, each iteration vector is forced to converge to a different eigenvector by orthogonalizing the ith iteration vector to the $(i - 1)$ iteration vectors that have been orthogonalized already without allowing a more effective linear combination of the vectors to take place. In the example, the iteration was started with two iteration vectors that were linear combinations of the required eigenvectors, and this did not yield any advantage. In general, if the iteration vectors in $X_{k+1}$ span $E_{\infty}$ but are not eigenvectors (i.e., the vectors in $X_{k+1}$ are linear combinations of the eigenvectors $\phi_{1}, \ldots, \phi_{p}$ ), then, although the subspace $E_{k+1}$ has already converged, many more iterations may be needed in order to turn the orthogonal basis of iteration vectors into the basis of eigenvectors.
|
|
|
|
# 11.6.2 Subspace Iteration
|
|
|
|
The following algorithm, which we call subspace iteration, finds an orthogonal basis of vectors in $E_{k+1}$ , thus preserving numerical stability in the iteration of (11.148), and also calculates in one step the required eigenvectors when $E_{k+1}$ converges to $E_{\infty}$ . This algorithm is the iteration used in the subspace iteration method, i.e., step 2 of the complete solution phase.
|
|
|
|
For $k = 1, 2, \ldots$ , iterate from $E_k$ to $E_{k+1}$ :
|
|
|
|
$$
|
|
\mathbf {K} \overline {{{\mathbf {X}}}} _ {k + 1} = \mathbf {M} \mathbf {X} _ {k} \tag {11.151}
|
|
$$
|
|
|
|
Find the projections of the matrices K and M onto $E_{k+1}$ :
|
|
|
|
$$
|
|
\mathbf {K} _ {k + 1} = \overline {{{\mathbf {X}}}} _ {k + 1} ^ {T} \mathbf {K} \overline {{{\mathbf {X}}}} _ {k + 1} \tag {11.152}
|
|
$$
|
|
|
|
$$
|
|
\mathbf {M} _ {k + 1} = \overline {{{\mathbf {X}}}} _ {k + 1} ^ {T} \mathbf {M} \overline {{{\mathbf {X}}}} _ {k + 1} \tag {11.153}
|
|
$$
|
|
|
|
Solve for the eigensystem of the projected matrices:
|
|
|
|
$$
|
|
\mathbf {K} _ {k + 1} \mathbf {Q} _ {k + 1} = \mathbf {M} _ {k + 1} \mathbf {Q} _ {k + 1} \boldsymbol {\Lambda} _ {k + 1} \tag {11.154}
|
|
$$
|
|
|
|
Find an improved approximation to the eigenvectors:
|
|
|
|
$$
|
|
\mathbf {X} _ {k + 1} = \overline {{{\mathbf {X}}}} _ {k + 1} \mathbf {Q} _ {k + 1} \tag {11.155}
|
|
$$
|
|
|
|
Then, provided that the vectors $\mathbf{X}_1$ are not deficient in one of the required eigenvectors,
|
|
|
|
<!-- source-page: 976 -->
|
|
|
|
we have
|
|
|
|
$$
|
|
\Lambda_ {k + 1} \rightarrow \Lambda \quad \text { and } \quad \mathbf {X} _ {k + 1} \rightarrow \Phi \quad \text { as } k \rightarrow \infty
|
|
$$
|
|
|
|
In the subspace iteration, it is implied that the iteration vectors are ordered in an appropriate way; i.e., the iteration vectors converging to $\phi_{1}, \phi_{2}, \ldots$ , are stored as the first, second, $\ldots$ , columns of $X_{k+1}$ . We demonstrate the iteration procedure by calculating the solution to the problem considered in Example 11.24.
|
|
|
|
EXAMPLE 11.25: Use the subspace iteration algorithm to solve the problem considered in Example 11.24.
|
|
|
|
Using the relations in (11.151) to (11.155) with K, M, and $X_{1}$ given in Example 11.24, we obtain
|
|
|
|
$$
|
|
\overline {{{\mathbf {X}}}} _ {2} = \frac {1}{4} \left[ \begin{array}{l l} 1 & 3 \\ 2 & 2 \\ 3 & 1 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\mathbf {K} _ {2} = \frac {1}{4} \left[ \begin{array}{l l} 5 & 3 \\ 3 & 5 \end{array} \right]; \quad \mathbf {M} _ {2} = \frac {1}{1 6} \left[ \begin{array}{l l} 9 & 7 \\ 7 & 9 \end{array} \right]
|
|
$$
|
|
|
|
Hence, $\mathbf{A}_2 = \begin{bmatrix} 2 & 0 \\ 0 & 4 \end{bmatrix}$ ; $\mathbf{Q}_2 = \begin{bmatrix} \frac{1}{\sqrt{2}} & 2 \\ \frac{1}{\sqrt{2}} & -2 \end{bmatrix}$
|
|
|
|
and $\mathbf{X}_2 = \begin{bmatrix} \frac{1}{\sqrt{2}} & -1 \\ \frac{1}{\sqrt{2}} & 0 \\ \frac{1}{\sqrt{2}} & 1 \end{bmatrix}$
|
|
|
|
Comparing the results with the solution obtained in Example 11.24, we observe that we have calculated the exact eigenvalues and eigenvectors in the first subspace iteration. This must be the case because the starting iteration vectors $X_{1}$ span the subspace defined by $\phi_{1}$ and $\phi_{2}$ .
|
|
|
|
Considering the subspace iteration, a first observation is that $K_{k+1}$ and $M_{k+1}$ in (11.152) and (11.153), respectively, tend toward diagonal form as the number of iterations increases; i.e., $K_{k+1}$ and $M_{k+1}$ are diagonal matrices when the columns in $X_{k+1}$ store multiples of eigenvectors. Hence, it follows from the discussion in Section 11.3.2 that the generalized Jacobi method can be used effectively for the solution of the eigenproblem in (11.154).
|
|
|
|
An important aspect is the convergence of the method. Assuming that in the iteration the vectors in $X_{k+1}$ are ordered in such way that the ith diagonal element in $\Lambda_{k+1}$ is larger than the $(i-1)$ st element, $i=2,\ldots,p$ , then the ith column in $X_{k+1}$ converges linearly to $\phi_{i}$ and the convergence rate is $\lambda_{i}/\lambda_{p+1}$ (see K. J. Bathe [B]). Although this is an asymptotic convergence rate, it indicates that the smallest eigenvalues converge fastest. In addition, a higher convergence rate can be obtained by using q iteration vectors, with q > p. However, using more iteration vectors will also increase the computer effort for one
|
|
|
|
<!-- source-page: 977 -->
|
|
|
|
iteration. In practice, $q = \max \{2p, p + 8\}$ is in general effective, and we use this value, see K. J. Bathe [J]. Considering the convergence rate, it should be noted that multiple eigenvalues do not decrease the rate of convergence, provided that $\lambda_{q+1} > \lambda_p$ .
|
|
|
|
As for the iteration schemes presented earlier, the theoretical convergence behavior can be observed in practice only when the iteration vectors are relatively close to eigenvectors. However, in practice, we are very much interested in knowing what happens in the first few iterations when $E_{k+1}$ is not yet “close” to $E_{\infty}$ . Indeed, the effectiveness of the algorithm lies to a large extent in that a few iterations can already give good approximations to the required eigenpairs, the reason being that one subspace iteration given in (11.151) to (11.155) is, in fact, a Ritz analysis, as described in Section 10.3.2. Therefore, all characteristics of the Ritz analysis pertain also to the subspace iteration; i.e., the smallest eigenvalues are approximated best in the iteration, and all eigenvalue approximations are upper bounds on the actual eigenvalues sought. It follows that we may think of the subspace iteration as a repeated application of the Ritz analysis method in Section 10.3.2, in which the eigenvector approximations calculated in the previous iteration are used to form the right-hand-side load vectors in the current iteration.
|
|
|
|
It is important to realize that using either one of the iteration procedures given in (11.148) to (11.150) or (11.151) to (11.155), the same subspace $E_{k+1}$ is spanned by the iteration vectors. Therefore, there is no need to always iterate as in (11.151) to (11.155), but we may first use the simple inverse iteration in (11.148) or inverse iteration with Gram-Schmidt orthogonalization as given in (11.149) and (11.150), and finally use the subspace iteration scheme given in (11.151) to (11.155). The calculated results would be the same in theory as those obtained when only subspace iterations are performed. However, the difficulty then lies in deciding at what stage to orthogonalize the iteration vectors by using (11.152) to (11.155) because the iteration in (11.151) yields vectors that are more and more parallel. Also, the Gram-Schmidt orthogonalization is numerically not very stable. If the iteration vectors have become “too close to each other” because either the initial assumptions gave iteration vectors that were almost parallel or by iterating without orthogonalization, it may be impossible to orthogonalize them because of finite precision arithmetic in the computer. Unfortunately, considering large finite element systems, the starting iteration vectors can in some cases be nearly parallel, although they span a subspace that is close to $E_{\infty}$ , and it is best to immediately orthogonalize the iteration vectors using the projections of K and M onto $E_{2}$ . In addition, using the subspace iteration, we obtain in each iteration the “best” approximations to the required eigenvalues and eigenvectors and can measure convergence in each iteration.
|
|
|
|
# 11.6.3 Starting Iteration Vectors
|
|
|
|
The first step in the subspace iteration method is the selection of the starting iteration vectors in $X_{1}$ [see (11.151)]. As pointed out earlier, if starting vectors are used that span the least dominant subspace, the iteration converges in one step. This is the case, for example, when there are only p nonzero masses in a diagonal mass matrix and the starting vectors are unit vectors $e_{i}$ with the entries +1 corresponding to the mass degrees of freedom. In this case one subspace iteration is in effect a static condensation analysis or a Guyan reduction. This follows from the discussion in Section 10.3.2 and because a subspace iteration embodies a Ritz analysis. Consider the following example.
|
|
|
|
<!-- source-page: 978 -->
|
|
|
|
EXAMPLE 11.26: Use the subspace iteration to calculate the eigenpairs $(\lambda_{1}, \phi_{1})$ and $(\lambda_{2}, \phi_{2})$ of the problem $K\phi = \lambda 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]
|
|
$$
|
|
|
|
As suggested above, we use as starting vectors the unit vectors $e_{2}$ and $e_{4}$ . Following (11.151) to (11.155), we then obtain
|
|
|
|
$$
|
|
\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}{l l} 0 & 0 \\ 2 & 0 \\ 0 & 0 \\ 0 & 1 \end{array} \right]
|
|
$$
|
|
|
|
$$
|
|
\overline {{{\mathbf {X}}}} _ {2} = \left[ \begin{array}{l l} 2 & 1 \\ 4 & 2 \\ 4 & 3 \\ 4 & 4 \end{array} \right]
|
|
$$
|
|
|
|
and $\mathbf{K}_2 = 4\begin{bmatrix} 2 & 1 \\ 1 & 1 \end{bmatrix}$ ; $\mathbf{M}_2 = 8\begin{bmatrix} 6 & 4 \\ 4 & 3 \end{bmatrix}$
|
|
|
|
Hence, $\mathbf{A}_2 = \begin{bmatrix} \left(\frac{1}{2} -\frac{\sqrt{2}}{4}\right) & 0\\ 0 & \left(\frac{1}{2} +\frac{\sqrt{2}}{4}\right) \end{bmatrix};\qquad \mathbf{Q}_2 = \begin{bmatrix} \frac{1}{8 + 4\sqrt{2}} & \frac{1}{4\sqrt{2} - 8}\\ \frac{1}{4 + 4\sqrt{2}} & \frac{1}{4\sqrt{2} - 4} \end{bmatrix}$
|
|
|
|
and $X_{2}=\left[\begin{array}{cc}\frac{1}{4}&-\frac{1}{4}\\ \frac{1}{2}&-\frac{1}{2}\\ \frac{1+\sqrt{2}}{4}&\frac{-1+\sqrt{2}}{4}\\ \frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{array}\right]$
|
|
|
|
Comparing these results with the solution calculated in Example 10.12, we observe that we obtained the exact results with one subspace iteration.
|
|
|
|
A second case for which the subspace iteration can converge in one step arises when K and M are both diagonal. This is a rather trivial case, but it is considered for the development of an effective procedure for the selection of starting iteration vectors when general matrices are involved in the analysis. When K and M are diagonal, the iteration vectors should be unit vectors with the entries +1 corresponding to those degrees of freedom that have the smallest ratios $k_{ii}/m_{ii}$ . These vectors are the eigenvectors corresponding to the smallest eigenvalues, and this is why convergence is achieved in one step. We demonstrate the procedure in the following example.
|
|
|
|
<!-- source-page: 979 -->
|
|
|
|
EXAMPLE 11.27: Construct starting iteration vectors for the solution of the smallest two eigenvalues by subspace iteration when considering the problem $K\phi = \lambda M\phi$ , where
|
|
|
|
$$
|
|
\mathbf {K} = \left[ \begin{array}{c c c c} 3 & & & \\ & 2 & & \\ & & 4 & \\ & & & 8 \end{array} \right]; \quad \mathbf {M} = \left[ \begin{array}{c c c c} 2 & & & \\ & 0 & & \\ & & 4 & \\ & & & 1 \end{array} \right]
|
|
$$
|
|
|
|
The ratios $k_{ii}/m_{ii}$ are here $\frac{3}{2}$ , $\infty$ , 1, and 8 for $i = 1, \ldots, 4$ , and indeed these are the eigenvalues of the problem. The starting vectors to be used are therefore
|
|
|
|
$$
|
|
\mathbf {X} _ {1} = \left[ \begin{array}{c c c} 0 & & 1 \\ 0 & & 0 \\ 1 & & 0 \\ 0 & & 0 \end{array} \right]
|
|
$$
|
|
|
|
The vectors $\mathbf{X}_1$ are multiples of the required eigenvectors, and hence convergence occurs in the first step of iteration.
|
|
|
|
The two cases that we dealt with above involved rather special matrices; i.e., in the first case static condensation could be performed, and in the second case the matrices K and M were diagonal. In both cases unit vectors $e_{i}$ were employed, where $i = r_{1}, r_{2}, \ldots, r_{p}$ , and the $r_{j}, j = 1, 2, \ldots, p$ , corresponded to the p smallest values of $k_{ii}/m_{ii}$ over all i. Using this notation, we have $r_{1} = 2$ and $r_{2} = 4$ for Example 11.26 and $r_{1} = 3$ , $r_{2} = 1$ for Example 11.27.
|
|
|
|
Although such specific matrices will hardly be encountered in general practical analysis, the results concerning the construction of the starting iteration vectors indicate how in general analysis effective starting iteration vectors may be selected. A general observation is that starting vectors that span the least dominant subspace $E_{\infty}$ could be selected in the above cases because the mass and stiffness properties have been lumped to a sufficient degree. In a general case, such lumping is not possible or would result in inaccurate stiffness and mass representations of the actual structure. However, although the matrices K and M do not have exactly the same form used above, the discussion shows that the starting iteration vectors should be constructed to excite those degrees of freedom with which large mass and small stiffness are associated. Based on this observation, in essence, the following algorithm has been used effectively for the selection of the starting iteration vectors. The first column in $MX_{1}$ is simply the diagonal of M. This ensures that all mass degrees of freedom are excited. The other columns in $MX_{1}$ , except for the last column, are unit vectors $e_{i}$ with entries +1 at the degrees of freedom with the smallest ratios $k_{ii}/m_{ii}$ , and the last column in $MX_{1}$ is a random vector. (In the analysis of large systems, an appropriate spacing between the unit entries in the starting vectors is also important and taken into account; see program SSPACE.)
|
|
|
|
The starting subspace described above is, in general, only an approximation to the actual subspace required, which we denoted as $E_{\infty}$ ; however, the closer K and M are to the matrix forms used in Examples 11.26 and 11.27, the “better” the starting subspace, i.e., the fewer iterations to be expected until convergence. In practice, the number of iterations required for convergence depends on the matrices K and M, the number of eigenvalues sought, the number of iteration vectors used, and on the accuracy required in the eigenval-
|
|
|
|
<!-- source-page: 980 -->
|
|
|
|
ues and eigenvectors. At the original development of the subspace iteration method, K. J. Bathe [A], only about 10 to 20 frequencies and mode shapes were sought; however, in today's practice hundreds of eigenpairs may be calculated. A general quite effective formula to choose the number of iteration vectors is $q = \max \{2p, p + 8\}$ , see K. J. Bathe [J], with of course $p \ll n$ .
|
|
|
|
The starting subspaces above have proven by experience to be suitable. However, "better" starting vectors may still be available in specific applications. For instance, in dynamic optimization, as the structure is modified in small steps, the eigensystem of the previous structure may be a good approximation to the eigensystem of the new structure. A similar situation is encountered in protein normal mode analyses, see R.S. Sedeh, M. Bathe and K.J. Bathe [A], and in the solution of random eigenproblems, see H. J. Pradlwarter, G. I. Schueller, and G. S. Szekely [A]. Also, if some eigenvectors have already been evaluated and we now want to solve for more eigenvectors, the eigenvectors already calculated would effectively be used in $\mathbf{X}_1$ . If the eigenvectors of substructures have already been obtained, these may also be used in establishing the starting iteration vectors in $\mathbf{X}_1$ (see Section 10.3.3 and K.J. Bathe and J. Dong [A]), and indeed any approximate eigenvectors may be effective starting vectors. Finally, the method can, of course, be accelerated, see K. J. Bathe and S. Ramaswamy [A] and Q. C. Zhao, P. Chen, W. B. Peng, Y.C. Gong, and M. W. Yuan [A].
|
|
|
|
# 11.6.4 Convergence
|
|
|
|
In the subspace iteration it is necessary to measure convergence. Assume that in iteration (k) the eigenvalue approximations $\lambda_{i}^{(k+1)}, i=1,\ldots,p$ , have been calculated, $k\geq2$ . Then we use (10.107) to measure convergence, in the form
|
|
|
|
$$
|
|
\left[ 1 - \frac {\left(\lambda_ {i} ^ {(k + 1)}\right) ^ {2}}{\left(\mathbf {q} _ {i} ^ {(k + 1)}\right) ^ {T} \mathbf {q} _ {i} ^ {(k + 1)}} \right] ^ {1 / 2} \leq t o l; \quad i = 1, \dots , p \tag {11.156}
|
|
$$
|
|
|
|
where $\mathbf{q}_{i}^{(k+1)}$ is the vector in the matrix $Q_{k+1}$ corresponding to $\lambda_{i}^{(k+1)}$ (see Exercise 11.20) and tol = $10^{-2s}$ when the eigenvalues shall be accurate to about 2s digits. For example, if we iterate until all p bounds in (11.156) are smaller than $10^{-6}$ , we find that $\lambda_{p}$ has been approximated to at least six-digit accuracy, and the smaller eigenvalues have usually been evaluated more accurately. Since the eigenvalue approximations are calculated using a Rayleigh quotient, the eigenvector approximations are accurate to only about s (or more) digits. It should be noted that the iteration is performed with q vectors, q > p, but convergence is measured only on the approximations obtained for the p smallest eigenvalues.
|
|
|
|
Another important point when using the subspace iteration technique is to verify that in fact the required eigenvalues and vectors have been calculated since the relations in (11.146) and (11.147) are satisfied by any eigenpairs. This verification is the third important phase of the subspace iteration method. As pointed out, the iteration in (11.151) to (11.155) converges in the limit to the eigenvectors $\phi_1, \ldots, \phi_p$ , provided the starting iteration vectors in $\mathbf{X}_1$ are not $\mathbf{M}$ -orthogonal to any one of the required eigenvectors. The starting subspaces described above have proven, by experience, to be very satisfactory in this regard, although there is no formal mathematical proof available that convergence will indeed always occur. However, once the convergence tolerance in (11.156) is satisfied, with $s$ being at least being equal to 3, we can make sure that the smallest eigenvalues and corresponding eigenvectors have indeed been calculated. For the check we use the Sturm sequence prop
|