IndefiniteMatrixQ
范例
打开所有单元 关闭所有单元基本范例 (2)
m = {{-1, 0}, {0, 1}};IndefiniteMatrixQ[m]Plot3D[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}, {Subscript[x, 1], -1, 1}, {Subscript[x, 2], -1, 1}, BoxRatios -> 1]IndefiniteMatrixQ[(| | | |
| ---------------- | -------------- | ---------------- |
| 5.42 | 3.26 + 0.643 I | -0.467 - 0.193 I |
| 3.26 - 0.643 I | 3.82 | 1.04 - 2.35 I |
| -0.467 + 0.193 I | 1.04 + 2.35 I | -4.88 |)]范围 (10)
基本用法 (6)
IndefiniteMatrixQ[{{1.6, -0.8}, {-0.8, -0.4}}]IndefiniteMatrixQ[{{1, 2 I}, {-I, -3}}]IndefiniteMatrixQ[(| | | |
| - | ------- | -- |
| π | -5 | 2 |
| E | -3 | -3 |
| 5 | Sqrt[2] | 5 |)]将 IndefiniteMatrixQ 用于任意精度矩阵:
m = RandomReal[5, {4, 4}, WorkingPrecision -> 15]IndefiniteMatrixQ[m]将 IndefiniteMatrixQ 用于符号矩阵:
IndefiniteMatrixQ[{{1, a}, {b, -1}}]Block[{b = -Conjugate[a]}, IndefiniteMatrixQ[{{1, a}, {b, -1}}]]IndefiniteMatrixQ 可高效处理大型数值矩阵:
m = RandomReal[1, {1000, 1000}];AbsoluteTiming[IndefiniteMatrixQ[m]]a = m.m^;
AbsoluteTiming[IndefiniteMatrixQ[a]]特殊矩阵 (4)
将 IndefiniteMatrixQ 用于稀疏矩阵:
SparseArray[{{i_, i_} -> 2., {i_, j_} /; Abs[i - j] == 1 -> -1.}, {10, 10}, 0.]IndefiniteMatrixQ[%]将 IndefiniteMatrixQ 用于结构化矩阵:
SymmetrizedArray[{{1, 1} -> 5, {1, 2} -> 11, {2, 2} -> -25}, {2, 2}, Symmetric[All]]IndefiniteMatrixQ[%]IndefiniteMatrixQ[IdentityMatrix[5]]HilbertMatrix 不是不定矩阵:
IndefiniteMatrixQ[HilbertMatrix[5]]选项 (1)
Tolerance (1)
SeedRandom[5];
m = {{2, 0, 0}, {0, 1, 0}, {0, 0, 0}} + 10 ^ -12 * DiagonalMatrix[RandomReal[{-10, -1}, 3]]如果
数量级的元素为舍入误差, 则判定矩阵为不定矩阵是个错误:
IndefiniteMatrixQ[m]调整选项 Tolerance,给出正确答案:
IndefiniteMatrixQ[m, Tolerance -> 10 ^ -12]应用 (16)
半正定矩阵的几何与代数 (6)
m = (| | |
| - | -- |
| 1 | 0 |
| 0 | -1 |);
IndefiniteMatrixQ[m]q[x_, y_] := {x, y}.m.{x, y}ContourPlot[q[x, y], {x, -2, 2}, {y, -2, 2}]ContourPlot[q[x, y] == 0, {x, -2, 2}, {y, -2, 2}]Plot3D[q[x, y], {x, y}∈Disk[{0, 0}, 1], MeshFunctions -> {#3&}, BoxRatios -> 1]m = (| | | |
| -- | -- | -- |
| 3 | -1 | 0 |
| -1 | 3 | 0 |
| 0 | 0 | -3 |);
IndefiniteMatrixQ[m]m = {{3, -1, 0}, {-1, 3, 0}, {0, 0, -3}};ContourPlot3D[{x, y, z}.m.{x, y, z}, {x, y, z}∈RegionProduct[Disk[{0, 0}, 2.6], Interval[{-2, 2}]], Contours -> {-1, 1}, ContourStyle -> Opacity[0.5], Mesh -> None, RegionBoundaryStyle -> None]ContourPlot3D[{x, y, z}.m.{x, y, z}, {x, y, z}∈RegionProduct[Disk[{0, 0}, 2.6], Interval[{-2, 2}]], Contours -> {0}, Mesh -> None, RegionBoundaryStyle -> None]m = (| | | |
| -- | -- | - |
| 3 | -1 | 0 |
| -1 | -3 | 0 |
| 0 | 0 | 0 |);
IndefiniteMatrixQ[m]ContourPlot3D[{x, y, z}.m.{x, y, z}, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, Contours -> {4, 0, -4}, ContourStyle -> Opacity[0.5], Mesh -> None]m = (| | |
| ----- | ----- |
| 5 | 2 + I |
| 2 - I | -5 |);
q[w_, z_] := {w, z}.m.{w, z}
Reduce[q[w, z]∈Reals, {w, z}]Reduce[Subscript[∃, {w, z}]q[w, z] > 0 && Subscript[∃, {w, z}]q[w, z] < 0, {w, z}, Complexes]Plot3D[q[x, y], {x, y}∈Disk[{0, 0}, 1], BoxRatios -> 1]对于实值矩阵
,只有对称部分决定
是否为不定. 写成
,其中
对称且
反对称:
m = (| | |
| - | - |
| 1 | 2 |
| 3 | 4 |);
MatrixForm[s = (m + m/2)]MatrixForm[a = (m - m/2)]m == s + a && SymmetricMatrixQ[s] && AntisymmetricMatrixQ[a]x = RandomComplex[1 + I, 2];
x.s.x//Chopx = RandomComplex[1 + I, 2];
x.a.x{IndefiniteMatrixQ[m], IndefiniteMatrixQ[s]}对于复值矩阵
,只有埃尔米特部分确定
是否为不定矩阵. 写成
,其中
为埃尔米特矩阵且
为反埃尔米特矩阵:
m = (| | |
| ------- | ------- |
| 1 + 5 I | 2 + 6 I |
| 3 + 7 I | 4 + 8I |);
MatrixForm[h = (m + m/2)]MatrixForm[a = (m - m/2)]m == h + a && HermitianMatrixQ[h] && AntihermitianMatrixQ[a]x = RandomComplex[1 + I, 2];
x.h.x//Chopx = RandomComplex[1 + I, 2];
x.a.x//Chop{IndefiniteMatrixQ[m], IndefiniteMatrixQ[h]}m = (| | |
| -- | - |
| 2I | 1 |
| 1 | 1 |);
IndefiniteMatrixQ[m]Reduce[Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] > 0 && Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]Reduce[Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} > 0 && Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]FindInstance[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} > 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]FindInstance[Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] > 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]FindInstance[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]FindInstance[Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]不定矩阵的来源 (6)
Table[IndefiniteMatrixQ[PauliMatrix[k]], {k, 3}]当
时,FourierMatrix[k] 为不定矩阵:
Table[IndefiniteMatrixQ[FourierMatrix[k]], {k, 2, 6}]当
时,ToeplitzMatrix[k] 为不定矩阵:
Table[IndefiniteMatrixQ[ToeplitzMatrix[k]], {k, 2, 6}]r = Table[If[j == 1 || Mod[j, i] == 0, 1, 0], {i, 6}, {j, 6}];r//MatrixFormIndefiniteMatrixQ[r]Eigenvalues[r]//N许多滤波器核矩阵是不定矩阵,包括 CrossMatrix[k]:
Table[IndefiniteMatrixQ[CrossMatrix[k]], {k, 5}]DiamondMatrix[k]:
Table[IndefiniteMatrixQ[DiamondMatrix[k]], {k, 5}]当
时的 DiskMatrix[k] 也是:
Table[IndefiniteMatrixQ[DiskMatrix[k]], {k, 5}]DiskMatrix[1] 是半正定矩阵:
PositiveSemidefiniteMatrixQ[DiskMatrix[1]]随机生成的矩阵往往是不定矩阵,不定矩阵的概率随着矩阵维数的增加而迅速增加. 以下输入估算了矩阵维数从
到
增加时
矩阵为不定矩阵的概率. 首先,矩阵中的项为统一独立从区间
中提取的项:
Table[Count[RandomReal[1, {10^4, k, k}], _ ? IndefiniteMatrixQ], {k, 2, 6}] / 10.^4根据 GaussianOrthogonalMatrixDistribution 绘制的矩阵:
Table[Count[RandomVariate[GaussianOrthogonalMatrixDistribution[k], 10^4], _ ? IndefiniteMatrixQ], {k, 2, 6}] / 10.^4根据 GaussianUnitaryMatrixDistribution 绘制的矩阵:
Table[Count[RandomVariate[GaussianUnitaryMatrixDistribution[k], 10^4], _ ? IndefiniteMatrixQ], {k, 2, 6}] / 10.^4根据 CircularRealMatrixDistribution 绘制的矩阵:
Table[Count[RandomVariate[CircularRealMatrixDistribution[k], 10^4], _ ? IndefiniteMatrixQ], {k, 2, 6}] / 10.^4不定矩阵的使用 (4)
二阶导数检验将函数的临界点分类如下,若黑塞矩阵为正定矩阵则为局部最小值,若黑塞矩阵为负定矩阵则为局部最大值,若黑塞矩阵为不定矩阵则为鞍点(如果黑塞矩阵不是这三种类型之一,则检验失败 )。求两个变量的函数的临界点:
f[x_, y_] := x ^ 4 + y ^ 4 - 20x ^ 2 - 10x y - 25grad = Grad[f[x, y], {x, y}]sol = NSolve[grad == {0, 0}, {x, y}, Reals]hessian = Grad[grad, {x, y}]IndefiniteMatrixQ[hessian /. sol[[3]]]PositiveDefiniteMatrixQ /@ (hessian /. sol[[1 ;; 2]])Show[Plot3D[f[x, y], {x, -5, 5}, {y, -5, 5}, PlotRange -> 200, ClippingStyle -> None, Mesh -> {5, 0}, PlotStyle -> Opacity[.65], BoxRatios -> {1, 1, 3 / 4}, ViewPoint -> {1.2, -2.5, 0}], Graphics3D[{PointSize[.04], Riffle[{Red, Blue, Green}, Point[{x, y, f[x, y]}] /. sol]}]]f[x_, y_, z_] := 25 - x^2 + 2 x^4 - x y - y^2 + 4 x^2 y^2 + 2 y^4 - 2 x z - 2 y z - z^2 + 4 x^2 z^2 + 4 y^2 z^2 + 2 z^4grad = Grad[f[x, y, z], {x, y, z}]sol = NSolve[grad == {0, 0, 0}, {x, y, z}, Reals]hessian = Grad[grad, {x, y, z}]PositiveDefiniteMatrixQ /@ (hessian /. Take[sol, 2])IndefiniteMatrixQ /@ (hessian /. Drop[sol, 2])对于这个函数,任何三个临界点都是线性相关,所以这些点都在一个平面上:
Minors[{x, y, z} /. sol, 3]//Chopnormal = Apply[Cross, {x, y, z} /. sol[[{1, 3}]]]Show[SliceContourPlot3D[f[x, y, z], {{x, y, z}.normal == 0}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Contours -> 15, ViewVertical -> {-0.2, 0.7, 0.6}, ViewPoint -> {-1.2, -1.2, 2.9}], Graphics3D[{Riffle[{Green, Green, Red, Red, Red}, Sphere[{x, y, z}, 0.05] /. sol]}]]大约一半的三维旋转矩阵是不定矩阵. 这可以理解为平行于旋转轴的向量不因旋转而改变,而垂直于轴的向量旋转超过
. 对于前者有
,对于后者有
. 首先,生成
个随机旋转矩阵:
indefList = Select[Table[RotationMatrix[RandomReal[{-π, π}], RandomReal[{-1, 1}, 3]], {4000}], IndefiniteMatrixQ];Length[indefList] / 4000.r = RandomChoice[indefList];
{q, t} = SchurDecomposition[r];{x, y, z}.r.{x, y, z} == ({x, y, z}.q).t.({x, y, z}.q)//FullSimplify//Chop
对标准单位向量的作用为使一个向量保持不变,并将其他向量旋转超过
:
Table[VectorAngle[t.UnitVector[3, i], UnitVector[3, i]], {i, 3}]//Chop时空或伪黎曼度量是可逆且实对称的不定矩阵,当约束某些三维子空间时这些不定矩阵会变为正定矩阵. 通过相关的二次形式给出时空中事件之间的平方距离的概念. 证明标准或 Minkowski 度量是时空度量:
η = (| | | | |
| -- | - | - | - |
| -1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 1 |);Det[η] ≠ 0 && η∈Reals && SymmetricMatrixQ[η] && IndefiniteMatrixQ[η]PositiveDefiniteMatrixQ[η[[2 ;; 4, 2 ;; 4]]]e1 = {1, 1, 1, 1};
e1.η.e1Sqrt[e1.η.e1]e2 = {2, 1, 0, 0};
e2.η.e2事件发生在某个参考框架的同一点上,一个是另一个之后,间隔时间恰好是
:
Sqrt[-e2.η.e2]事件
与原点的平方距离为零,或类光间隔,因为只有光速可以到达这两个事件:
e2 = {-1, 1, 0, 0};
e2.η.e2属性和关系 (9)
对于任何不是矩阵的 x,IndefiniteMatrixQ[x] 都会返回 False:
IndefiniteMatrixQ[Sqrt[3]]m = (| | |
| - | - |
| I | 1 |
| 0 | 1 |);
IndefiniteMatrixQ[m]Reduce[Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] > 0 && Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]Reduce[Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} > 0 && Subscript[∃, {Subscript[x, 1], Subscript[x, 2]}]{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} < 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]m = (| | | |
| -- | -- | -- |
| -2 | -3 | -1 |
| 3 | 4 | 4 |
| 1 | 4 | 4 |);s = Symmetrize[m];{IndefiniteMatrixQ[m], IndefiniteMatrixQ[s]}一般来说,当且仅当矩阵
的埃尔米特部分为不定时,该矩阵为不定矩阵:
c = (| | | |
| ------- | --------- | --------- |
| 1 + 4 I | 1 + 8 I | -1 + 5 I |
| 3 - 6 I | 3 + 2 I | -7 |
| 1 - I | -11 + 8 I | -11 + 6 I |);h = Symmetrize[c, Hermitian[All]];{IndefiniteMatrixQ[c], IndefiniteMatrixQ[h]}当且仅当一个实对称矩阵同时具有正和负特征值时,该矩阵为不定矩阵:
m = (| | |
| -- | - |
| -2 | 1 |
| 1 | 2 |);
{SymmetricMatrixQ[m], IndefiniteMatrixQ[m]}Eigenvalues[m]c = (| | |
| -- | -- |
| 1 | I |
| -I | -2 |);
{HermitianMatrixQ[c], IndefiniteMatrixQ[c]}Eigenvalues[c]//NIndefiniteMatrixQ[(| | |
| - | -- |
| 4 | -1 |
| 2 | 0 |)]Eigenvalues[(| | |
| - | -- |
| 4 | -1 |
| 2 | 0 |)]//NFindInstance[{x, y}.(| | |
| - | -- |
| 4 | -1 |
| 2 | 0 |).{x, y} < 0, {x, y}]当且仅当对角元素同时具有正实部和负实部时,对角矩阵为不定矩阵:
IndefiniteMatrixQ[(| | | |
| - | -- | - |
| 2 | 0 | 0 |
| 0 | -1 | 0 |
| 0 | 0 | 0 |)]IndefiniteMatrixQ[(| | | |
| - | - | - |
| 2 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |)]m = (| | | |
| ----------------------------------------- | ------------------------------------------ | ------------------------------------------ |
| 3.792168950417362 | 2.973638210582098 + 1.4338467608374894 I | 2.6847137114282464 + 1.096732668646098 I |
| 2.5943303334981036 - 1.4338467608374894 I | -3.72 | 2.2427900539994767 + 0.15267916356932992 I |
| 2.3008034014752843 - 1.096732668646098 I | 2.5698503388043816 - 0.15267916356933003 I | 3.1 + I |);
IndefiniteMatrixQ[m]h = Symmetrize[m, Hermitian[All]];a = Symmetrize[m, Antihermitian[All]];根据光谱定理,可以使用 JordanDecomposition 对
进行酉对角化:
{u, d} = JordanDecomposition[h];d//MatrixFormUnitaryMatrixQ[u]u.d.u + a - m//Chopm = (| | |
| - | - |
| 1 | 2 |
| 1 | 1 |);
{IndefiniteMatrixQ[m], PositiveSemidefiniteMatrixQ[m], NegativeSemidefiniteMatrixQ[m]}m = (| | | | |
| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
| 0.8368175179836128 + 0. I | 0.08442148190943044 - 0.07261632146865446 I | -1.2128453065519185 + 0.2791488701895241 I | -0.7176461452206016 + 0.09729452115881893 I |
| 0.08442148190943044 + 0.07261632146865446 I | -3.39669580879013 + 0. I | -0.11306601611673339 - 1.0251509468914757 I | -1.3902042643674577 + 0.8867050522199316 I |
| -1.2128453065519185 - 0.2791488701895241 I | -0.11306601611673339 + 1.0251509468914757 I | 4.960363408128666 + 0. I | 0.3541172390806834 + 0.5132293867878579 I |
| -0.7176461452206016 - 0.09729452115881893 I | -1.3902042643674577 - 0.8867050522199316 I | 0.3541172390806834 - 0.5132293867878579 I | 1.6764327323058408 + 0. I |);{IndefiniteMatrixQ[m], IndefiniteMatrixQ[-m]}可能存在的问题 (1)
除非 IndefiniteMatrixQ 可以证明一个符号矩阵是不定矩阵,否则给出 False:
IndefiniteMatrixQ[{{1 + a Conjugate[a], 0}, {0, -1 - a Conjugate[a]}}]使用 Eigenvalues 和 Reduce 的组合可以给出更精确的结果:
{Subscript[λ, 1], Subscript[λ, 2]} = Eigenvalues[{{1 + a Conjugate[a], 0}, {0, -1 - a Conjugate[a]}}]Reduce[(Subscript[λ, 1] > 0 && Subscript[λ, 2] < 0) || (Subscript[λ, 1] < 0 && Subscript[λ, 2] > 0), a, Complexes]相关指南
-
▪
- 矩阵判断
文本
Wolfram Research (2014),IndefiniteMatrixQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/IndefiniteMatrixQ.html.
CMS
Wolfram 语言. 2014. "IndefiniteMatrixQ." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/IndefiniteMatrixQ.html.
APA
Wolfram 语言. (2014). IndefiniteMatrixQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/IndefiniteMatrixQ.html 年
BibTeX
@misc{reference.wolfram_2026_indefinitematrixq, author="Wolfram Research", title="{IndefiniteMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/IndefiniteMatrixQ.html}", note=[Accessed: 11-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_indefinitematrixq, organization={Wolfram Research}, title={IndefiniteMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/IndefiniteMatrixQ.html}, note=[Accessed: 11-November-2026]}