# AntihermitianMatrixQ

gives True if m is explicitly antihermitian, and False otherwise.

# Details and Options • AntihermitianMatrixQ is also known as skew-Hermitian.
• A matrix m is antihermitian if m-ConjugateTranspose[m].
• AntihermitianMatrixQ works for symbolic as well as numerical matrices.
• The following options can be given:
•  SameTest Automatic function to test equality of expressions Tolerance Automatic tolerance for approximate numbers
• For exact and symbolic matrices, the option SameTest->f indicates that two entries mij and mkl are taken to be equal if f[mij,mkl] gives True.
• For approximate matrices, the option Tolerance->t can be used to indicate that all entries Abs[mij]t are taken to be zero.
• For matrix entries Abs[mij]>t, equality comparison is done except for the last bits, where is \$MachineEpsilon for MachinePrecision matrices and for matrices of Precision .

# Examples

open allclose all

## Basic Examples(2)

Test if a 2×2 numeric matrix is explicitly antihermitian:

Test if a 3×3 symbolic matrix is explicitly antihermitian:

## Scope(10)

### Basic Uses (6)

Test if a real machine-precision matrix is antihermitian:

A real antihermitian matrix is also antisymmetric:

Test if a complex matrix is antihermitian:

A complex antihermitian matrix has antisymmetric real part and symmetric imaginary part:

Test if an exact matrix is antihermitian:

Make the matrix antihermitian:

Use AntihermitianMatrixQ with an arbitrary-precision matrix:

A random matrix is typically not antihermitian:

Use AntihermitianMatrixQ with a symbolic matrix:

The matrix becomes antihermitian when c=-b and the real part of a and d is zero:

AntihermitianMatrixQ works efficiently with large numerical matrices:

### Special Matrices (4)

Use AntihermitianMatrixQ with sparse matrices:

Use AntihermitianMatrixQ with structured matrices:

Use with a QuantityArray structured matrix:

The identity matrix is not antihermitian:

Make it antihermitian by multiplying with :

HilbertMatrix is not antihermitian:

## Options(2)

### SameTest(1)

This matrix is antihermitian for a positive real , but AntihermitianMatrixQ gives False:

Use the option SameTest to get the correct answer:

### Tolerance(1)

A complex-valued antihermitian matrix with some random perturbation of order :

Adjust the option Tolerance to accept this matrix as antihermitian:

The norm of the difference between the matrix and its conjugate transpose with minus sign:

## Applications(6)

Any matrix generated from an antihermitian function is antihermitian:

The function is antihermitian:

Using Table generates an antihermitian matrix:

SymmetrizedArray can generate matrices (and general arrays) with symmetries:

Convert back to an ordinary matrix using Normal:

Consider the family of rotation matrices corresponding to rotation by in the plane:

The logarithmic derivative is antihermitian:

This will be true of any 1-parameter family of rotations:

Stone's theorem says that any 1-parameter family of unitary matrices has an antihermitian logarithmic derivative. Verify the theorem for the following family of matrices:

First, confirm the matrices are unitary under the assumption that is real:

Compute the logarithmic derivative:

Verify the result is antihermitian:

In quantum mechanics, time evolution is represented by a 1-parameter family of unitary matrices . times the logarithmic derivative of is a Hermitian matrix called the Hamiltonian or energy operator . Its eigenvalues represent the possible energies of the system. For the following time evolution, compute the Hamiltonian and possible energies:

First, verify the matrices are, in fact, unitary:

Compute the logarithmic derivative:

This matrix is antihermitian:

Define the Hamiltonian:

Verify that the matrix is Hermitian:

Its real eigenvalues represent the possible energies:

The exponential MatrixExp[v] of an antihermitian matrix is unitary. Define a matrix function through its differential equation with initial value , and show that the solution is unitary:

Solve and check that the resulting matrix is unitary at each time:

With default settings, you get approximately unitary matrices:

The matrix 2-norm of the solution is 1:

Plot the rows of the matrix:

Each row lies on the unit sphere:

## Properties & Relations(15)

trivially returns False for any x that is not a matrix:

A matrix is antihermitian if m==-ConjugateTranspose[m]:

An antihermitian matrix must have pure imaginary diagonal elements:

Use Diagonal to pick out the diagonal elements:

A real-valued antisymmetric matrix is antihermitian:

But a complex-valued symmetric matrix may not be:

Use Symmetrize with the symmetry Antihermitian to compute the antihermitian part of a matrix:

This equals the normalized difference between m and :

Any matrix can be represented as the sum of its Hermitian and antihermitian parts:

Use HermitianMatrixQ to test whether a matrix is Hermitian:

If is a Hermitian matrix, then is antihermitian:

MatrixExp[m] for antihermitian m is unitary:

An antihermitian matrix is always a normal matrix:

Use NormalMatrixQ to test whether the matrix is normal:

Antihermitian matrices have eigenvalues on the imaginary axis:

Use Eigenvalues to find eigenvalues:

for antihermitian m alternates real and imaginary coefficients:

Antihermitian matrices have a complete set of eigenvectors:

As a consequence, they must be diagonalizable:

Use Eigenvectors to find eigenvectors:

Det[m] for antisymmetric m of odd dimensions is imaginary:

If m has even dimensions, its determinant is real:

The inverse of an antihermitian matrix is antihermitian:

Odd powers of an antihermitian matrix are antihermitian:

Even powers are Hermitian:

## Possible Issues(1)

A complex antisymmetric matrix is not antihermitian: