Quaternion Function Reference

svdj

Singular value decomposition using Jacobi algorithm

Syntax

[U,S,V] = svdj(A, tol)

Description

[U,S,V] = svdj(A, tol) computes the quaternion singular value decomposition of A using a Jacobi algorithm, with tol as a tolerance to control the stopping point of the algorithm, which is iterative.

This function is primarily provided for test and verification purposes, since Jacobi algorithms are known to be accurate, although slow. For a faster computation use the svd function.

This function will work for real and complex matrices, as well as quaternion matrices. This makes possible verification of results using the adjoint function, since by this means a complex matrix may be constructed from a quaternion matrix and the singular values determined accurately. The code also exhibits specialised techniques that allow the same code to work on real, complex and quaternion data, which can be useful when developing experimental algorithms.

Examples

The singular values of the complex adjoint are the same as those of the quaternion matrix, but they occur in pairs because of the duplication of information in the adjoint.
>> q = randq(4)
 
q = 4x4 quaternion array
 
>> svdj(q)

ans =

    2.9641
    2.3497
    1.2075
    0.4849

>> svdj(adjoint(q))

ans =

    2.9641
    2.9641
    2.3497
    2.3497
    1.2075
    1.2075
    0.4849
    0.4849

See Also

QTFM functions: svd, adjoint

References

  1. N. Le Bihan and S. J. Sangwine, 'Jacobi Method for Quaternion Matrix Singular Value Decomposition', Applied Mathematics and Computation, 187 (2), 15 April 2007, 1265-1271. DOI: 10.1016/j.amc.2006.09.055.
  2. S. J. Sangwine and N. Le Bihan, 'Computing the SVD of a quaternion matrix', in Seventh International Conference on Mathematics in Signal Processing, 17-20 December 2006, The Royal Agricultural College, Cirencester, UK, pp5-8. Institute of Mathematics and its Applications, 2006.

© 2008-2013 Stephen J. Sangwine and Nicolas Le Bihan

License terms.