Quaternion Function Reference

adjoint

Adjoint of a quaternion matrix

Syntax

C = adjoint(A, F, B)

Description

adjoint(A) or adjoint(A, 'complex') returns a complex adjoint matrix. adjoint(A, 'real') returns a real adjoint matrix. adjoint(A, 'quaternion') returns a quaternion adjoint matrix (only valid for the case where A is a complex quaternion or biquaternion matrix). The default is a complex adjoint.

The third parameter (which may appear in the second position if the second is omitted), controls the layout of the adjoint, specifically whether the adjoint is organised in blocks by components (scalar, x, y, z) or with each quaternion represented as an adjoint block.

adjoint(A, 'block') returns a complex matrix with each quaternion represented by a 2-by-2 block. adjoint(A, 'real', 'block') returns a real adjoint matrix in which each quaternion is represented by a real adjoint block, and similarly for other cases.

There is no opposite for 'block'. 'block' is not supported with the option 'quaternion'.

The adjoint of a quaternion matrix is a matrix which is in some senses equivalent to the original quaternion or biquaternion matrix. For example, it shares the same singular values (although they may occur in duplicated pairs). This means that the adjoint can be used to verify the results of quaternion matrix algorithms. The adjoint representation is redundant - it utilises twice the storage of the quaternion matrix, and after processing, it may deviate from an accurate adjoint representation (for example the pairs of singular values may no longer be closely matched). By extension, the function can also compute a real adjoint matrix which is also an alternative representation of the quaternion matrix, but with real elements rather than complex. The third possibility (a quaternion adjoint) applies only in the case of complex quaternion (biquaternion) matrices. It yields a quaternion matrix which has equivalent properties (such as singular values or eigenvalues).

The definition of the adjoint matrix is not unique (several permutations of the layout are possible).

N.B. The layout of the matrix returned in the real case was changed after the release of QTFM Version 1.6. See the code for details.

Examples

>> q = [quaternion(1,2,3,4), quaternion(5,6,7,8);...
        quaternion(9,10,11,12), quaternion(13,14,15,16)];
>> show(q)
 
q.S =
 
     1     5
     9    13

q.X =
 
     2     6
    10    14

q.Y =
 
     3     7
    11    15

q.Z =
 
     4     8
    12    16

>> adjoint(q)

ans =

   1.0000 + 2.0000i   5.0000 + 6.0000i   3.0000 + 4.0000i   7.0000 + 8.0000i
   9.0000 +10.0000i  13.0000 +14.0000i  11.0000 +12.0000i  15.0000 +16.0000i
  -3.0000 + 4.0000i  -7.0000 + 8.0000i   1.0000 - 2.0000i   5.0000 - 6.0000i
 -11.0000 +12.0000i -15.0000 +16.0000i   9.0000 -10.0000i  13.0000 -14.0000i

>> adjoint(q, 'block')

ans =

   1.0000 + 2.0000i   3.0000 + 4.0000i   5.0000 + 6.0000i   7.0000 + 8.0000i
  -3.0000 + 4.0000i   1.0000 - 2.0000i  -7.0000 + 8.0000i   5.0000 - 6.0000i
   9.0000 +10.0000i  11.0000 +12.0000i  13.0000 +14.0000i  15.0000 +16.0000i
 -11.0000 +12.0000i   9.0000 -10.0000i -15.0000 +16.0000i  13.0000 -14.0000i

See Also

QTFM function: unadjoint

References

  1. F. Z. Zhang, Quaternions and Matrices of Quaternions, Linear Algebra and its Applications, 251, January 1997, 21-57. DOI: 10.1016/0024-3795%2895%2900543-9
  2. B. P. Ickes, A New Method for Performing Digital Control System Attitude Computations using Quaternions, AIAA Journal, 8(1), January 1970, pp13-17, American Institute of Aeronautics and Astronautics.
  3. Ward, J. P., Quaternions and Cayley numbers, Kluwer, 1997.
  4. Todd A. Ell, On Systems of Linear Quaternion Functions, February 2007, arXiv:math/0702084v1, http://www.arxiv.org/abs/math/0702084.
  5. Nicolas Le Bihan, Sebastian Miron and Jerome Mars, MUSIC Algorithm for Vector-Sensors Array using Biquaternions, IEEE Transactions on Signal Processing, 55(9), September 2007, 4523-4533. DOI: 10.1109/TSP.2007.896067.

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

License terms.