PositiveDefiniteMatrixQ
更多信息
- 如果对于所有非零向量 x,有 Re[Conjugate[x].m.x]>0,则矩阵 m 是正定的,. »
- PositiveDefiniteMatrixQ 适用于数值矩阵和符号矩阵.
范例
打开所有单元 关闭所有单元基本范例 (2)
m = (| | |
| -- | -- |
| 5 | -1 |
| -1 | 4 |);PositiveDefiniteMatrixQ[m]Reduce[Subscript[∀, {Subscript[x, 1], Subscript[x, 2]}, Subscript[x, 1] ≠ 0 || Subscript[x, 2] ≠ 0]{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]} > 0, {Subscript[x, 1], Subscript[x, 2]}, Reals]Plot3D[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}, {Subscript[x, 1], Subscript[x, 2]}∈Disk[], BoxRatios -> 1]PositiveDefiniteMatrixQ[(| | | |
| ---------------- | ------------- | --------------- |
| 5.42 | 3.26 + 0.643I | -0.467 - 0.193I |
| 3.26 - 0.643I | 3.82 | 1.04 - 2.35I |
| -0.467 + 0.193 I | 1.04 + 2.35 I | 4.88 |)]范围 (10)
基本用法 (6)
m = {{2.3, -1.2}, {0.6, 3.7}};PositiveDefiniteMatrixQ[m]m = {{1, 2I}, {-I, 4}};PositiveDefiniteMatrixQ[m]PositiveDefiniteMatrixQ[(| | | |
| - | ------- | -- |
| π | -5 | 2 |
| E | -3 | -3 |
| 5 | Sqrt[2] | 5 |)]用 PositiveDefiniteMatrixQ 测试任意精度的矩阵:
m = RandomReal[5, {3, 3}, WorkingPrecision -> 15]PositiveDefiniteMatrixQ[m]用 PositiveDefiniteMatrixQ 测试符号矩阵:
PositiveDefiniteMatrixQ[{{1, a}, {b, 2}}]Block[{b = -Conjugate[a]}, PositiveDefiniteMatrixQ[{{1, a}, {b, 2}}]]PositiveDefiniteMatrixQ 可高效处理大型数值矩阵:
m = RandomReal[1, {1000, 1000}];AbsoluteTiming[PositiveDefiniteMatrixQ[m]]a = m.m^;
AbsoluteTiming[PositiveDefiniteMatrixQ[a]]特殊矩阵 (4)
用 PositiveDefiniteMatrixQ 测试稀疏矩阵:
SparseArray[{{i_, i_} -> 2., {i_, j_} /; Abs[i - j] == 1 -> -1.}, {10, 10}, 0.]PositiveDefiniteMatrixQ[%]用 PositiveDefiniteMatrixQ 测试结构矩阵:
SymmetrizedArray[{{1, 1} -> 5, {1, 2} -> 11, {2, 2} -> 25}, {2, 2}, Symmetric[All]]PositiveDefiniteMatrixQ[%]PositiveDefiniteMatrixQ[IdentityMatrix[5]]HilbertMatrix 是正定矩阵:
PositiveDefiniteMatrixQ[HilbertMatrix[5]]应用 (15)
正定矩阵的几何与代数性质 (4)
m = (| | |
| -- | -- |
| 3 | -1 |
| -1 | 3 |);
PositiveDefiniteMatrixQ[m]q[x_, y_] := {x, y}.m.{x, y}ContourPlot[q[x, y], {x, -2, 2}, {y, -2, 2}]Plot3D[q[x, y], {x, y}∈RotationTransform[π / 4][Disk[{0, 0}, {2, Sqrt[2]}]], MeshFunctions -> {#3&}, BoxRatios -> 1]m3 = (| | | |
| -- | -- | - |
| 3 | -1 | 0 |
| -1 | 3 | 0 |
| 0 | 0 | 3 |);PositiveDefiniteMatrixQ[m3]ContourPlot3D[{x, y, z}.m3.{x, y, z}, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, Contours -> {1, 4, 9}, ContourStyle -> Opacity[0.5], Mesh -> None]m = (| | |
| ----- | ----- |
| 5 | 2 + I |
| 2 - I | 3 |);
q[w_, z_] := {w, z}.m.{w, z}
Reduce[q[w, z]∈Reals, {w, z}]Reduce[Subscript[∀, {w, z}, w ≠ 0 || z ≠ 0]q[w, z] > 0, {w, z}, Complexes]φ = ArcTan@@Abs[First[Eigenvectors[m]]];
ba = 1 / Sqrt[Eigenvalues[m]];
Plot3D[q[x, y], {x, y}∈RotationTransform[φ]@Disk[{0, 0}, ba], BoxRatios -> 1, Mesh -> None]对于实值矩阵
,只有对称的部分决定
是否为正定矩阵. 写为
,
为对称部分,
为非对称部分:
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{PositiveDefiniteMatrixQ[m], PositiveDefiniteMatrixQ[s]}对于复矩阵
,只有 Hermitian 部分决定
是否为正定矩阵. 写为
,
是 Hermitian 矩阵,
为反埃尔米特矩阵:
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{PositiveDefiniteMatrixQ[m], PositiveDefiniteMatrixQ[h]}正定矩阵的来源 (6)
实非奇异 Covariance 矩阵总是对称的和正定的:
Block[{Σ = Covariance[RandomReal[1, {5, 3}]]}, Det[Σ] ≠ 0 && SymmetricMatrixQ[Σ] && PositiveDefiniteMatrixQ[Σ]]Block[{Σ = Covariance[RandomComplex[1 + I, {5, 3}]]}, Det[Σ] ≠ 0 && HermitianMatrixQ[Σ] && PositiveDefiniteMatrixQ[Σ]]n = 5;
v = RandomReal[1., {n, n}];
m = Table[v[[i]].v[[j]], {i, n}, {j, n}];{Det[v] ≠ 0, PositiveDefiniteMatrixQ[m]}从 WishartMatrixDistribution 得到的矩阵是实对称正定矩阵:
(m |-> m∈Reals && SymmetricMatrixQ[m] && PositiveDefiniteMatrixQ[m]) /@ RandomVariate[WishartMatrixDistribution[5, {{1, 1 / 2, 0}, {1 / 2, 2, -1 / 2}, {0, -1 / 2, 1}}], {10}]m = RandomVariate[GaussianUnitaryMatrixDistribution[5]];Det[m] ≠ 0 && HermitianMatrixQ[m]PositiveDefiniteMatrixQ[MatrixPower[m, 2]]lehmer = Table[Min[i, j] / Max[i, j], {i, 5}, {j, 5}];
{SymmetricMatrixQ[lehmer], PositiveDefiniteMatrixQ[lehmer]}inv = Inverse[lehmer]{SymmetricMatrixQ[inv], PositiveDefiniteMatrixQ[inv]}矩阵 Min[i,j] 一定是对称正定矩阵:
minij = Table[Min[i, j], {i, 5}, {j, 5}];
{SymmetricMatrixQ[minij], PositiveDefiniteMatrixQ[minij]}inv = Inverse[minij]{SymmetricMatrixQ[inv], PositiveDefiniteMatrixQ[inv]}正定矩阵的用途 (5)
(g = {{7, 2, 0}, {2, 6, -2}, {0, -2, 5}})//MatrixFormip[u_, v_] := u.g.vSymmetricMatrixQ[g] && PositiveDefiniteMatrixQ[g]{Subscript[e, 1], Subscript[e, 2], Subscript[e, 3]} = Orthogonalize[IdentityMatrix[3], ip]Table[ip[Subscript[e, i], Subscript[e, j]], {i, 3}, {j, 3}]//Simplify惯性张量的矩相当于旋转运动的质量. 例如,动能为
,
取代了
公式中的质量
,角速度
取代了线速度
.
可以用正定对称矩阵来表示. 计算端点在原点和正坐标轴的四面体的惯性矩:
(ℐ = MomentOfInertia[Tetrahedron[{{0, 0, 0}, {4, 0, 0}, {0, 12, 0}, {0, 0, 20}}]])//MatrixFormSymmetricMatrixQ[ℐ] && PositiveDefiniteMatrixQ[ℐ](1/2){Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}.ℐ.{Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}//FullSimplifyResolve[Subscript[∀, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]}, {Subscript[ω, x], Subscript[ω, y], Subscript[ω, z]} ≠ {0, 0, 0}]% > 0]二阶导数检验对函数的临界点进行以下分类:如果 Hessian 矩阵为正定矩阵,则临界点为局部最小值,如果 Hessian 矩阵为负定矩阵,则临界点为局部最大值,如果 Hessian 矩阵为不定矩阵,则临界点为鞍点(如果 Hessian 矩阵不是这三种类型之一,则检验失败). 求二元函数的临界点:
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]}]]CholeskyDecomposition 只适用于正定 Hermitian 矩阵:
m = {{4, 0, 0}, {0, 3, 1}, {0, 1, 2}};PositiveDefiniteMatrixQ[m] && HermitianMatrixQ[m]b = CholeskyDecomposition[m]ConjugateTranspose[b].b == m属性和关系 (15)
对于任何不是矩阵的 x,PositiveDefiniteMatrixQ[x] 返回 False:
PositiveDefiniteMatrixQ[Sqrt[3]]m = {{1, 2I}, {-I, 4}};
PositiveDefiniteMatrixQ[m]Reduce[Subscript[∀, {Subscript[x, 1], Subscript[x, 2]}, Subscript[x, 1] ≠ 0 || Subscript[x, 2] ≠ 0]Re[{Subscript[x, 1], Subscript[x, 2]}.m.{Subscript[x, 1], Subscript[x, 2]}] > 0, {Subscript[x, 1], Subscript[x, 2]}, Complexes]Block[{x = {1, 1 - I}}, Im[x.m.x]]Block[{x = {1, -1 - I}}, Im[x.m.x]]m = (| | |
| -- | - |
| 6 | 4 |
| -2 | 8 |);s = Symmetrize[m];{PositiveDefiniteMatrixQ[m], PositiveDefiniteMatrixQ[s]}一般情况下,当且仅当矩阵的 Hermitian 部分是正定的,矩阵
才是正定矩阵:
c = (| | |
| --- | ------ |
| 4 | 4 I |
| -2I | 4 + 2I |);h = Symmetrize[c, Hermitian[All]];{PositiveDefiniteMatrixQ[c], PositiveDefiniteMatrixQ[h]}当且仅当实对称矩阵的特征值都是正的,实对称矩阵才是正定矩阵:
s = (| | |
| - | - |
| 2 | 1 |
| 1 | 2 |);SymmetricMatrixQ[s] && PositiveDefiniteMatrixQ[s]And @@Positive /@ Eigenvalues[s]h = (| | |
| -- | - |
| 1 | I |
| -I | 2 |);{HermitianMatrixQ[h] && PositiveDefiniteMatrixQ[h], And@@Positive /@ Eigenvalues[h]}Positive /@ Eigenvalues[(| | |
| - | -- |
| 4 | -1 |
| 2 | 0 |)]PositiveDefiniteMatrixQ[(| | |
| - | -- |
| 4 | -1 |
| 2 | 0 |)]PositiveSemidefiniteMatrixQ[(| | |
| -- | - |
| 6 | 4 |
| -2 | 8 |)]λ = Eigenvalues[(| | |
| -- | - |
| 6 | 4 |
| -2 | 8 |)];
Positive /@ λλPositive /@ Re[λ]PositiveDefiniteMatrixQ[(| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 2 | 0 |
| 0 | 0 | 4 |)]PositiveDefiniteMatrixQ[(| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 2 | 0 |
| 0 | 0 | 0 |)]m = (| | | |
| ----------------------------------------- | ------------------------------------------ | ------------------------------------------ |
| 3.792168950417362 | 2.973638210582098 + 1.4338467608374894 I | 2.6847137114282464 + 1.096732668646098 I |
| 2.5943303334981036 - 1.4338467608374894 I | 3.722968070528689 | 2.2427900539994767 + 0.15267916356932992 I |
| 2.3008034014752843 - 1.096732668646098 I | 2.5698503388043816 - 0.15267916356933003 I | 3.1 + I |);
PositiveDefiniteMatrixQ[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 = (| | | | |
| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
| 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 |);{PositiveDefiniteMatrixQ[m], NegativeDefiniteMatrixQ[-m]}m = {{3, -1}, {1, 2}};{PositiveDefiniteMatrixQ[m], PositiveSemidefiniteMatrixQ[m]}{IndefiniteMatrixQ[m], NegativeSemidefiniteMatrixQ[m]}m = {{3.190023505153258, 2.4571124732137526, 3.1702589583416105}, {2.4571124732137526, 3.7756789190375084, 4.005717103481039}, {3.1702589583416105, 4.005717103481039, 4.806632993087039}};PositiveDefiniteMatrixQ[m]mi = Inverse[m]PositiveDefiniteMatrixQ[mi]如果
是实正定矩阵,则存在
,使得对于任意实向量
,有
成立:
m = (| | | |
| ------- | ------- | ------- |
| (30/11) | (25/12) | (25/17) |
| (26/11) | (5/2) | (33/17) |
| (15/7) | (23/9) | (22/9) |);PositiveDefiniteMatrixQ[m]δ = First[Eigenvalues[Symmetrize[m, Symmetric], -1]]Reduce[ForAll[{x, y, z}, {x, y, z}.m.{x, y, z} ≥ δ{x, y, z}.{x, y, z}], {x, y, z}, Reals]s = MatrixPower[RandomVariate[GaussianOrthogonalMatrixDistribution[5]], 2];s∈Reals && SymmetricMatrixQ[s] && PositiveDefiniteMatrixQ[s]{Det[s] > 0, Tr[s] > 0}h = MatrixPower[RandomVariate[GaussianUnitaryMatrixDistribution[5]], 2];HermitianMatrixQ[h] && PositiveDefiniteMatrixQ[h]{Chop[Det[h]] > 0, Tr[h] > 0}m = {{3.190023505153258, 2.4571124732137526, 3.1702589583416105}, {2.4571124732137526, 3.7756789190375084, 4.005717103481039}, {3.1702589583416105, 4.005717103481039, 4.806632993087039}};PositiveDefiniteMatrixQ[m] && SymmetricMatrixQ[m]b = MatrixFunction[Sqrt, m]m == b.b{PositiveDefiniteMatrixQ[b], b∈Reals && SymmetricMatrixQ[b]}m = {{4.4063915815780526, 2.415609335653971 - 0.9784858036636759 * I, 3.272554434576208 - 0.9581109282797712 * I}, {2.415609335653971 + 0.9784858036636759 * I, 3.2093833346047265, 2.1186156336423365 + 0.44745371013921886 * I}, {3.272554434576208 + 0.9581109282797711 * I, 2.1186156336423365 - 0.4474537101392189 * I, 2.711962460046668}};PositiveDefiniteMatrixQ[m] && HermitianMatrixQ[m]b = MatrixFunction[Sqrt, m]//Chopm - b.b//Chop{PositiveDefiniteMatrixQ[b], HermitianMatrixQ[b]}m = {{2.9425255996142887, 1.6494147021595955, 3.6136769206595654}, {1.6494147021595955, 2.2267882143758357, 2.2251351542101174}, {3.6136769206595654, 2.2251351542101174, 4.4769591062377}};
n = {{0.10696857615478556, 0.09420715976163785}, {0.09420715976163785, 0.17814922498702113}};PositiveDefiniteMatrixQ[#] && SymmetricMatrixQ[#]& /@ {m, n}With[{prod = KroneckerProduct[m, n]}, {PositiveDefiniteMatrixQ[prod], SymmetricMatrixQ[prod]}]NegativeDefiniteMatrixQ[-n] && SymmetricMatrixQ[-n]With[{prod = KroneckerProduct[m, -n]},
NegativeDefiniteMatrixQ[prod] && SymmetricMatrixQ[prod]]可能存在的问题 (2)
m = HilbertMatrix[16];PositiveDefiniteMatrixQ[m]Eigenvalues[N[m]]PositiveDefiniteMatrixQ[N[m]]PositiveSemidefiniteMatrixQ[N[m]]PositiveDefiniteMatrixQ[N[m, 24]]Positive /@ Eigenvalues[N[m, 24]]PositiveDefiniteMatrixQ 将给出 False,除非它可以证明一个符号矩阵是正定的:
PositiveDefiniteMatrixQ[{{1 + a Conjugate[a], 0}, {0, 2 + a Conjugate[a]}}]同时使用 Eigenvalues 和 Reduce 可给出更精确的结果:
Eigenvalues[{{1 + a Conjugate[a], 0}, {0, 2 + a Conjugate[a]}}]Reduce[Re[%]0, a, Complexes]文本
Wolfram Research (2007),PositiveDefiniteMatrixQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PositiveDefiniteMatrixQ.html.
CMS
Wolfram 语言. 2007. "PositiveDefiniteMatrixQ." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/PositiveDefiniteMatrixQ.html.
APA
Wolfram 语言. (2007). PositiveDefiniteMatrixQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PositiveDefiniteMatrixQ.html 年
BibTeX
@misc{reference.wolfram_2026_positivedefinitematrixq, author="Wolfram Research", title="{PositiveDefiniteMatrixQ}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/PositiveDefiniteMatrixQ.html}", note=[Accessed: 05-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_positivedefinitematrixq, organization={Wolfram Research}, title={PositiveDefiniteMatrixQ}, year={2007}, url={https://reference.wolfram.com/language/ref/PositiveDefiniteMatrixQ.html}, note=[Accessed: 05-November-2026]}