给出可对角化方阵 a 的特征值分解.
EigenvalueDecomposition
给出可对角化方阵 a 的特征值分解.
更多信息和选项
- EigenvalueDecomposition 也被称为特征分解.
- EigenvalueDecomposition 通常用于分析和求解线性微分方程或线性差分方程系统.
- EigenvalueDecomposition 根据其特征值和特征向量,将一个可对角化矩阵分解成标准形式. »
- 一个方阵是可对角化的,如果它有和行一样多的线性无关的特征向量. »
- 具有 n 个不同特征值的 n 维方阵总是可对角化的.
- EigenvalueDecomposition[a] 将给出一对矩阵 {s,d},其中 d 是对角矩阵,它的对角元
属于 Eigenvalues[a],而 s 是一个相似矩阵,s=Transpose[Eigenvectors[a]],以及
. » - EigenvalueDecomposition 并不是对所有的方阵来说都存在. 但是 JordanDecomposition,FrobeniusDecomposition 和 SchurDecomposition 总是存在的. 前两个给出块对角矩阵,最后一个给出三角矩阵.
- 可以使用以下选项:
-
Cubics False 是否使用根式来求解三次方程 Method Automatic 选择一个方法来使用 Quartics False 是否使用根式来求解四次方程 ZeroTest Automatic 测试表达式何时为0 Tolerance Automatic 数值矩阵的使用容差 - EigenvalueDecomposition 通过调用 Eigensystem 来进行计算. 当特征值分解存在时,对角矩阵和变换矩阵的排序与本征系统 Eigensystem 的结果相同.
- 当输入的是有限精度的数值矩阵时,在后处理步骤中使用了 Tolerance 设置来确定特征向量是否线性相关.
- ZeroTest 选项仅适用于精确矩阵和符号矩阵.
范例
打开所有单元 关闭所有单元基本范例 (5)
EigenvalueDecomposition[{{-3, 2}, {-15, 8}}]Map[MatrixForm, %]m = {{1, 2}, {3, 4}};
{t, d} = EigenvalueDecomposition[{{1, 2}, {3, 4}}]m == t.d.Inverse[t]MatrixForm /@ EigenvalueDecomposition[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}]m = {{1.1, 2.2, 3.25}, {0.76, 4.6, 5}, {0.1, 0.1, 6.1}};
{t, d} = EigenvalueDecomposition[m]m == t.d.Inverse[t]EigenvalueDecomposition[{{a, b}, {c, d}}]范围 (11)
基本用法 (6)
MatrixForm /@ EigenvalueDecomposition[Table[N[1 / (i + j + 1)], {i, 3}, {j, 3}]]EigenvalueDecomposition[Table[N[1 / (i + j + 1), 18], {i, 3}, {j, 3}]]m = {{1.1 - .2I, 2.2, 3.25}, {0.76, 4.6, 5 - 2I}, {0.1, 0.1 + I, 6.1}};
{t, d} = EigenvalueDecomposition[m]Max[Abs[Expand[Inverse[t].m.t - d]]]MatrixForm /@ EigenvalueDecomposition[{{(1/3), (1/2), (3/5)}, {(1/2), (4/5), 1}, {(3/5), 1, (9/7)}}]EigenvalueDecomposition[{{π, (1/3)}, {I, 5}}]EigenvalueDecomposition[(| | | |
| - | - | - |
| a | 2 | 0 |
| 2 | 3 | 1 |
| 0 | 1 | 7 |)]m = RandomReal[{0, 5}, {100, 100}];EigenvalueDecomposition[m] ;//Timing特殊矩阵 (5)
SparseArray[{{1, 3} -> 1, {2, 2} -> 2, {3, 1} -> 3, {4, 2} -> 5}, {4, 4}]MatrixForm /@ EigenvalueDecomposition[%]SparseArray[Band[{1, 1}, {-1, -1}] -> {{{1, 2}, {2, 1}}}, {4, 4}]MatrixForm /@ EigenvalueDecomposition[%]SymmetrizedArray[{{1, 1} -> 2.2, {1, 2} -> 1.1, {3, 2} -> 5.7}, {3, 3}, Symmetric[All]]MatrixForm /@ EigenvalueDecomposition[%]QuantityArray[{{1, 2}, {3, 4}}, "Meters"]QuantityArray 对象的单位在对角矩阵的特征值中,使得变换矩阵则是无量纲的:
MatrixForm /@ EigenvalueDecomposition[%]IdentityMatrix[n] 的特征值分解比较简单,仅特征向量的排列顺序可能不同:
MatrixForm /@ EigenvalueDecomposition[IdentityMatrix[4, WorkingPrecision -> MachinePrecision]]HilbertMatrix 的特征向量:
EigenvalueDecomposition[HilbertMatrix[3]]如果首对矩阵进行数字化,则
矩阵(而不是
矩阵)将发生显著变化:
EigenvalueDecomposition[N@HilbertMatrix[3]]Norm /@ Transpose[First[%]]CenteredInterval 矩阵的特征值分解:
SeedRandom[777];(m = Map[CenteredInterval, RandomReal[{-10, 10}, {3, 3}, WorkingPrecision -> 10], {2}])//MatrixForm{t, d} = EigenvalueDecomposition[m]Max[Abs[Inverse[t].m.t - d]]选项 (3)
Cubics (1)
Tolerance (1)
m = {{-103, -191, -255}, {110, 190, 222}, {9, 9, 33}};
{vals, vecs} = Eigensystem[m]EigenvalueDecomposition[N@m]m1 = N@m + .00001RandomReal[{-1, 1}, {3, 3}];EigenvalueDecomposition[m1]EigenvalueDecomposition[m1, Tolerance -> 10 ^ (-3)]应用 (14)
EigenvalueDecomposition (3)的几何学
在 {t,v}=EigenvalueDecomposition[m] 中,t 的列是 m 的特征向量:
m = {{1, 2}, {2, 1}};
{t, v} = EigenvalueDecomposition[m];
t//MatrixForm这意味着矩阵 m.t 的列将等于 t 的各列乘以对应的特征向量:
{m.t//MatrixForm, Diagonal[v]}{v1, v2} = Transpose[t];Graphics[{{Thick, Arrow[{{0, 0}, v1}]}, {Red, Arrow[{{0, 0}, m.v1}]}}, Axes -> True]Graphics[{{Thick, Arrow[{{0, 0}, v2}]}, {Red, Arrow[{{0, 0}, m.v2}]}}, Axes -> True]a = {{-2, 2}, {2, 1}};q = {x, y}.a.{x, y}//Expand{t, λ} = EigenvalueDecomposition[a]ContourPlot[Table[q == n, {n, {-9, -4, -1, 1, 4, 9}}]//Evaluate, {x, -3, 3}, {y, -3, 3}, Epilog -> (Arrow[{{0, 0}, #}]& /@ Transpose[t]), PlotLegends -> "Expressions"]q = 20 x ^ 2 - 16 x y + 23 y ^ 2 - 12 x z - 2 y z + 17 z ^ 2;cp = ContourPlot3D[q, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Contours -> {10}, Mesh -> False, ContourStyle -> Opacity[.5]]用 CoefficientArrays 获取二次型的对称矩阵:
m = Normal[CoefficientArrays[q, {x, y, z}, Symmetric -> True][[3]]]{t, d} = EigenvalueDecomposition[N[m]]Show[cp, Graphics3D[{Thickness[0.015], Green, Table[Line[{{0, 0, 0}, t[[All, i]] * Sqrt[10 / d[[i, i]]]}], {i, 1, 3}]}]]q2 = {x, y, z}.d.{x, y, z}//Expand//Chop{Area[ImplicitRegion[q == 10, {x, y, z}]], Area[ImplicitRegion[q2 == 10, {x, y, z}]]}ContourPlot3D[q2, {x, -1.1, 1.1}, {y, -1.1, 1.1}, {z, -1.1, 1.1}, Contours -> {10}, Mesh -> False, ContourStyle -> Opacity[.5]]对角化 (4)
m = {{9, -7, 3}, {12, -10, 3}, {16, -16, 1}};这可以直接由 EigenvalueDecomposition[m] 得出:
{p, d} = EigenvalueDecomposition[m]m == p.d.Inverse[p]现在可以计算矩阵的任意函数,形式为
. 例如,MatrixPower:
MatrixPower[m, k] == p . MatrixPower[d, k].Inverse[p]同样,MatrixExp 变得非常简单,仅需对
的对角线元素进行指数运算即可:
MatrixExp[m] == p . MatrixExp[d].Inverse[p]MatrixExp[d]设
是一个线性变换,其标准矩阵由矩阵
给出. 在
中找到一个基
,使得
在该基下的表示
为对角矩阵:
a = (| | | | |
| -- | -- | - | - |
| -6 | 4 | 0 | 9 |
| -3 | 0 | 1 | 6 |
| -1 | -2 | 1 | 0 |
| -4 | 4 | 0 | 7 |);{b, d} = EigenvalueDecomposition[a];(B = Transpose[b])//MatrixFormbInv = Inverse[b]bInv . a .b//MatrixForm% == d一个实对称矩阵可正交对角化为
,其中
为对角实矩阵,
为正交矩阵. 请验证以下矩阵是对称的,然后将其对角化:
(s = {{1, 4, -2}, {4, 5, -3}, {-2, -3, 2}})//MatrixFormTranspose[s] == s{t, d} = EigenvalueDecomposition[s];
do = Transpose[FullSimplify[Normalize /@ Transpose[t]]]OrthogonalMatrixQ[o]s == o.d.Transpose[o]//FullSimplify如果
,则矩阵称为正规矩阵. 正规矩阵是可通过酉变换对角化的最常见的一种矩阵. 所有实对称矩阵
都是正规矩阵,因为等式两边就是
:
TensorExpand[ConjugateTranspose[s].s == s.ConjugateTranspose[s] == s.s, Assumptions -> s∈Matrices[{n, n}, Reals, Symmetric[{1, 2}]]](n = {{3, -1}, {1, 3}})//MatrixFormn.ConjugateTranspose[n] == ConjugateTranspose[n].n用 NormalMatrixQ 进行验证:
NormalMatrixQ[n]{t, d} = EigenvalueDecomposition[n]d//MatrixFormu = Transpose[Normalize /@ Transpose[t]];
UnitaryMatrixQ[u]n == u.d.ConjugateTranspose[u]微分方程与动态系统 (4)
a = (1/100)(| | | |
| -- | -- | -- |
| 90 | 01 | 09 |
| 01 | 90 | 01 |
| 09 | 09 | 90 |);{t, d} = EigenvalueDecomposition[a]x[k_] = t.d^k.Inverse[t].{C[1], C[2], C[3]};注意,由于
是对角矩阵,逐元素幂运算与 MatrixPower 是相同的操作:
Simplify[MatrixPower[d, k] == d ^ k, k > 0]Simplify[x[k] == a.x[k - 1], k > 1]求解常微分方程 (ODE) 方程组
、
、
. 首先,构造右侧的系数矩阵
:
a = {{0, 1, 0}, {0, 0, 1}, {-2, 1, 2}};{p, d} = EigenvalueDecomposition[a]Subscript[d, t] = MapAt[Exp[# t]&, d, {{1, 1}, {2, 2}, {3, 3}}]p.Subscript[d, t].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]]假设一个粒子在平面力场中运动,其位置向量
满足
且
,下面给出了
和
. 求解
时的初始问题:
a = (| | |
| -- | -- |
| 4 | -5 |
| -2 | 1 |);Subscript[x, 0] = (| |
| --- |
| 1.9 |
| 3.6 |);{v, λ} = EigenvalueDecomposition[a]通解为
. 用 LinearSolve 确定系数向量
:
c = LinearSolve[v, Subscript[x, 0]]x[t_] = v.MatrixExp[λ t].cMatrixExp[λ t] == DiagonalMatrix[Exp[Diagonal[λ t]]]用 DSolveValue 验证解:
x[t] == DSolveValue[{{u1'[t], u2'[t]} == a.{u1[t], u2[t]}, {u1[0], u2[0]} == Subscript[x, 0]}, {u1[t], u2[t]}, t] //Simplify//Chopleqn = {Derivative[1][x][t] == -3(x[t] - y[t]), Derivative[1][y][t] == -x[t] z[t] + 26 x[t] - y[t], Derivative[1][z][t] == x[t] y[t] - z[t]};lj = D[leqn[[All, 2]], {{x[t], y[t], z[t]}}]eqp = Solve[leqn /. {x'[t] -> 0, y'[t] -> 0, z'[t] -> 0}, {x[t], y[t], z[t]}]{vecs, d} = EigenvalueDecomposition[N[lj /. eqp[[3]]]]一个从点 pt 沿方向 dir 进行微小扰动后逆向积分的函数:
st[pt_, dir_] := First[{x[t], y[t], z[t]} /. NDSolve[{leqn, Thread[{x[0], y[0], z[0]} == pt + 10^-6dir]}, {x, y, z}, {t, 0, -4}]];pt = {x[t], y[t], z[t]} /. eqp[[3]];dir = vecs[[All, 3]];sr = ParametricPlot3D[Evaluate[{st[pt, dir], st[pt, -dir]}], {t, 0, -4}, PlotStyle -> Table[{Thickness[0.015], Red}, {2}]]pt = {x[t], y[t], z[t]} /. eqp[[2]];{vecs, d} = EigenvalueDecomposition[N[lj /. eqp[[2]]]];
dir = vecs[[All, 3]];sl = ParametricPlot3D[Evaluate[{st[pt, dir], st[pt, -dir]}], {t, 0, -4}, PlotStyle -> Table[{Thickness[0.015], Green}, {2}]];Show[{ParametricPlot3D[Evaluate[{x[t], y[t], z[t]} /. NDSolve[{leqn, x[0] == 5, y[0] == 0, z[0] == 25}, {x, y, z}, {t, 0, 100}]], {t, 0, 100}], sr, sl}, PlotRange -> {{-25, 25}, {-25, 25}, {0, 50}}]物理学 (3)
在量子力学中,状态由复单位向量表示,物理量则由厄尔米特线性算子描述. 特征值表示可能的观测结果,而相对于特征向量的分量的模的平方则表示这些观测结果的概率. 对于给定的自旋算子
和状态
,求可能的观测值及其概率:
σ = (ℏ/2)(| | |
| - | -- |
| 0 | -I |
| I | 0 |);ψ = (1/Sqrt[5])(| |
| --- |
| 1 |
| 2 I |);{t, d} = EigenvalueDecomposition[σ]u = Transpose[Normalize /@ Transpose[t]]UnitaryMatrixQ[u]
的伴随算子投影到特征向量上,得到
的相对概率为
,
的相对概率为
:
Abs[(u.ψ)] ^ 2//Simplify在量子力学中,能量算符被称为哈密顿量
,状态根据薛定谔方程
演化. 给定自旋为 -1 的粒子在
方向恒定磁场中的哈密顿量,求初始状态为
(表示
)的粒子在时刻
的状态:
ℋ = (Subscript[ω, 0]ℏ/Sqrt[2]) (| | | |
| - | -- | -- |
| 0 | -I | 0 |
| I | 0 | -I |
| 0 | I | 0 |);Subscript[ψ, 0] = {1, 0, 0};{v, ℰ} = EigenvalueDecomposition[ℋ]u = Transpose[Normalize /@ Transpose[v]]UnitaryMatrixQ[u]ψ[t_] = u. MatrixExp[-(I t/ℏ)ℰ].u.Subscript[ψ, 0] //FullSimplify惯性矩是一个描述刚体在不同方向旋转时所受阻力的实对称矩阵. 该矩阵的特征值被称为主惯性矩,对应的特征向量(必然正交)则称为主轴. 计算以下四面体的主惯性矩与主轴:
tet = Tetrahedron[{{-1.25, -1, -0.75}, {3.75, -1, -0.75}, {-1.25, 3., -0.75}, {-1.25, -1, 2.25}}](ℐ = MomentOfInertia[tet])//MatrixForm{a, m} = EigenvalueDecomposition[ℐ]a.a//ChopRegionCentroid[tet]Graphics3D[{{Opacity[.5], tet}, Arrow[{{0, 0, 0}, 3#}]& /@ a}]属性和关系 (13)
EigenvalueDecomposition 将矩阵
分解为
:
a = RandomInteger[10, {3, 3}];
{s, d} = EigenvalueDecomposition[a];
a == s.d.Inverse[s]//FullSimplifyd == Inverse[s].a.s//FullSimplifya.s == s.d//FullSimplifyEigenvalueDecomposition[m] 实际上等价于 {Transpose[Eigenvectors[m]],DiagonalMatrix[Eigenvalues[m]]}:
m = RandomComplex[1 + I, {3, 3}];
EigenvalueDecomposition[m] == {Transpose[Eigenvectors[m]], DiagonalMatrix[Eigenvalues[m]]}可用 Transpose 和 DiagonalMatrix,通过 Eigensystem[m] 构建 EigenvalueDecomposition[m]:
m = RandomComplex[1 + I, {3, 3}];
EigenvalueDecomposition[m] == Replace[Eigensystem[m], {vals_, vecs_} -> {vecs, DiagonalMatrix[vals]}]当且仅当 DiagonalizableMatrixQ[m] 给出 True,EigenvalueDecomposition[m] 才存在:
d = {{-3, -6, 9}, {-18, -15, 27}, {-18, -18, 30}};
DiagonalizableMatrixQ[m]EigenvalueDecomposition[d]nd = {{42, 49, -61}, {-9, -4, 13}, {18, 26, -26}};
DiagonalizableMatrixQ[n]EigenvalueDecomposition[nd]尽管它与 d 有相同的特征值,但该矩阵没有完整的特征向量集:
Eigensystem[nd]当且仅当 m 的若尔当矩阵为对角矩阵时,EigenvalueDecomposition[m] 才存在:
nd = {{27, 48, 81}, {-6, 0, 0}, {1, 0, 3}}
EigenvalueDecomposition[nd]MatrixForm /@ JordanDecomposition[nd]当分解存在时,其结果与 JordanDecomposition 一致:
d = {{2, 1, 0}, {3, 7, 1}, {5, -1, -4}};
EigenvalueDecomposition[d] == JordanDecomposition[d]Last[JordanDecomposition[d]]//MatrixFormm = {{0, 3, 7}, {0, -3, 1}, {-4, 2, -8}};
{t, d} = EigenvalueDecomposition[m];
{tInv, dInv} = EigenvalueDecomposition[Inverse[m]];Diagonal[d] == Reverse[(1/Diagonal[dInv])]//FullSimplifyMatrixForm /@ {t, tInv}对于一个解析函数
,
与矩阵
有相同的
矩阵和对角矩阵
(至多排列顺序不同):
m = {{1, 1, 0}, {-1, 1, 0}, {0, 0, 5}};
{t, d} = EigenvalueDecomposition[m]EigenvalueDecomposition[m.m] == {t, d.d}EigenvalueDecomposition[MatrixExp[m]] == {t, MatrixExp[d]}//SimplifySingularValueDecomposition[m] 由矩阵
和
的特征值分解构建而成:
m = (| | | |
| ---- | --- | ---- |
| -5.2 | 0 | -5 |
| 1.7 | 5.4 | -4.3 |);{u, Σ, v} = SingularValueDecomposition[m];{Subscript[t, L], Subscript[d, L]} = EigenvalueDecomposition[m . ConjugateTranspose[m]];{u//MatrixForm, Subscript[t, L]//MatrixForm}{Subscript[t, R], Subscript[d, R]} = EigenvalueDecomposition[ConjugateTranspose[m].m];{v//MatrixForm, Subscript[t, R]//MatrixForm}MatrixForm /@ {Σ, Sqrt[Subscript[d, L]]}(s = {{1, 4, -2}, {4, 0, -3}, {-2, -3, 2}})//MatrixFormSymmetricMatrixQ[s]{t, d} = EigenvalueDecomposition[s];
d//MatrixFormTranspose[t].t//Simplify(a = {{0, 4, -2}, {-4, 0, -3}, {2, 3, 0}})//MatrixFormAntisymmetricMatrixQ[a]{t, d} = EigenvalueDecomposition[a];
d//MatrixFormConjugateTranspose[t].t//Simplifyu = {{1 / Sqrt[2], I / Sqrt[2]}, {I / Sqrt[2], 1 / Sqrt[2]}};UnitaryMatrixQ[u]MatrixForm /@ ({t, d} = EigenvalueDecomposition[u])Abs[Diagonal[d]]ConjugateTranspose[t].t//Simplifyn = {{1, 2, -1}, {-1, 1, 2}, {2, -1, 1}};NormalMatrixQ[n]{t, d} = EigenvalueDecomposition[n];
d//MatrixFormConjugateTranspose[t].t//Simplify对于正规矩阵,舒尔分解 {q,r} 与特征分解 {t,d} 其实是一样的:
n = (| | | |
| --- | --- | --- |
| 1. | 3. | -1. |
| -1. | 1. | 3. |
| 3. | -1. | 1. |);计算 SchurDecomposition[n,RealBlockDiagonalFormFalse]:
{q, r} = SchurDecomposition[n, RealBlockDiagonalForm -> False]//ChopDiagonalMatrixQ[r]{t, d} = EigenvalueDecomposition[n]//Chopd == r为验证
等于
,将每列的第一个元素设为 1. 以消除相位差异:
Transpose[(#1/First[q])& /@ q] - Transpose[(#1/First[t])& /@ t]//Chop可能存在的问题 (1)
任何正规矩阵都可酉对角化,但 EigenvalueDecomposition 返回的
可能不是酉矩阵:
m = (| | | |
| -- | -- | -- |
| -1 | 1 | 0 |
| 0 | -1 | 1 |
| 1 | 0 | -1 |)
{t, d} = EigenvalueDecomposition[m];
{NormalMatrixQ[m], UnitaryMatrixQ[t]}u = Transpose[Normalize /@ Transpose[t]]UnitaryMatrixQ[u]m == u.d.u//Simplify相关指南
-
▪
- 矩阵分解
文本
Wolfram Research (2025),EigenvalueDecomposition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/EigenvalueDecomposition.html.
CMS
Wolfram 语言. 2025. "EigenvalueDecomposition." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/EigenvalueDecomposition.html.
APA
Wolfram 语言. (2025). EigenvalueDecomposition. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/EigenvalueDecomposition.html 年
BibTeX
@misc{reference.wolfram_2026_eigenvaluedecomposition, author="Wolfram Research", title="{EigenvalueDecomposition}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/EigenvalueDecomposition.html}", note=[Accessed: 15-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_eigenvaluedecomposition, organization={Wolfram Research}, title={EigenvalueDecomposition}, year={2025}, url={https://reference.wolfram.com/language/ref/EigenvalueDecomposition.html}, note=[Accessed: 15-September-2026]}