nag_zunghr (f08ntc) generates the complex unitary matrix
which was determined by
nag_zgehrd (f08nsc) when reducing a complex general matrix
to Hessenberg form.
nag_zunghr (f08ntc) is intended to be used following a call to
nag_zgehrd (f08nsc), which reduces a complex general matrix
to upper Hessenberg form
by a unitary similarity transformation:
.
nag_zgehrd (f08nsc) represents the matrix
as a product of
elementary reflectors. Here
and
are values determined by
nag_zgebal (f08nvc) when balancing the matrix; if the matrix has not been balanced,
and
.
This function may be used to generate
explicitly as a square matrix.
has the structure:
where
occupies rows and columns
to
.
The computed matrix
differs from an exactly unitary matrix by a matrix
such that
where
is the
machine precision.
The real analogue of this function is
nag_dorghr (f08nfc).
This example computes the Schur factorization of the matrix
, where
Here
is general and must first be reduced to Hessenberg form by
nag_zgehrd (f08nsc). The program then calls nag_zunghr (f08ntc) to form
, and passes this matrix to
nag_zhseqr (f08psc) which computes the Schur factorization of
.