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

Details and Options


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 r^(').TemplateBox[{r}, Inverse] 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)

AntihermitianMatrixQ[x] 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 ConjugateTranspose[m]:

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:

CharacteristicPolynomial[m,x] 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:

Wolfram Research (2014), AntihermitianMatrixQ, Wolfram Language function,


Wolfram Research (2014), AntihermitianMatrixQ, Wolfram Language function,


Wolfram Language. 2014. "AntihermitianMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2014). AntihermitianMatrixQ. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2022_antihermitianmatrixq, author="Wolfram Research", title="{AntihermitianMatrixQ}", year="2014", howpublished="\url{}", note=[Accessed: 29-June-2022 ]}


@online{reference.wolfram_2022_antihermitianmatrixq, organization={Wolfram Research}, title={AntihermitianMatrixQ}, year={2014}, url={}, note=[Accessed: 29-June-2022 ]}