
Quaternion Singular Value Decomposition based on Bidiagonalization to a Real Matrix using Quaternion Householder Transformations. S. J. Sangwine†§ N. Le Bihan‡ October 16, 2018 Abstract We present a practical and efficient means to compute the singular value decomposition (svd) of a quaternion matrix A based on bidiagonalization of A to a real bidiagonal matrix B using quaternionic Householder transformations. Computation of the svd of B using an existing subroutine library such as lapack provides the singular values of A. The singular vectors of A are obtained trivially from the product of the Householder transformations and the real singular vectors of B. We show in the paper that left and right quaternionic Householder transformations are different because of the non-commutative multiplication of quaternions and we present formulae for computing the Householder vector and matrix in each case. 1 Introduction The singular value decomposition (svd) of a quaternion matrix was first described theoretically in 1997 by Zhang [13, Theorem 7.2]. Zhang demonstrated the existence of the quaternion svd using an isomorphism between a quaternion matrix and a complex matrix known as the complex adjoint. The details of the complex adjoint matrix need not concern us here, but it is important to note that this matrix is redundant — it contains twice the number of real values as the corresponding quaternion matrix. That is, every quaternion is represented by four complex numbers in the complex adjoint, rather than the two that are sufficient, the pattern of sign/conjugation and the position of these complex numbers preserving the properties of the quaternion, so that computing with the complex adjoint is equivalent to computing with the quaternion matrix. Therefore, computing the svd of the complex adjoint matrix is equivalent to computing the svd of the corresponding quaternion matrix, but since the svd of the complex adjoint contains the singular values of the quaternion matrix twice, alternate singular values of the complex adjoint have to be discarded. Details on using the complex adjoint matrix to compute the quaternion svd may be found in [9, 8] but this method ∗ arXiv:math/0603251v1 [math.NA] 10 Mar 2006 is effectively superseded by the results in this paper . It has been noted by the authors of a quaternion qr algorithm [2] that using complex adjoint matrices to compute quaternion matrix decompositions can lead to loss of accuracy, since an algorithm applied to a complex adjoint does not necessarily preserve accurately the pattern of values in the complex matrix. For †Department of Electronic Systems Engineering, University of Essex, Wivenhoe Park, Colchester CO4 3SQ, United Kingdom. [email protected] ‡Laboratoire des Images et des Signaux, CNRS UMR 5083, ENSIEG, 961 Rue de la Houille Blanche, Domaine Universitaire, BP 46, 38402 Saint Martin d’H`eres, Cedex, France. [email protected] §The work presented here was carried out at the Laboratoire des Images et des Signaux, Grenoble. Financial support from the Royal Academy of Engineering of the United Kingdom and the Centre National de la Recherche Scientifique (CNRS) in France, which enabled Dr Sangwine to work in Grenoble for 7 months is gratefully acknowledged. ∗It is also possible to construct a real ‘adjoint’ of a quaternion matrix, but computing with it suffers from the same problems of redundancy as computing with a complex adjoint. 1 this reason, and because the computation inherently involves twice as much work as a direct quaternion computation, we have sought direct quaternion methods to compute the quaternion svd. In this paper, we present a method to compute the svd of an arbitrary quaternion matrix A which is both elegant and fast, based on transformation of A to real bidiagonal form using quaternionic Householder transformations. We show in the paper that quaternionic Householder transformations have two forms, dependent on whether the Householder matrix is to be applied on the left or right of the vector to be transformed (this is because quaternion multiplication is not commutative). Using left and right Householder transformations, the bidiagonalization of a quaternionic matrix may be represented by: HAG = B, where H (G) is the product of the left (right) quaternion Householder matrices required to transform A to the T T real bidiagonal matrix B. Since H and G are unitary, we have also†: A = H BG . The svd of the real bidiagonal matrix B may be computed using existing algorithms and code for real matrices. This is usually represented by B = UΣVT , where U and V are orthogonal real matrices. We show that the svd of the quaternion matrix A is then: T T A = H UΣVT G (1) Thus the singular values of the quaternion matrix A are the same as the singular values of the bidiagonal T T real matrix B, and the singular vectors of A are obtained trivially from the products H U and VT G . The most significant aspect of this method is that the svd of the real matrix can be computed using an existing subroutine or library. Considerable effort has been expended by others (for example, the authors of the lapack library [1]) to compute the svd of real (and complex) matrices efficiently and accurately and the results of this effort can be exploited in computing quaternion svds without having to write quaternion versions of the svd computation itself. The idea of computing the svd using reduction to bidiagonal form is well known, but it is much less well known that the bidiagonal form may be real, even for a complex matrix‡. The sequence of topics in the rest of the paper is as follows. In 2 we discuss the generalization of the Householder transformation to quaternion vectors; we prove that the§ transformation exists, and is unitary for both the left and right cases; and we present an algorithm for computing the quaternionic Householder vector in each case. In 3 we prove the existence of the real bidiagonalization of an arbitrary quaternion matrix using the quaternionic§ Householder transformations. In 4 we give an algorithm for bidiagonalizing a quaternion matrix. We then show in 5 that the singular values§ of the bidiagonalized matrix are identical to the singular values of the original quaternion§ matrix, and we present an algorithm for computing the quaternion svd using the quaternion bidiagonalization in 4 and any existing algorithm for the svd of a real matrix. § We mention here for completeness that it is also possible to compute the real bidiagonal matrix B using a quaternionic form of the Golub-Kahan-Lanczos bidiagonalization [3, 4]. This is conceptually simpler than the use of Householder transformations, since the only change needed to generalize the algorithm to handle quaternion matrices is the definition of the norm of a quaternion vector, which we give here in Lemma 2. However, the Golub-Kahan-Lanczos algorithm is not attractive because of its computational complexity. For each non-zero element of the bidiagonal matrix B generated, the corresponding quaternion vector is generated, but to yield accurate results, these quaternion vectors must be re-orthogonalized against all the previously generated vectors, and this requires considerable computation. We have implemented the Golub- Kahan bidiagonalization for quaternion matrices and verified that it works, but the method presented in this paper (which is also a generalization of the Householder method first presented in [3]) is much faster, because it does not require re-orthogonalization. We assume familiarity with quaternions and quaternion matrices. The general concepts of quaternions are available in several books [7, 12, 6]. The paper by Zhang [13] is currently the most convenient and comprehensive summary of material on quaternion matrices. Some elementary results which we need in the rest of the paper are given in Appendix A. †In this paper we use the overbar to denote a quaternion conjugate and a superscript T to denote a transpose. We avoid the standard superscript asterisk in our work, reserving it to denote a complex conjugate in work with complexified quaternions. ‡Interested readers may like to inspect the code of the lapack routine zgebrd or refer to the relevant section of the lapack Users Guide [1] available online at http://www.netlib.org/lapack/lug/node53.html. 2 2 Quaternion Householder transformations The Householder transformation [5] is based on a unitary matrix of the form H = I uuT , where u = − k k √2. u is called a Householder vector. H is used to transform a vector, either by multiplication on the left by H for a column vector, or by multiplication on the right by HT for a row vector. Normally the vectors are parts of a row or column of a matrix that is transformed by a succession of Householder transformations. The modification usually consists of setting to zero multiple elements of the vector, while preserving the norm, but the general case is interesting. Given a unit vector v and a row or column vector a to be transformed, the transformation effectively generates a copy of v scaled by the norm of a, that is: Ha = a v. Thus if v contains one non-zero element with a modulus of 1, the transformed vector will have one non-zerok k element in the corresponding position with a modulus equal to the norm of a and sign equal to the sign of the non-zero element of v. The Householder transformation was generalised to the complex case by Morrison [10]. He introduced a complex scalar with unit modulus, denoted ζ. The Householder matrix and vector then become complex: H = z I uuT where z =1/ζ. Now, if v has non-zero real elements, and a unit norm, then the transformed vector will− be zero in all positions except those where v was non-zero, and the non-zero elements of the transformed vector will be real.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-