Programs in Physics & Physical Chemistry
|[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.
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.
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.
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.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|