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