《线性代数》,杨刚、吴惠彬著
https://www.bilibili.com/video/BV1ExWxesEVf
https://blog.csdn.net/qq_41951923/article/details/103540506
前置知识
什么是特征值与特征向量?设 $\mathbf A=[a_{ij}]\in\mathbb{C}^{n\times n}$,若存在数 $\lambda\in\mathbb{C}$ 以及非零列向量 $\vec x=(x_1,x_2,\dots,x_n)^{\mathrm T}\in\mathbb{C}^n$,使得:
$$ \mathbf A\vec x=\lambda\vec x $$或:
$$ (\lambda\mathbf I-\mathbf A)\vec x=\vec 0 $$则称 $\lambda$ 为矩阵 $\mathbf A$ 的特征值,$\vec x$ 为矩阵 $\mathbf A$ 的属于(或对应于)特征值 $\lambda$ 的特征向量。
什么叫相似对角化?若矩阵 $\mathbf A$ 可相似于一个对角阵,则称 $\mathbf A$ 可以相似对角化。
关于可相似对角化的定理:
- $n$ 阶方阵可相似对角化的充要条件是:有 $n$ 个线性无关的特征向量
- $n$ 阶方阵属于不同特征值的特征向量是线性无关的
- $n$ 阶方阵可相似对角化的充要条件是:每个特征值的几何重数与代数重数相等(由前两个推导而来)
什么是正交矩阵?设 $\mathbf A$ 为 $n$ 阶方阵,如果 $\mathbf A^\mathrm T\mathbf A=\mathbf I$ 或 $\mathbf A\mathbf A^\mathrm T=\mathbf I$,就称 $\mathbf A$ 为正交矩阵。
关于实对称矩阵特征值与特征向量的定理:
- 实对称矩阵的特征值都是实数
- 实对称矩阵属于不同特征值的特征向量一定是正交的
关于实对称矩阵可相似对角化的定理:
- 实对称矩阵的特征值满足:几何重数与代数重数相等
- 实对称矩阵一定可以相似对角化
- 对于 $n$ 阶实对称矩阵,存在 $n$ 阶正交矩阵 $\mathbf Q$,使得 $\mathbf Q^{-1}\mathbf A\mathbf Q=\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_n)$,其中 $\lambda_i$ 是特征值。也就是说实对称矩阵能够找到正交的相似变换矩阵
实对称矩阵相似对角化的几何意义
正交矩阵对应旋转变换
实对称矩阵的相似对角化可以写为:
$$ \mathbf A=\mathbf Q\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_n)\mathbf Q^{\mathrm T} $$对于一个向量 $\vec x$,有:
$$ \mathbf A\vec x=\mathbf Q\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_n)\mathbf Q^{\mathrm T}\vec x $$$\vec x$ 左乘一个 $\mathbf A$,相当于:
- 进行一次旋转变换($\mathbf Q^{-1}$ 或 $\mathbf Q^\mathrm T$)
- 进行一次伸缩变换,即对于第 $i$ 维,乘上一个 $\lambda_i$($\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_n)$)
- 旋转回去($\mathbf Q$)
所以,我们知道了:实对称矩阵对应缩放变换
奇异值分解
将相似对角化的式子反过来写,就是奇异值分解的形式,例如:
$$ \mathbf A=\mathbf Q\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_n)\mathbf Q^{\mathrm T} $$在奇异值分解中,最左和最右侧不一定非得是 $\mathbf Q$ 与 $\mathbf Q^\mathrm T$,它们可以是不同的矩阵,而且不要求方阵,所以奇异值分解的式子是:
$$ \mathbf A_{m\times n}=\mathbf Q_{m\times m}\mathbf S_{m\times n}\mathbf P_{n\times n}^{\mathrm T} $$矩阵将会被分解成有三项:左正交矩阵 $\mathbf Q$、对角矩阵 $\mathbf S$、右正交矩阵的转置 $\mathbf P^\mathrm T$
对角矩阵 $\mathbf S$ 的对角线元素叫做奇异值(Singular Value),它有如下特点:
- 奇异值必须是非负数(变换时只能伸缩不能反转),因为负数是没有意义的,两侧的奇异向量不同,改变奇异值的符号后,只需要反转其中一个向量的方向,就能得到相同的变换
- 奇异值在对角矩阵主对角线从大到小排列,方便执行近似操作
如何对任一矩阵 $\mathbf A_{m\times n}$ 进行奇异值分解?
下面将从方阵到一般的矩阵进行讨论
方阵的奇异值分解
对于 $n$ 阶方阵 $\mathbf A$,构建方阵 $\mathbf A\mathbf A^\mathrm T$ 和 $\mathbf A\mathbf A^\mathrm T$,我们发现它们都是实对称矩阵,它们一定可以进行相似对角化。
设 $\mathbf A=\mathbf P\mathbf S\mathbf Q^\mathrm T$,我们发现:
$$ \mathbf A\mathbf A^\mathrm T =\mathbf P\mathbf S\mathbf Q^\mathrm T(\mathbf P\mathbf S\mathbf Q^\mathrm T)^\mathrm T =\mathbf P\mathbf S\mathbf Q^\mathrm T\mathbf Q\mathbf S^\mathrm T\mathbf P^\mathrm T =\mathbf P\mathbf S\mathbf S^\mathrm T\mathbf P^\mathrm T =\mathbf P\mathbf S^2\mathbf P^\mathrm T $$同理:
$$ \mathbf A^\mathrm T\mathbf A =\mathbf Q\mathbf S^2\mathbf Q^\mathrm T $$给它们写到一起:
$$ \mathbf A=\mathbf P\mathbf S\mathbf Q^\mathrm T\Rightarrow \begin{cases} \mathbf A\mathbf A^\mathrm T=\mathbf P\mathbf S^2\mathbf P^\mathrm T\\ \mathbf A^\mathrm T\mathbf A=\mathbf Q\mathbf S^2\mathbf Q^\mathrm T \end{cases} $$我们求出 $\mathbf A\mathbf A^\mathrm T$ 和 $\mathbf A\mathbf A^\mathrm T$ 的特征向量与特征值,特征向量取算术平方根,然后按照相同的顺序排布,就能得到 $\mathbf S$ 了
在得到 $\mathbf S$ 之后,我们需要对 $\mathbf P$ 和 $\mathbf Q$ 进行校正:
对 $\mathbf A=\mathbf P\mathbf S\mathbf Q^\mathrm T$ 变形,得到:
$$ \mathbf A\mathbf Q=\mathbf P\mathbf S $$将列向量展开得到:
$$ \mathbf A(\vec {q_1},\vec {q_2},\dots,\vec {q_n})=(\vec {p_1},\vec {p_2},\dots,\vec {p_n})\mathrm{diag}(s_1,s_2,\dots,s_n) $$即:
$$ (\mathbf A\vec {q_1},\mathbf A\vec {q_2},\dots,\mathbf A\vec {q_n})=(s_1\vec {p_1},s_2\vec {p_2},\dots,s_n\vec {p_n}) $$我们得到:
$$ \vec {p_i}=\frac{\mathbf A\vec {q_i}}{s_i} $$于是,我们就能根据 $\mathbf Q$ 对 $\mathbf P$ 中的每一列的符号进行校正,得到正确的结果
非方阵的奇异值分解
对于矩阵 $\mathbf A_{m\times n}$,根据 $m$ 与 $n$ 的数量关系,可以分成 $m\lt n$ 和 $m>n$ 两种情况:
$$ \mathbf A_{m\times n}=\begin{cases} \mathbf P\begin{bmatrix}\mathbf J & \mathbf 0\end{bmatrix}\mathbf Q^\mathrm T&m\lt n \\ \mathbf P\begin{bmatrix}\mathbf J \\ \mathbf 0\end{bmatrix}\mathbf Q^\mathrm T&m>n \end{cases} $$$$ \mathbf A\mathbf A^\mathrm T=\mathbf P\mathbf S\mathbf S^\mathrm T\mathbf P^\mathrm T= \begin{cases} \mathbf P\mathbf J^2\mathbf P^\mathrm T & m\lt n\\ \mathbf P\begin{bmatrix}\mathbf J & \mathbf 0\\\mathbf 0 & \mathbf 0\end{bmatrix}\mathbf P^\mathrm T & m>n \end{cases} $$$$ \mathbf A^\mathrm T\mathbf A=\mathbf Q\mathbf S^\mathrm T\mathbf S\mathbf Q^\mathrm T= \begin{cases} \mathbf Q\begin{bmatrix}\mathbf J & \mathbf 0\\\mathbf 0 & \mathbf 0\end{bmatrix}\mathbf Q^\mathrm T & m\lt n\\ \mathbf Q\mathbf J^2\mathbf Q^\mathrm T & m>n \end{cases} $$如何校正?
$$ \mathbf A\mathbf Q=\begin{cases} \mathbf P\begin{bmatrix}\mathbf J & \mathbf 0\end{bmatrix} & m\lt n\\ \mathbf P\begin{bmatrix}\mathbf J \\ \mathbf 0\end{bmatrix} & m>n \end{cases} $$只需要校正公共特征值对应的特征向量即可
使用奇异值分解求方阵的逆
如果 $\mathbf S$ 满秩,那么:
$$ \mathbf A^{-1}=(\mathbf P\mathbf S\mathbf Q^\mathrm T)^{-1}=\mathbf Q\mathbf S^{-1}\mathbf P^\mathrm T $$即:
$$ \mathbf A^{-1}=\mathbf Q\mathrm{diag}(1/s_1,1/s_2,\dots,1/s_n)\mathbf P^\mathrm T $$