矩阵对角化与分解¶
1 相似对角化(特征值分解)¶
1.1 结论¶
一个 \(n\times n\) 实矩阵 \(A\),如果存在 \(n\) 个线性无关的实特征向量,就可以在实数域上进行相似对角化,写成
其中,
\(W\) 的每一列都是 \(A\) 的一个特征向量,\(\Sigma\) 的对角元素是与这些列向量一一对应的特征值。
这个条件也可以表述为:\(A\) 的特征多项式在实数域上完全分解,并且每个特征值的几何重数都等于它的代数重数。
其中:
- 代数重数是特征值作为特征多项式根的重数。
- 几何重数是对应特征子空间 \(\ker(A-\lambda I)\) 的维数。
对于 \(A\in\mathbb{F}^{m\times n}\) ,矩阵的核定义为 \(\ker(A)=\{x|Ax=0,x\in\mathbb{R}^n\}\) ,即矩阵的零空间。
如果 \(A\) 有 \(n\) 个互不相同的实特征值,那么它一定可以在实数域上相似对角化。不过,特征值互不相同只是充分条件,并非必要条件。例如,单位矩阵的特征值全部相同,但它本身就是对角矩阵。
进一步地,如果能够选出一组两两正交的实特征向量作为基,那么将它们分别归一化后,得到的矩阵 \(Q\) 就是正交矩阵,于是
一般矩阵的特征向量即使线性无关,也未必两两正交;归一化只能改变长度,不能使原本不正交的向量变得正交。对于实对称矩阵,总能选出一组标准正交的特征向量,从而实现上述正交对角化。
本节主要讨论实数域上的对角化。若讨论复数域上的对角化,则允许特征值、特征向量及 \(W\) 为复数;相应的条件是存在 \(n\) 个线性无关的复特征向量。
1.2 思考过程¶
我们讨论一个 \(n\times n\) 实矩阵 \(A\)。
首先,矩阵 \(A\) 的特征值和特征向量满足
假设能够选出 \(n\) 个线性无关的实特征向量,把这些等式合在一起,就有
记
则上式可以写成
由于 \(W\) 的列向量线性无关,\(W\) 可逆。因此,
还可以从构造一个左乘矩阵的角度理解这个过程。设
其中每个 \(\mathbf{b}_i\) 都是 \(1\times n\) 行向量。那么 \(BAW\) 的第 \(i\) 行、第 \(j\) 列元素是
如果要求
就可以得到
这些要求合在一起,恰好就是
所以,当 \(W\) 可逆时,满足要求的矩阵就是
如果 \(W\) 的列向量不仅线性无关,而且两两正交、长度均为 \(1\),那么
\[ W^\top W=I, \qquad W^{-1}=W^\top. \]此时,\(W\) 和 \(B=W^\top\) 都是正交矩阵。
现在的问题是:什么时候能够选出 \(n\) 个线性无关的特征向量,使 \(W\) 可逆?
一个常用的充分条件是:\(A\) 有 \(n\) 个互不相同的实特征值。
这是因为,属于不同特征值的特征向量一定线性无关。下面用反证法说明。
设 \(\lambda_1,\ldots,\lambda_m\) 互不相同,对应的非零特征向量为 \(\mathbf{x}_1,\ldots,\mathbf{x}_m\)。假设这些向量线性相关,从中选出一组包含向量个数最少的线性相关组,重新编号为
于是存在不全为零的系数,使
根据这组向量的最小性,每个 \(c_i\) 都非零,并且 \(\mathbf{x}_1,\ldots,\mathbf{x}_{k-1}\) 线性无关。
在等式两边左乘 \(A\),得到
再减去原等式的 \(\lambda_k\) 倍,得到
由于特征值互不相同,且每个 \(c_i\neq0\),上式是 \(\mathbf{x}_1,\ldots,\mathbf{x}_{k-1}\) 的一个非平凡线性关系,与它们线性无关矛盾。
因此,属于不同特征值的特征向量线性无关。这个证明也适用于某个特征值为 \(0\) 的情形。
综上所述,只要能够选出 \(n\) 个线性无关的实特征向量,就可以用它们组成的矩阵将 \(A\) 对角化:
从换基的角度看,\(W=\begin{bmatrix} \mathbf{x}_1&\mathbf{x}_2&\cdots&\mathbf{x}_n \end{bmatrix}\) 将特征向量基下的坐标转换为标准基下的坐标,而 \(W^{-1}AW\) 就是线性变换 \(A\) 在特征向量基下的矩阵。由于每个基向量都只被乘以对应的特征值,这个矩阵自然是对角矩阵。
1.3 更进一步¶
前面已经说明:当 \(A\) 有 \(n\) 个互不相同的实特征值时,对应的 \(n\) 个特征向量构成一组基。但是,这组基未必是正交基。
例如,
有两个不同的特征值 \(1\) 和 \(2\),对应的特征向量可以取为
它们线性无关,但内积为 \(1\),并不正交。即使分别归一化,内积仍然不为 \(0\)。
如果已经找到一组两两正交的实特征向量 \(\mathbf{x}_1,\ldots,\mathbf{x}_n\),那么就可以构造
首先,归一化不改变特征向量对应的特征值:
其次,\(Q\) 的列向量构成标准正交基,因此
于是相似对角化可以写成更特殊的形式:
这种分解称为正交对角化。
对于实矩阵,能够正交对角化的充要条件是它为实对称矩阵。其中一个方向可以直接看出:如果
由于 \(\Sigma\) 是实对角矩阵,那么
另一个方向,即实对称矩阵一定可以正交对角化,将在下面说明。
1.4 实对称矩阵相似对角化¶
并非所有实矩阵都能在实数域上相似对角化,但是所有实对称矩阵都可以,而且可以选用正交矩阵完成对角化。
定理 1 实对称矩阵的特征值必为实数,且每个特征值都可以选取实特征向量¶
考虑实对称矩阵 \(A\) 的一个特征值 \(\lambda\) 及对应的非零特征向量 \(\mathbf{x}\)。为了证明特征值是实数,这里先允许 \(\lambda\) 和 \(\mathbf{x}\) 取复数。
用 \((\cdot)^*\) 表示共轭转置。由于 \(A\) 是实对称矩阵,有
一方面,
另一方面,
因此,
因为 \(\mathbf{x}\neq\mathbf{0}\),所以
于是
即 \(\lambda\) 是实数。
进一步,将特征向量写成
由于 \(A\) 和 \(\lambda\) 都为实数,由
可得
\(\mathbf{u}\) 和 \(\mathbf{v}\) 至少有一个非零,因此总能选取一个实特征向量。
这里的结论是“可以选取实特征向量”。如果允许复向量,那么实特征向量乘以非实复数,仍然是对应于同一特征值的特征向量。
定理 2 实对称矩阵的属于不同特征值的特征向量必正交¶
选取实特征向量,使
由于 \(A^\top=A\),有
所以
因为 \(\lambda_1\neq\lambda_2\),只能有
因此,这两个特征向量正交。
构造标准正交基¶
属于不同特征值的特征向量已经彼此正交。对于同一个特征值对应的特征子空间,可以先选取一组基,再使用 Gram–Schmidt 方法将其标准正交化。
特征值 \(\lambda\) 的特征子空间,就是 \(E_{\lambda}=\{\mathbf{x}:A\mathbf{x}=\lambda\mathbf{x}\}=\ker(A-\lambda I)\) 。
Gram-Schmidt 正交化
假设 \(\mathbf{u},\mathbf{v}\) 是 \(E_{\lambda}\) 中两个线性无关的向量。先把第一个向量单位化 \(\mathbf{q}_1=\dfrac{\mathbf{u}}{\|\mathbf{u}\|}\) ,再从 \(\mathbf{v}\) 中减去它沿 \(\mathbf{q}_1\) 方向的分量 \(\mathbf{v}_{\perp}=\mathbf{v}-(\mathbf{q}_1^\top\mathbf{v})\mathbf{q}_1\) 。易知 \(\mathbf{q}_1^\top \mathbf{v}_{\perp}=0\) ,因此,继续单位化 \(\mathbf{q}_2=\dfrac{\mathbf{v}}{\|\mathbf{v}_{\perp}\|}\) 就得到了两个标准正交的特征向量。更多向量的情形,就是依次减去沿已有各个正交方向的投影。
这个过程不会破坏特征向量的性质,因为同一特征子空间中的向量的非零线性组合,仍然是对应于同一特征值的特征向量:
不过,还需要说明:实对称矩阵的各个特征子空间合起来,确实能够张成整个 \(\mathbb{R}^n\)。 这一点可以通过说明特征值的代数重数等于几何重数来证明。根据代数重数的定义,所有特征值的代数重数和为 \(n\) 。具体证明过程不是很简单,这里略了。
因此,对任意实对称矩阵 \(A\),都存在正交矩阵
使得
这就是实对称矩阵的谱定理。它也说明,实对称矩阵即使存在重复特征值,也仍然可以正交对角化。
2 SVD(Singular Value Decomposition)奇异值分解¶
上文讲了一个方阵如何对角化,现在我们试着将结论推广到 \(m\times n\) 的矩阵上来。当然,此时“对角阵”不是严格意义上的对角阵。
2.1 结论¶
一个 \(m\times n\) 的矩阵 \(A\) 可以写成
的形式。其中 \(A \in \mathbb{R}^{m\times n}\) 或 \(A\in \mathbb{C}^{m\times n}\)。 \(U_{m\times m}\) 和 \(V_{n\times n}\) 都是酉矩阵。\(V^*\) 是 \(V\) 的共轭转置。
酉矩阵指满足矩阵的逆等于矩阵共轭转置的一类矩阵。正交矩阵是一类特殊的酉矩阵。
不妨令 \(m > n\) 。若 \(m < n\),只需要先计算共轭转置的 SVD 分解,再将结果取共轭转置即可。
这里的 \(\Sigma\) 与 \(A\) 同尺寸,是一个广义的“对角阵”,也就是说
\(\sigma_i\) 称为奇异值,是 \(AA^*\) 或 \(A^*A\) 的非零特征值开根号的结果,\(U\) 是由 \(AA^*\) 的正交单位特征向量组成的矩阵,\(V\) 是由 \(A^*A\) 的正交单位特征向量组成的矩阵。
2.2 思考过程¶
我们假设结论成立,来试着反推一下 \(U\),\(\Sigma\) 和 \(V\) 分别应当如何表示。
首先,我们有
则有
这里的 \(\Sigma\Sigma^*\) 和 \(\Sigma^*\Sigma\) 都是对角阵:
我们观察一下 (2-2) 式,可以发现其形式酷似矩阵对角化。也就是说,\(\Sigma\Sigma^*\) 是一个由 \(AA^*\) 的特征值组成的对角阵,\(U\) 是一个由 \(AA^*\) 的正交单位特征向量组成的矩阵。\(\Sigma^*\Sigma\) 是一个由 \(A^*A\) 的特征值组成的对角阵,\(V\) 是一个由 \(A^*A\) 的正交单位特征向量组成的矩阵。
首先,我们证明一下,\(AA^*\) 的特征值中,有 \(m-n\) 个 0.
特征值用 \(A\mathbf{v} = \lambda \mathbf{v}\) 定义。当特征值为 0 时,即代表有不为 \(\mathbf{0}\) 的向量 \(\mathbf{v}\),使得 \(A\mathbf{v} = \mathbf{0}\),也即 \(v_1\mathbf{a}_1 + v_2\mathbf{a}_2 + ... + v_n\mathbf{a}_n = \mathbf{0}\) ,即 \(A\) 的列向量中,至少有一个列向量与其它列向量线性相关。
所以我们需要证明,\(AA^*\) 的列向量中,至少有 \(m-n\) 个列向量与其它列向量线性相关。
设 \(A^* = \begin{bmatrix}\mathbf{a}_1 & \mathbf{a}_2 & \cdots & \mathbf{a}_m \end{bmatrix}\),那么 \(AA^*\) 的列向量就是 \(A\mathbf{a}_1, A\mathbf{a}_2 , \cdots, A\mathbf{a}_m\),那么 \(AA^*\) 的列向量维度小于等于 \(A^*\) 的列向量维度,而 \(A^*_{n\times m}\) 维度小于等于 \(n\) 。因此,\(AA^*\) 的列向量维度小于等于 \(n\),也就是说至少有 \(m-n\) 个列向量与其它列向量线性相关。
接下来,我们证明 \(AA^*\) 的非零特征值和 \(A^*A\) 的非零特征值相同。
对于 \(AA^*\) 的非零特征值 \(\lambda\),有 \(AA^* \mathbf{v} = \lambda \mathbf{v}\),这里的 \(A^*\mathbf{v}\) 显然不可能为 0. 我们在该式等号左右两边都左乘一个 \(A^*\),有 \((A^*A)(A^*\mathbf{v}) = \lambda (A^*\mathbf{v})\),我们将 \(A^*\mathbf{v}\) 看成 \(A^*A\) 的特征向量,\(\lambda\) 也就是 \(A^*A\) 的特征值了。因此,我们就证明了 \(AA^*\) 的非零特征值和 \(A^*A\) 的非零特征值相同。
再者,我们证明 \(AA^*\) 和 \(A^*A\) 都是半正定的。
对于 \(AA^*\),取其特征值有 \(AA^* \mathbf{v} = \lambda \mathbf{v}\),左乘 \(\mathbf{v}^*\),有 \(\mathbf{v}^*AA^* \mathbf{v} = (A^*\mathbf{v})^*(A^*\mathbf{v}) = \lambda \mathbf{v}^* \mathbf{v} \ge 0\) 。\(A^*A\) 同理。
综上,我们足以说明 (2-3) 式是成立的。我们称呼 (2-3) 式为特征值方程。
根据特征值方程,我们可以知道,\(\Sigma\) 是由 \(AA^*\) 的特征值开根号组成的“对角阵”,\(U\) 是由 \(AA^*\) 的正交单位特征向量组成的矩阵,\(V\) 是由 \(A^*A\) 的正交单位特征向量组成的矩阵。
此外,还有奇异值方程
2.3 SVD 的用处¶
2.3.1 求伪逆¶
SVD 奇异值分解经常用来求伪逆。
那么矩阵 \(A\) 的伪逆 \(A^{+}\) 是
其中 \(\Sigma^{+}\) 是由 \(\Sigma\) 的倒数组成的对角阵,即