DiagonalizableMatrixQ
范例
打开所有单元 关闭所有单元基本范例 (2)
DiagonalizableMatrixQ[{{0, 1}, {0, 0}}]m = (| | | |
| -- | -- | -- |
| a | b | -a |
| -a | a | b |
| b | -a | a |);DiagonalizableMatrixQ[m]p = Transpose[Eigenvectors[m]];Inverse[p].m.p//FullSimplify//MatrixForm范围 (9)
基础用法 (5)
m = {{1, 2.3}, {2.4, 4}};DiagonalizableMatrixQ[m]p = Transpose[Eigenvectors[m]](Inverse[p].m.p)//ChopEigenvalues[m]m = {{1, 2 - 3I}, {3 + 4I, 4}};DiagonalizableMatrixQ[m]m = (| | | |
| -- | --- | -- |
| 0 | -6 | -4 |
| 5 | -11 | -6 |
| -6 | 9 | 4 |);DiagonalizableMatrixQ[m]DiagonalizableMatrixQ[(m + m^/2)]将 DiagonalizableMatrixQ 用于具有任意精度矩阵:
m = RandomReal[5, {3, 3}, WorkingPrecision -> 15]DiagonalizableMatrixQ[m]将 DiagonalizableMatrixQ 用于符号矩阵:
DiagonalizableMatrixQ[{{a, b}, {b, c}}]特殊矩阵 (4)
将 DiagonalizableMatrixQ 用于稀疏矩阵:
SparseArray[{{1, 3} -> 1, {2, 2} -> 2, {3, 1} -> 3}, {3, 3}]DiagonalizableMatrixQ[%]SparseArray[{{x_, y_} /; Abs[x - y] < 3 -> 3}, {5, 5}]DiagonalizableMatrixQ[%]将 DiagonalizableMatrixQ 用于结构化矩阵:
SymmetrizedArray[{{1, 2} -> 4, {3, 2} -> 5}, {3, 3}, Symmetric[All]]DiagonalizableMatrixQ[%]用于 QuantityArray 结构化矩阵:
QuantityArray[{{1, 2}, {2, 5}}, "Meters"]DiagonalizableMatrixQ[%]DiagonalizableMatrixQ[IdentityMatrix[5]]HilbertMatrix 为可对角化矩阵:
DiagonalizableMatrixQ[HilbertMatrix[5]]选项 (1)
Tolerance (1)
生成一个实数非对角化若尔当块矩阵,其中该矩阵具有随机扰动的阶数
:
SeedRandom[521];
q = {{0, 1, 0}, {0, 0, 1}, {0, 0, 0}} + 10 ^ -12 * RandomReal[1, {3, 3}];DiagonalizableMatrixQ[q]v = Eigenvectors[q]; MatrixForm[v]Det[v]//Abs调整选项 Tolerance 使得特征向量的线性相关性能被检测出来:
DiagonalizableMatrixQ[q, Tolerance -> 10 ^ -12]应用 (6)
如果矩阵
是可对角化的,则可将其分解为
,其中
是非奇异矩阵,
是对角矩阵. 这可以通过使用其幂级数表示
作为
来计算矩阵函数,并且可以通过简单地将
应用于每个对角线元素来计算
. 使用此方法计算几个不同的矩阵函数:
m = {{3, 2}, {1, 4}};
DiagonalizableMatrixQ[m]{λ, v} = Eigensystem[m]p = Transpose[v];使用 MatrixPower 计算
并进行验证:
p.DiagonalMatrix[λ ^ k].Inverse[p]% == MatrixPower[m, k]使用 MatrixExp 计算
并进行验证:
p.DiagonalMatrix[Exp[λ]].Inverse[p]% == MatrixExp[m]使用 MatrixLog 计算
并进行验证:
p.DiagonalMatrix[Log[λ]].Inverse[p]% == MatrixLog[m]使用 MatrixFunction 计算
并进行验证:
p.DiagonalMatrix[f /@ λ].Inverse[p]% == MatrixFunction[f, m]a = {{0, 1, 0}, {0, 0, 1}, {-2, 1, 2}};DiagonalizableMatrixQ[a]{λ, v} = Eigensystem[a]d = DiagonalMatrix[Exp[t λ]]p = Transpose[v]p.d.Inverse[p] . {C[1], C[2], C[3]}使用 DSolveValue 验证解:
Simplify[% == DSolveValue[{x'[t] == y[t], y'[t] == z[t], z'[t] == -2x[t] + y[t] + 2z[t]}, {x[t], y[t], z[t]}, t]]使用 Fibonacci 的递归关系
可写成
这样的矩阵形式这一事实,推导出
的公式. 递归关系的解为
,其中
:
f[1] := {1, 0};m = {{1, 1}, {1, 0}};DiagonalizableMatrixQ[m]因此,可使用 EigenvalueDecomposition[m] 简单计算矩阵幂:
{p, λ} = EigenvalueDecomposition[m]f[n_] := Simplify[p.λ^n - 1.Inverse[p].f[1]];f[100]使用 Fibonacci 验证结果:
% == Fibonacci[{100, 99}]正规矩阵是最通用的矩阵类型,可以酉对角化为
,其中
为对角矩阵和
为酉矩阵. 所有埃尔米特矩阵
都是正规矩阵,因为等式的两边都是简单的
:
TensorExpand[h.h == h.h == h.h, Assumptions -> h∈Matrices[{n, n}, Complexes, Hermitian[{1, 2}]]]类似地,所有反埃尔米特矩阵都是正规矩阵,因为等式的两边都是简单的
:
TensorExpand[a.a == a.a == -a.a, Assumptions -> a∈Matrices[{n, n}, Complexes, Antihermitian[{1, 2}]]]TensorReduce[u.u == u.u /. u -> Inverse[u], Assumptions -> u∈Matrices[{n, n}, Complexes]](n = {{5 + I, -2I}, {2, 4 + 2I}})//MatrixFormn.ConjugateTranspose[n] == ConjugateTranspose[n].n使用 NormalMatrixQ 进行验证:
NormalMatrixQ[n]使用 EigenvalueDecomposition 可将像
这样的正规矩阵进行酉对角化:
{v, d} = EigenvalueDecomposition[n]d//MatrixForm{n == v.d.Inverse[v], UnitaryMatrixQ[v]}ConjugateTranspose[v].vu = Transpose[Normalize /@ Transpose[v]];
UnitaryMatrixQ[u]n == u.d.ConjugateTranspose[u]在量子力学中,能量算子称为哈密顿量
,具有能量
的状态根据薛定谔方程
演化. 有一个重要的假设是任何状态都可以写成特征态的总和. 证明这是
方向恒定磁场中自旋 1 粒子的哈密顿量的情况:
ℋ = (Subscript[ω, 0]ℏ/Sqrt[2]) (| | | |
| - | -- | -- |
| 0 | -I | 0 |
| I | 0 | -I |
| 0 | I | 0 |);DiagonalizableMatrixQ[ℋ]{{Subscript[ℰ, 1], Subscript[ℰ, 2], Subscript[ℰ, 3]}, v} = Eigensystem[ℋ]MatrixRank[v]{Subscript[e, 1], Subscript[e, 2], Subscript[e, 3]} = Normalize /@ vUnderoverscript[∑, i = 1, 3](Subscript[e, i].{Subscript[z, 1], Subscript[z, 2], Subscript[z, 3]})Subscript[e, i] == {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3]} //Simplify许多矩阵分布产生确保可对角化的矩阵,包括 CircularRealMatrixDistribution:
DiagonalizableMatrixQ /@ RandomVariate[CircularRealMatrixDistribution[3], 10]CircularSymplecticMatrixDistribution:
DiagonalizableMatrixQ /@ RandomVariate[CircularSymplecticMatrixDistribution[3], 10]GaussianOrthogonalMatrixDistribution:
DiagonalizableMatrixQ /@ RandomVariate[GaussianOrthogonalMatrixDistribution[3], 10]GaussianUnitaryMatrixDistribution:
DiagonalizableMatrixQ /@ RandomVariate[GaussianUnitaryMatrixDistribution[3], 10]属性和关系 (9)
m = RandomVariate[GaussianSymplecticMatrixDistribution[2]];
DiagonalizableMatrixQ[m]用 EigenvalueDecomposition 求相似矩阵和对角矩阵:
{p, d} = EigenvalueDecomposition[m];m - p.d.Inverse[p]//Chopm = {{-3, -6, 9}, {-18, -15, 27}, {-18, -18, 30}};
DiagonalizableMatrixQ[m]Eigensystem[m]n = {{42, 49, -61}, {-9, -4, 13}, {18, 26, -26}};
DiagonalizableMatrixQ[n]该矩阵只有两个独立的特征向量,如 Eigensystem 返回的零向量所示:
Eigensystem[n]m = {{2, 3, 3}, {4, 6, 7}, {8, 8, 10}};
Eigenvalues[m]DiagonalizableMatrixQ[m]m = Symmetrize[RandomReal[1, {10, 10}]]{SymmetricMatrixQ[m], DiagonalizableMatrixQ[m]}m = Symmetrize[RandomComplex[1 + I, {10, 10}], Hermitian[All]]{HermitianMatrixQ[m], DiagonalizableMatrixQ[m]}m = Symmetrize[RandomReal[1, {10, 10}], Antisymmetric[All]]{AntisymmetricMatrixQ[m], DiagonalizableMatrixQ[m]}m = Symmetrize[RandomComplex[1 + I, {10, 10}], Antihermitian[All]]{AntihermitianMatrixQ[m], DiagonalizableMatrixQ[m]}m = RandomVariate[CircularRealMatrixDistribution[10]];{OrthogonalMatrixQ[m], DiagonalizableMatrixQ[m]}m = RandomVariate[CircularUnitaryMatrixDistribution[10]];{UnitaryMatrixQ[m], DiagonalizableMatrixQ[m]}m = {{1., 3., -1.}, {-1., 1., 3.}, {3., -1., 1.}};
{NormalMatrixQ[m], DiagonalizableMatrixQ[m]}当且仅当 JordanDecomposition[m] 的
矩阵是对角矩阵时,矩阵 m 是可对角化矩阵:
n = {{1, 1, 0}, {-1, 3, (1/4)}, {0, 0, 2}};
{sn, jn} = JordanDecomposition[n];{DiagonalizableMatrixQ[n], jn//MatrixForm}d = {{2, 3, 3}, {4, 6, 7}, {8, 8, 10}};
{sd, jd} = JordanDecomposition[d];{DiagonalizableMatrixQ[d], jd//MatrixForm}q = {{0, 1}, {0, 0}};
MatrixPower[q, 2]m = {{2, -1, 0}, {-1, 3, -1}, {-1, 2, 1}};
DiagonalizableMatrixQ[m]使用 JordanDecomposition 将
写为
,其中
可对角化且
幂零:
{s, j} = JordanDecomposition[m];
d = s.DiagonalMatrix[Diagonal[j]].Inverse[s];
q = s.DiagonalMatrix[Diagonal[j, 1], 1].Inverse[s];
m == d + qDiagonalizableMatrixQ[d]MatrixPower[q, Length[q]]d.q == q.d技术笔记
-
▪
- 标量、向量和矩阵
相关指南
-
▪
- 矩阵判断
文本
Wolfram Research (2014),DiagonalizableMatrixQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiagonalizableMatrixQ.html.
CMS
Wolfram 语言. 2014. "DiagonalizableMatrixQ." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/DiagonalizableMatrixQ.html.
APA
Wolfram 语言. (2014). DiagonalizableMatrixQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DiagonalizableMatrixQ.html 年
BibTeX
@misc{reference.wolfram_2026_diagonalizablematrixq, author="Wolfram Research", title="{DiagonalizableMatrixQ}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/DiagonalizableMatrixQ.html}", note=[Accessed: 12-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_diagonalizablematrixq, organization={Wolfram Research}, title={DiagonalizableMatrixQ}, year={2014}, url={https://reference.wolfram.com/language/ref/DiagonalizableMatrixQ.html}, note=[Accessed: 12-August-2026]}