We shall utilize a special orthogonal transformation to implement these deflation schemes. The deflation schemes are related to an eigenvector associated with a Ritz value that is to be deflated (either locked or purged). Given a vector of unit length, Algorithm 7.8 computes an orthogonal matrix such that (hence ). The following orthogonal deflating transformation Algorithm 7.8 is identical to Algorithm 4.9 used in IRLM (see §4.5), but for completeness, we present it again.
The orthogonal matrix constructed as prescribed in Algorithm 7.8 has a very special form and may be written as Q = R + y e_1^*, with R e_1 = 0 , R^* y = 0, where is upper triangular. It may also be written as Q = L + y g^* , with L e_1 = 0 , L^* y = e_1 - g, where is lower triangular, and .
Now, consider the matrix . The
substitutions
,
from (7.19) and (7.18) will give
Q^* H Q &=& Q^* H ( R + y e_1^*)
&=& (L^* + g y^*) H R + Q^*Hy e_1^*
&=& L^*HR + g y^*H R + Q^*Hy e_1^*.
Since both and are upper triangular, it follows
that
is upper Hessenberg, with the first row and the first column each being zero
due to
.
From this discussion, we see that when is a right eigenvector
of with , then
is of the form
H_+ = [
cc
& h^*
0 & H_2
].
On the other hand, when is a left eigenvector
of with
, then
is of the form
H_+ = [
cc
& 0
h & H_2
],
where is upper Hessenberg.
We shall use (7.20) for locking a converged Ritz value, and we shall use (7.21) to purge an unwanted but converged Ritz value.
It should be noted that, as computed by Algorithm 7.8, will have componentwise relative errors on the order of machine precision with no element growth. Moreover, extension to complex arithmetic is completely straightforward (unlike Givens or Householder transformations).