WOLFRAM

Enable JavaScript to interact with content and submit forms on Wolfram websites. Learn how
Wolfram Language & System Documentation Center

SymmetricMatrixQ [m]

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

Details and Options
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Basic Uses  
Special Matrices  
Options  
SameTest  
Tolerance  
Applications  
Generating Symmetric Matrices  
Examples of Symmetric Matrices  
Uses of Symmetric Matrices  
Properties & Relations  
Possible Issues  
Neat Examples  
See Also
Related Guides
History
Cite this Page

SymmetricMatrixQ [m]

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

Details and Options

  • A matrix m is symmetric if m==Transpose [m].
  • SymmetricMatrixQ 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 all close all

Basic Examples  (2)

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

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

Scope  (10)

Basic Uses  (6)

Test if a real machine-precision matrix is symmetric:

A real symmetric matrix is also Hermitian:

Test if a complex matrix is symmetric:

A complex symmetric matrix has symmetric real and imaginary parts:

Test if an exact matrix is symmetric:

Make the matrix symmetric:

Use SymmetricMatrixQ with an arbitrary-precision matrix:

A random matrix is typically not symmetric:

Use SymmetricMatrixQ with a symbolic matrix:

The matrix becomes symmetric when :

SymmetricMatrixQ works efficiently with large numerical matrices:

Special Matrices  (4)

Use SymmetricMatrixQ with sparse matrices:

Use SymmetricMatrixQ with structured matrices:

Use with a QuantityArray structured matrix:

The identity matrix is symmetric:

HilbertMatrix is symmetric:

Options  (2)

SameTest  (1)

This matrix is symmetric for a positive real , but SymmetricMatrixQ gives False :

Use the option SameTest to get the correct answer:

Tolerance  (1)

Generate a real-valued symmetric matrix with some random perturbation of order 10-14:

Adjust the option Tolerance to accept this matrix as symmetric:

The norm of the difference between the matrix and its transpose:

Applications  (13)

Generating Symmetric Matrices  (4)

Any matrix generated from a symmetric function is symmetric:

The function is symmetric:

Using Table generates a symmetric matrix:

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

Convert back to an ordinary matrix using Normal :

Check that matrices drawn from GaussianOrthogonalMatrixDistribution are symmetric:

Matrices drawn from CircularOrthogonalMatrixDistribution are symmetric and unitary:

Every Jordan matrix is similar to a symmetric matrix. Since any square matrix is similar to its Jordan form, this means that any square matrix is similar to a symmetric matrix. Define a function for generating an Jordan block for eigenvalue :

For example, here is the Jordan matrix of dimension 4 for the eigenvalue :

Define a function for generating a corresponding complex similarity transformation:

The matrix is a sum of times the identity matrix and times the backward identity matrix:

Then s(n).j(lambda,n).TemplateBox[{{s, (, n, )}}, Inverse] is symmetric, which shows that the Jordan matrix is similar to a symmetric matrix:

Confirm the matrix is symmetric:

Examples of Symmetric Matrices  (5)

The Hessian matrix of a function is symmetric:

Many special matrices are symmetric, including FourierMatrix :

HadamardMatrix :

HankelMatrix :

And HilbertMatrix :

Visualize the matrix types:

Many filter kernel matrices are symmetric, including DiskMatrix :

CrossMatrix :

DiamondMatrix :

Visualize the matrices:

AdjacencyMatrix of an undirected graph is symmetric:

As is KirchhoffMatrix :

Visualize adjacency and Kirchhoff matrices for different graphs:

Several statistical measures are symmetric matrices, including Covariance :

Correlation :

AbsoluteCorrelation :

Uses of Symmetric Matrices  (4)

A positive-definite, real symmetric matrix or metric defines an inner product by :

Verify that is in fact symmetric and positive definite:

Orthogonalize the standard basis of TemplateBox[{}, Reals]^n to find an orthonormal basis:

Confirm that this basis is orthonormal with respect to the inner product :

The moment of inertia tensor is the equivalent of mass for rotational motion. For example, kinetic energy is , with taking the place of the mass and angular velocity taking the place of linear velocity in the formula . can be represented by a positive-definite symmetric matrix. Compute the moment of inertia for a tetrahedron with endpoints at the origin and positive coordinate axes:

Verify that the matrix is symmetric:

Compute the kinetic energy if its angular velocity is :

The kinetic energy is positive as long as is nonzero, showing the matrix was positive definite:

Determine if a sparse matrix is structurally symmetric:

The matrix is not symmetric:

But it is structurally symmetric:

Use a different method for symmetric matrices, with failover to a general method:

Construct real-valued matrices for testing:

For a non-symmetric matrix m, the function myLS just uses Gaussian elimination:

For a symmetric indefinite matrix ms, try Cholesky and continue with Gaussian elimination:

For a symmetric positive-definite matrix mpd, try Cholesky, which succeeds:

Properties & Relations  (14)

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

A matrix is symmetric if mTranspose [m]:

A real-valued symmetric matrix is Hermitian:

But a complex-valued symmetric matrix may not be:

Use Symmetrize to compute the symmetric part of a matrix:

This equals the average of m and Transpose [m]:

Any matrix can be represented as the sum of its symmetric and antisymmetric parts:

Use AntisymmetricMatrixQ to test whether a matrix is antisymmetric:

If is a symmetric matrix with real entries, then is antihermitian:

MatrixExp [I m] for real symmetric m is unitary:

A real-valued symmetric matrix is always a normal matrix:

A complex-valued symmetric matrix need not be normal:

Real-valued symmetric matrices have all real eigenvalues:

Use Eigenvalues to find eigenvalues:

Note that a complex-valued symmetric matrix may have both real and complex eigenvalues:

CharacteristicPolynomial [m,x] for real symmetric m can be factored into linear terms:

Real-valued symmetric matrices have a complete set of eigenvectors:

As a consequence, they must be diagonalizable:

Use Eigenvectors to find eigenvectors:

Note that a complex-valued symmetric matrix need not have these properties:

The inverse of a symmetric matrix is symmetric:

Matrix functions of symmetric matrices are symmetric, including MatrixPower :

MatrixExp :

And any univariate function representable using MatrixFunction :

SymmetricMatrix can be used to explicitly construct symmetric matrices:

These satisfy SymmetricMatrixQ :

Possible Issues  (1)

SymmetricMatrixQ uses the definition TemplateBox[{m}, Transpose]=m for both real- and complex-valued matrices:

These complex matrices need not be normal or possess many properties of self-adjoint (real symmetric) matrices:

HermitianMatrixQ tests the condition TemplateBox[{m}, ConjugateTranspose]=m for self-adjoint matrices:

Alternatively, test if the entries are real to restrict to real symmetric matrices:

Neat Examples  (1)

Images of symmetric matrices including FourierMatrix :

Wolfram Research (2008), SymmetricMatrixQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html (updated 2014).

Text

Wolfram Research (2008), SymmetricMatrixQ, Wolfram Language function, https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html (updated 2014).

CMS

Wolfram Language. 2008. "SymmetricMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html.

APA

Wolfram Language. (2008). SymmetricMatrixQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html

BibTeX

@misc{reference.wolfram_2025_symmetricmatrixq, author="Wolfram Research", title="{SymmetricMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html}", note=[Accessed: 16-November-2025]}

BibLaTeX

@online{reference.wolfram_2025_symmetricmatrixq, organization={Wolfram Research}, title={SymmetricMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/SymmetricMatrixQ.html}, note=[Accessed: 16-November-2025]}

Top [フレーム]

AltStyle によって変換されたページ (->オリジナル) /