Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] adhi_v1_0.gz(8 Kbytes)
Manuscript Title: Angle decomposition of matrices.
Authors: W.S. Verwoerd, V. Nolting
Program title: adum.f
Catalogue identifier: ADHI_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 108(1998)218
Programming language: Fortran.
Operating system: AIX, DOS, Windows NT.
Keywords: General purpose, Matrix factorisation, Unitary matrix angle, Decomposition, Matrix, Interpolation, Linear algebra, Algorithm.
Classification: 4.8, 4.10.

Nature of problem:
The algorithm can be applied to any problem where a unitary matrix M is evaluated as a function of an external parameter. It can be generalized to a hermitian or generally complex matrix A of which this dependence is further transmitted to the eigenvector matrix M of A.

Solution method:
An arbitrary N x N unitary matrix M is decomposed into 1/2N(N-1) factor matrices. Each factor matrix has the form of an N x N unit matrix except for a 2 x 2 complex rotation submatrix located at an appropriate poeition on the diagonal. The factor matrices each contain a rotation angle and between 0 and 3 phase angles, adding up to a total of N**2 independent real angles. This can be summarized into an N x N real angle matrix Gamma containing the same information as the unitary matrix M. Gamma can be more easily interpolated as a function of the external parameter than A. From Gamma the original matrix A at the interpolated parameter value can be recomposed in a way that guarantees its fundamental matrix properties by construction.

The present version of the program is designed to function as a subroutine within any suitable FORTRAN 77 code. Input is the user provided N x N unitary matrix M; output is the N x N real angle matrix Gamma. Code is provided for both the decomposition of M into Gamma, and the recomposition of M from a given Gamma. For dimensions up to N = 10 accuracies of the order of 10**-13 are achieved.

Unusual features:
Three subroutines from Numerical Recipes are incorporated into the program to solve the system of linear equations A . x = B. If necessary, e.g. for larger dimensions, these routines may be replaced by more powerful library equivalents from e.g. NAG, IMSL, etc.

Running time:
A fraction of a CPU-second for a single application. Even in selfconsistent calculations where in each iteration step a whole set of matrices have to be factorized the factorization itself does not unreasonably prolong the computing time.