F08QVF (ZTRSYL) (PDF version)
F08 Chapter Contents
F08 Chapter Introduction
NAG Library Manual

NAG Library Routine Document

F08QVF (ZTRSYL)

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

+ Contents

    1  Purpose
    7  Accuracy

1  Purpose

F08QVF (ZTRSYL) solves the complex triangular Sylvester matrix equation.

2  Specification

SUBROUTINE F08QVF ( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C, LDC, SCAL, INFO)
INTEGER  ISGN, M, N, LDA, LDB, LDC, INFO
REAL (KIND=nag_wp)  SCAL
COMPLEX (KIND=nag_wp)  A(LDA,*), B(LDB,*), C(LDC,*)
CHARACTER(1)  TRANA, TRANB
The routine may be called by its LAPACK name ztrsyl.

3  Description

F08QVF (ZTRSYL) solves the complex Sylvester matrix equation
opAX ± XopB = αC ,
where opA = A  or AH, and the matrices A and B are upper triangular; α is a scale factor (1) determined by the routine to avoid overflow in X; A is m by m and B is n by n while the right-hand side matrix C and the solution matrix X are both m by n. The matrix X is obtained by a straightforward process of back-substitution (see Golub and Van Loan (1996)).
Note that the equation has a unique solution if and only if αi±βj0, where αi and βj are the eigenvalues of A and B respectively and the sign (+ or -) is the same as that used in the equation to be solved.

4  References

Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore
Higham N J (1992) Perturbation theory and backward error for AX-XB=C Numerical Analysis Report University of Manchester

5  Parameters

1:     TRANA – CHARACTER(1)Input
On entry: specifies the option opA.
TRANA='N'
opA=A.
TRANA='C'
opA=AH.
Constraint: TRANA='N' or 'C'.
2:     TRANB – CHARACTER(1)Input
On entry: specifies the option opB.
TRANB='N'
opB=B.
TRANB='C'
opB=BH.
Constraint: TRANB='N' or 'C'.
3:     ISGN – INTEGERInput
On entry: indicates the form of the Sylvester equation.
ISGN=+1
The equation is of the form opAX+XopB=αC.
ISGN=-1
The equation is of the form opAX-XopB=αC.
Constraint: ISGN=+1 or -1.
4:     M – INTEGERInput
On entry: m, the order of the matrix A, and the number of rows in the matrices X and C.
Constraint: M0.
5:     N – INTEGERInput
On entry: n, the order of the matrix B, and the number of columns in the matrices X and C.
Constraint: N0.
6:     A(LDA,*) – COMPLEX (KIND=nag_wp) arrayInput
Note: the second dimension of the array A must be at least max1,M.
On entry: the m by m upper triangular matrix A.
7:     LDA – INTEGERInput
On entry: the first dimension of the array A as declared in the (sub)program from which F08QVF (ZTRSYL) is called.
Constraint: LDAmax1,M.
8:     B(LDB,*) – COMPLEX (KIND=nag_wp) arrayInput
Note: the second dimension of the array B must be at least max1,N.
On entry: the n by n upper triangular matrix B.
9:     LDB – INTEGERInput
On entry: the first dimension of the array B as declared in the (sub)program from which F08QVF (ZTRSYL) is called.
Constraint: LDBmax1,N.
10:   C(LDC,*) – COMPLEX (KIND=nag_wp) arrayInput/Output
Note: the second dimension of the array C must be at least max1,N.
On entry: the m by n right-hand side matrix C.
On exit: C is overwritten by the solution matrix X.
11:   LDC – INTEGERInput
On entry: the first dimension of the array C as declared in the (sub)program from which F08QVF (ZTRSYL) is called.
Constraint: LDCmax1,M.
12:   SCAL – REAL (KIND=nag_wp)Output
On exit: the value of the scale factor α.
13:   INFO – INTEGEROutput
On exit: INFO=0 unless the routine detects an error (see Section 6).

6  Error Indicators and Warnings

INFO<0
If INFO=-i, argument i had an illegal value. An explanatory message is output, and execution of the program is terminated.
INFO=1
A and B have common or close eigenvalues, perturbed values of which were used to solve the equation.

7  Accuracy

Consider the equation AX-XB=C. (To apply the remarks to the equation AX+XB=C, simply replace B by -B.)
Let X~ be the computed solution and R the residual matrix:
R = C - AX~ - X~B .
Then the residual is always small:
RF = Oε AF + BF X~F .
However, X~ is not necessarily the exact solution of a slightly perturbed equation; in other words, the solution is not backwards stable.
For the forward error, the following bound holds:
X~ - X F RF sep A,B
but this may be a considerable over estimate. See Golub and Van Loan (1996) for a definition of sepA,B, and Higham (1992) for further details.
These remarks also apply to the solution of a general Sylvester equation, as described in Section 8.

8  Further Comments

The total number of real floating point operations is approximately 4mnm+n.
To solve the general complex Sylvester equation
AX ± XB = C
where A and B are general matrices, A and B must first be reduced to Schur form (by calling F08PNF (ZGEES), for example):
A = Q1 A~ Q1H   and   B = Q2 B~ Q2H
where A~ and B~ are upper triangular and Q1 and Q2 are unitary. The original equation may then be transformed to:
A~ X~ ± X~ B~ = C~
where X~ = Q1H X Q2  and C~ = Q1H C Q2 . C~ may be computed by matrix multiplication; F08QVF (ZTRSYL) may be used to solve the transformed equation; and the solution to the original equation can be obtained as X = Q1 X~ Q2H .
The real analogue of this routine is F08QHF (DTRSYL).

9  Example

This example solves the Sylvester equation AX+XB=C, where
A = -6.00-7.00i 0.36-0.36i -0.19+0.48i 0.88-0.25i 0.00+0.00i -5.00+2.00i -0.03-0.72i -0.23+0.13i 0.00+0.00i 0.00+0.00i 8.00-1.00i 0.94+0.53i 0.00+0.00i 0.00+0.00i 0.00+0.00i 3.00-4.00i ,
B = 0.50-0.20i -0.29-0.16i -0.37+0.84i -0.55+0.73i 0.00+0.00i -0.40+0.90i 0.06+0.22i -0.43+0.17i 0.00+0.00i 0.00+0.00i -0.90-0.10i -0.89-0.42i 0.00+0.00i 0.00+0.00i 0.00+0.00i 0.30-0.70i
and
C = 0.63+0.35i 0.45-0.56i 0.08-0.14i -0.17-0.23i -0.17+0.09i -0.07-0.31i 0.27-0.54i 0.35+1.21i -0.93-0.44i -0.33-0.35i 0.41-0.03i 0.57+0.84i 0.54+0.25i -0.62-0.05i -0.52-0.13i 0.11-0.08i .

9.1  Program Text

Program Text (f08qvfe.f90)

9.2  Program Data

Program Data (f08qvfe.d)

9.3  Program Results

Program Results (f08qvfe.r)


F08QVF (ZTRSYL) (PDF version)
F08 Chapter Contents
F08 Chapter Introduction
NAG Library Manual

© The Numerical Algorithms Group Ltd, Oxford, UK. 2012