NegativeSemidefiniteMatrixQ

NegativeSemidefiniteMatrixQ[m]

gives True if m is explicitly negative semidefinite, and False otherwise.

Details and Options

  • A matrix m is negative semidefinite if Re[Conjugate[x].m.x]0 for all vectors x. »
  • NegativeSemidefiniteMatrixQ works for symbolic as well as numerical matrices.
  • For approximate matrices, the option Tolerance->t can be used to indicate that all eigenvalues λ satisfying λt λmax are taken to be zero where λmax is an eigenvalue largest in magnitude.
  • The option Tolerance has Automatic as its default value.

Examples

open allclose all

Basic Examples  (2)

Test if a 2×2 real matrix is explicitly negative semidefinite:

This means that the quadratic form for all vectors :

Visualize the values of the quadratic form:

Test if a 3×3 Hermitian matrix is negative semidefinite:

Scope  (10)

Basic Uses  (6)

Test if a real machine-precision matrix is explicitly negative semidefinite:

Test if a complex matrix is negative semidefinite:

Test if an exact matrix is negative semidefinite:

Use NegativeSemidefiniteMatrixQ with an arbitrary-precision matrix:

A random matrix is typically not negative semidefinite:

Use NegativeSemidefiniteMatrixQ with a symbolic matrix:

The matrix becomes negative semidefinite when b=-TemplateBox[{a}, Conjugate]:

NegativeSemidefiniteMatrixQ works efficiently with large numerical matrices:

Special Matrices (4)

Use NegativeSemidefiniteMatrixQ with sparse matrices:

Use NegativeSemidefiniteMatrixQ with structured matrices:

The identity matrix is not negative semidefinite:

HilbertMatrix is not negative semidefinite:

Options  (1)

Tolerance  (1)

Generate a real-valued diagonal matrix with some random perturbation of order :

Adjust the option Tolerance to accept matrices as negative semidefinite:

Applications  (10)

The Geometry and Algebra of Positive Semidefinite Matrices  (5)

Consider a real, negative semidefinite 2×2 matrix and its associated real quadratic q=TemplateBox[{x}, Transpose].m.x:

Because is negative definite, the level sets are ellipses:

The plot of will be an downward-facing elliptic paraboloid:

However, the ellipses can be degenerate, turning into lines:

The plot of is then a cylinder over a parabola:

In an even more extreme case, the level set can be the whole plane as :

For a real, negative semidefinite matrix, the level sets are -ellipsoids:

In three dimensions, these can degenerate into cylinders over ellipses:

As well as planes:

A Hermitian matrix defines a real-valued quadratic form by q=TemplateBox[{x}, ConjugateTranspose].m.x:

If is negative semidefinite, is non-positive for all inputs:

Visualize for real-valued inputs:

For a real-valued matrix , only the symmetric part determines whether is negative semidefinite. Write with symmetric and antisymmetric:

As is real and symmetric TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., s, ., x}, )}}, Conjugate]=TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., s, ., x}, )}}, ConjugateTranspose]=TemplateBox[{x}, ConjugateTranspose].TemplateBox[{s}, ConjugateTranspose].TemplateBox[{{(, TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], )}}, ConjugateTranspose]=TemplateBox[{x}, ConjugateTranspose].s.x, meaning TemplateBox[{x}, ConjugateTranspose].s.x is purely real:

Similarly, as is real and antisymmetric TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., a, ., x}, )}}, Conjugate]=-TemplateBox[{x}, ConjugateTranspose].a.x, or TemplateBox[{x}, ConjugateTranspose].a.x is pure imaginary:

Thus, Re(TemplateBox[{x}, ConjugateTranspose].m.x)=TemplateBox[{x}, ConjugateTranspose].s.x, so is negative semidefinite if and only if is:

For a complex-valued matrix , only the Hermitian part determines whether is negative semidefinite. Write with Hermitian and antihermitian:

As is Hermitian, TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose], ., h, ., x}, )}}, Conjugate]=TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose], ., h, ., x}, )}}, ConjugateTranspose]=TemplateBox[{x}, ConjugateTranspose].TemplateBox[{h}, ConjugateTranspose].TemplateBox[{{(, TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], )}}, ConjugateTranspose]=TemplateBox[{x}, ConjugateTranspose].h.x, meaning TemplateBox[{x}, ConjugateTranspose].h.x is purely real:

Similarly, as is antihermitian, TemplateBox[{{(, {TemplateBox[{x}, ConjugateTranspose, SyntaxForm -> SuperscriptBox], ., a, ., x}, )}}, Conjugate]=-TemplateBox[{x}, ConjugateTranspose].a.x, or TemplateBox[{x}, ConjugateTranspose].a.x is pure imaginary:

Thus, Re(TemplateBox[{x}, ConjugateTranspose].m.x)=TemplateBox[{x}, ConjugateTranspose].h.x, so is negative semidefinite if and only if is:

Sources of Positive Definite Matrices  (5)

Two-dimensional rotation matrices with angles in the interval are negative semidefinite:

This follows from the fact that in this case Re(TemplateBox[{x}, ConjugateTranspose].r.x) corresponds to the normal dot product and :

Thus, for , the matrices are in fact negative definite:

At the endpoints they are negative semidefinite but not negative definite:

The squares of antihermitian matrices are negative definite:

Every antihermitian matrix is negative semidefinite:

The negated Lehmer matrix is symmetric negative semidefinite:

Its inverse is tridiagonal, which is also symmetric negative definite:

The matrix -Min[i,j] is always symmetric negative semidefinite:

Its inverse is a tridiagonal matrix, which is also symmetric negative definite:

Properties & Relations  (13)

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

A matrix is negative semidefinite if Re(TemplateBox[{x}, ConjugateTranspose].m.x)<=0 for all vectors :

The sign of Im(TemplateBox[{x}, ConjugateTranspose].m.x) is irrelevant:

A real matrix is negative semidefinite if and only if its symmetric part is negative semidefinite:

In general, a matrix is negative semidefinite if and only if its Hermitian part is negative semidefinite:

A real symmetric matrix is negative semidefinite if and only if its eigenvalues are all non-positive:

The statement is true of Hermitian matrices more generally:

A general matrix can have all non-positive eigenvalues without being negative semidefinite:

Equally, a matrix can be negative semidefinite without having non-positive eigenvalues:

The failure is due to the eigenvalues being complex:

The real part of the eigenvalues of a negative semidefinite matrix must be non-positive:

A diagonal matrix is negative semidefinite if and only if diagonal elements have non-positive real parts:

A negative semidefinite matrix has the general form u.d.TemplateBox[{u}, ConjugateTranspose]+a with a diagonal negative semidefinite :

Split into its Hermitian and antihermitian parts:

By the spectral theorem, can be unitarily diagonalized using JordanDecomposition:

The matrix is diagonal with non-positive diagonal entries:

The matrix is unitary:

Verify that m=u.d.TemplateBox[{u}, ConjugateTranspose]+a:

A matrix is negative semidefinite if and only if is positive semidefinite:

A negative definite matrix is always negative semidefinite:

There are negative semidefinite matrices that are not negative definite:

A negative semidefinite matrix cannot be indefinite or positive semidefinite:

The determinant and trace of a real, symmetric, negative semidefinite matrix are non-positive:

This is also true of negative semidefinite Hermitian matrices:

A real symmetric negative semidefinite matrix has a uniquely defined square root such that :

The root is uniquely defined by the condition that is negative semidefinite and Hermitian:

A Hermitian negative semidefinite matrix has a uniquely defined square root such that :

The root is uniquely defined by the condition that is negative semidefinite and Hermitian:

The Kronecker product of two symmetric negative semidefinite matrices is symmetric and positive semidefinite:

Replacing one matrix in the product by a negative semidefinite one gives a negative semidefinite matrix:

Possible Issues  (1)

NegativeSemidefiniteMatrixQ gives False unless it can prove a symbolic matrix is positive semidefinite:

Using a combination of Eigenvalues and Reduce can give more precise results:

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

Text

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

CMS

Wolfram Language. 2014. "NegativeSemidefiniteMatrixQ." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NegativeSemidefiniteMatrixQ.html.

APA

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

BibTeX

@misc{reference.wolfram_2023_negativesemidefinitematrixq, author="Wolfram Research", title="{NegativeSemidefiniteMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/NegativeSemidefiniteMatrixQ.html}", note=[Accessed: 19-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_negativesemidefinitematrixq, organization={Wolfram Research}, title={NegativeSemidefiniteMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/NegativeSemidefiniteMatrixQ.html}, note=[Accessed: 19-March-2024 ]}