1CTRSEN(1) LAPACK routine (version 3.1) CTRSEN(1)
2
3
4
6 CTRSEN - the Schur factorization of a complex matrix A = Q*T*Q**H, so
7 that a selected cluster of eigenvalues appears in the leading positions
8 on the diagonal of the upper triangular matrix T, and the leading col‐
9 umns of Q form an orthonormal basis of the corresponding right invari‐
10 ant subspace
11
13 SUBROUTINE CTRSEN( JOB, COMPQ, SELECT, N, T, LDT, Q, LDQ, W, M, S, SEP,
14 WORK, LWORK, INFO )
15
16 CHARACTER COMPQ, JOB
17
18 INTEGER INFO, LDQ, LDT, LWORK, M, N
19
20 REAL S, SEP
21
22 LOGICAL SELECT( * )
23
24 COMPLEX Q( LDQ, * ), T( LDT, * ), W( * ), WORK( * )
25
27 CTRSEN reorders the Schur factorization of a complex matrix A =
28 Q*T*Q**H, so that a selected cluster of eigenvalues appears in the
29 leading positions on the diagonal of the upper triangular matrix T, and
30 the leading columns of Q form an orthonormal basis of the corresponding
31 right invariant subspace.
32
33 Optionally the routine computes the reciprocal condition numbers of the
34 cluster of eigenvalues and/or the invariant subspace.
35
36
38 JOB (input) CHARACTER*1
39 Specifies whether condition numbers are required for the clus‐
40 ter of eigenvalues (S) or the invariant subspace (SEP):
41 = 'N': none;
42 = 'E': for eigenvalues only (S);
43 = 'V': for invariant subspace only (SEP);
44 = 'B': for both eigenvalues and invariant subspace (S and SEP).
45
46 COMPQ (input) CHARACTER*1
47 = 'V': update the matrix Q of Schur vectors;
48 = 'N': do not update Q.
49
50 SELECT (input) LOGICAL array, dimension (N)
51 SELECT specifies the eigenvalues in the selected cluster. To
52 select the j-th eigenvalue, SELECT(j) must be set to .TRUE..
53
54 N (input) INTEGER
55 The order of the matrix T. N >= 0.
56
57 T (input/output) COMPLEX array, dimension (LDT,N)
58 On entry, the upper triangular matrix T. On exit, T is over‐
59 written by the reordered matrix T, with the selected eigenval‐
60 ues as the leading diagonal elements.
61
62 LDT (input) INTEGER
63 The leading dimension of the array T. LDT >= max(1,N).
64
65 Q (input/output) COMPLEX array, dimension (LDQ,N)
66 On entry, if COMPQ = 'V', the matrix Q of Schur vectors. On
67 exit, if COMPQ = 'V', Q has been postmultiplied by the unitary
68 transformation matrix which reorders T; the leading M columns
69 of Q form an orthonormal basis for the specified invariant sub‐
70 space. If COMPQ = 'N', Q is not referenced.
71
72 LDQ (input) INTEGER
73 The leading dimension of the array Q. LDQ >= 1; and if COMPQ =
74 'V', LDQ >= N.
75
76 W (output) COMPLEX array, dimension (N)
77 The reordered eigenvalues of T, in the same order as they
78 appear on the diagonal of T.
79
80 M (output) INTEGER
81 The dimension of the specified invariant subspace. 0 <= M <=
82 N.
83
84 S (output) REAL
85 If JOB = 'E' or 'B', S is a lower bound on the reciprocal con‐
86 dition number for the selected cluster of eigenvalues. S can‐
87 not underestimate the true reciprocal condition number by more
88 than a factor of sqrt(N). If M = 0 or N, S = 1. If JOB = 'N'
89 or 'V', S is not referenced.
90
91 SEP (output) REAL
92 If JOB = 'V' or 'B', SEP is the estimated reciprocal condition
93 number of the specified invariant subspace. If M = 0 or N, SEP
94 = norm(T). If JOB = 'N' or 'E', SEP is not referenced.
95
96 WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
97 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
98
99 LWORK (input) INTEGER
100 The dimension of the array WORK. If JOB = 'N', LWORK >= 1; if
101 JOB = 'E', LWORK = max(1,M*(N-M)); if JOB = 'V' or 'B', LWORK
102 >= max(1,2*M*(N-M)).
103
104 If LWORK = -1, then a workspace query is assumed; the routine
105 only calculates the optimal size of the WORK array, returns
106 this value as the first entry of the WORK array, and no error
107 message related to LWORK is issued by XERBLA.
108
109 INFO (output) INTEGER
110 = 0: successful exit
111 < 0: if INFO = -i, the i-th argument had an illegal value
112
114 CTRSEN first collects the selected eigenvalues by computing a unitary
115 transformation Z to move them to the top left corner of T. In other
116 words, the selected eigenvalues are the eigenvalues of T11 in:
117
118 Z'*T*Z = ( T11 T12 ) n1
119 ( 0 T22 ) n2
120 n1 n2
121
122 where N = n1+n2 and Z' means the conjugate transpose of Z. The first n1
123 columns of Z span the specified invariant subspace of T.
124
125 If T has been obtained from the Schur factorization of a matrix A =
126 Q*T*Q', then the reordered Schur factorization of A is given by A =
127 (Q*Z)*(Z'*T*Z)*(Q*Z)', and the first n1 columns of Q*Z span the corre‐
128 sponding invariant subspace of A.
129
130 The reciprocal condition number of the average of the eigenvalues of
131 T11 may be returned in S. S lies between 0 (very badly conditioned) and
132 1 (very well conditioned). It is computed as follows. First we compute
133 R so that
134
135 P = ( I R ) n1
136 ( 0 0 ) n2
137 n1 n2
138
139 is the projector on the invariant subspace associated with T11. R is
140 the solution of the Sylvester equation:
141
142 T11*R - R*T22 = T12.
143
144 Let F-norm(M) denote the Frobenius-norm of M and 2-norm(M) denote the
145 two-norm of M. Then S is computed as the lower bound
146
147 (1 + F-norm(R)**2)**(-1/2)
148
149 on the reciprocal of 2-norm(P), the true reciprocal condition number.
150 S cannot underestimate 1 / 2-norm(P) by more than a factor of sqrt(N).
151
152 An approximate error bound for the computed average of the eigenvalues
153 of T11 is
154
155 EPS * norm(T) / S
156
157 where EPS is the machine precision.
158
159 The reciprocal condition number of the right invariant subspace spanned
160 by the first n1 columns of Z (or of Q*Z) is returned in SEP. SEP is
161 defined as the separation of T11 and T22:
162
163 sep( T11, T22 ) = sigma-min( C )
164
165 where sigma-min(C) is the smallest singular value of the
166 n1*n2-by-n1*n2 matrix
167
168 C = kprod( I(n2), T11 ) - kprod( transpose(T22), I(n1) )
169
170 I(m) is an m by m identity matrix, and kprod denotes the Kronecker
171 product. We estimate sigma-min(C) by the reciprocal of an estimate of
172 the 1-norm of inverse(C). The true reciprocal 1-norm of inverse(C) can‐
173 not differ from sigma-min(C) by more than a factor of sqrt(n1*n2).
174
175 When SEP is small, small changes in T can cause large changes in the
176 invariant subspace. An approximate bound on the maximum angular error
177 in the computed right invariant subspace is
178
179 EPS * norm(T) / SEP
180
181
182
183
184 LAPACK routine (version 3.1) November 2006 CTRSEN(1)