分类目录:《算法设计与分析》总目录
许多数学对象可以通过将它们分解成多个组成部分或者找到它们的一些属性而更好地理解,这些属性是通用的,而不是由我们选择表示它们的方式产生的。例如,整数可以分解为质因数。我们可以用十进制或二进制等不同方式表示整数12,但是12=2×2×3永远是对的。从这个表示中我们可以获得一些有用的信息,比如12不能被5整除,或者12的倍数可以被3整除。
正如我们可以通过分解质因数来发现整数的一些内在性质,我们也可以通过分解矩阵来发现矩阵表示成数组元素时不明显的函数性质。特征分解是使用最广的矩阵分解之一,即我们将矩阵分解成一组特征向量和特征值。
方阵
A
A
A的特征向量是指与
A
A
A相乘后相当于对该向量进行缩放的非零向量
v
v
v:
A
v
=
λ
v
Av=\lambda v
Av=λv
标量 λ \lambda λ被称为这个特征向量对应的特征值。类似地,我们也可以定义左特征向量 v T A = λ v v^TA=\lambda v vTA=λv,但是通常我们更关注右特征向量
如果 v v v是 A A A的特征向量,那么任何缩放后的向量 s v ( s ∈ R , s ≠ 0 ) sv(s\in R, s\neq 0) sv(s∈R,s=0)也是 A A A的特征向量。此外, s v sv sv和 v v v有相同的特征值。基于这个原因,通常我们只考虑单位特征向量。
假设矩阵
A
A
A有
n
n
n个线性无关的特征向量
{
v
(
1
)
,
v
(
2
)
,
⋯
,
v
(
n
)
}
\{v^{(1)}, v^{(2)},\cdots, v^{(n)}\}
{v(1),v(2),⋯,v(n)},对应着特征值
{
λ
i
,
λ
2
,
⋯
,
λ
n
}
\{\lambda_i, \lambda_2, \cdots, \lambda_n\}
{λi,λ2,⋯,λn}。我们将特征向量连接成一个矩阵,使得每一列是一个特征向量:
V
=
[
v
(
1
)
,
v
(
2
)
,
⋯
,
v
(
n
)
]
V=[v^{(1)}, v^{(2)},\cdots, v^{(n)}]
V=[v(1),v(2),⋯,v(n)]
类似地,我们也可以将特征值连接成一个向量:
λ
=
[
λ
i
,
λ
2
,
⋯
,
λ
n
]
T
\lambda=[\lambda_i, \lambda_2, \cdots, \lambda_n]^T
λ=[λi,λ2,⋯,λn]T
此时,
A
A
A的 特征分解可以记作:
A
=
V
diag
(
λ
)
V
−
1
A=V\text{diag}(\lambda)V^{-1}
A=Vdiag(λ)V−1
我们已经看到了构建具有特定特征值和特征向量的矩阵,能够使我们在目标方向上延伸空间。然而,我们也常常希望将矩阵分解成特征值和特征向量。这样可以帮助我们分析矩阵的特定性质,就像质因数分解有助于我们理解整数。
不是每一个矩阵都可以分解成特征值和特征向量。在某些情况下,特征分解存在,但是会涉及复数而非实数。幸运的是,我们通常只需要分解一类有简单分解的矩阵。具体来讲,每个实对称矩阵都可以分解成实特征向量和实特征值:
A
=
Q
Λ
Q
T
A=Q\Lambda Q^T
A=QΛQT
其中
Q
Q
Q是
A
A
A的特征向量组成的正交矩阵,
Λ
\Lambda
Λ是对角矩阵。特征值
Λ
i
,
i
\Lambda_{i, i}
Λi,i对应的特征向量是矩阵
Q
Q
Q的第
i
i
i列,记作
Q
:
,
i
Q_{:, i}
Q:,i。因为
Q
Q
Q是正交矩阵,我们可以将
A
A
A看作沿方向
v
(
i
)
v^{(i)}
v(i)延展
λ
i
\lambda_i
λi倍的空间。
虽然任意一个实对称矩阵
A
A
A都有特征分解,但是特征分解可能并不唯一。如果两个或多个特征向量拥有相同的特征值,那么在由这些特征向量产生的生成子空间中,任意一组正交向量都是该特征值对应的特征向量。因此,我们可以等价地从这些特征向量中构成
Q
Q
Q作为替代。按照惯例,我们通常按降序排列
Λ
\Lambda
Λ的元素。在该约定下,特征分解唯一当且仅当所有的特征值都是唯一的。
矩阵的特征分解给了我们很多关于矩阵的有用信息。矩阵是奇异的当且仅当含有零特征值。实对称矩阵的特征分解也可以用于优化二次方程 f ( x ) = x T A x f(x)=x^TAx f(x)=xTAx,其中限制 ∣ ∣ x ∣ ∣ 2 = 1 ||x||_2=1 ∣∣x∣∣2=1。当 x x x等于 A A A的某个特征向量时, f f f将返回对应的特征值。在限制条件下,函数∫的最大值是最大特征值,最小值是最小特征值。
所有特征值都是正数的矩阵被称为正定;所有特征值都是非负数的矩阵被称为半正定。同样地,所有特征值都是负数的矩阵被称为负定;所有特征值都是非正数的矩阵被称为半负定。半正定矩阵受到关注是因为它们保证:
∀
x
:
x
T
A
x
≥
0
\forall x:x^TAx\geq 0
∀x:xTAx≥0
此外,正定矩阵还保证:
x
T
A
x
=
0
⇒
x
=
0
x^TAx=0\Rightarrow x=0
xTAx=0⇒x=0