下面的内容摘抄自一篇知乎回答:
要学好线性代数,最重要的是抓住线性代数的主线。线性代数的主线就是线性空间以及线性映射。整个线性代数的概念,公式,定义,定理都是围绕着线性空间以及线性映射展开的。你要做的,就是紧紧抓住这条主线,把线性代数的所有知识点串联起来,然后融会贯通,自然就能学好线性代数了。
线性空间的定义比较抽象,简单的说,就是向量组成的一个集合,这个集合可以定义加法以及纯量乘法,并且对加法以及乘法满足交换律,结合律以及分配律。这个集合以及定义在集合上的代数运算就是线性空间。研究线性空间有几个途径,一是基与维数,二是同构,三是子空间与直和以及商空间,四是线性映射。
先讲讲基与维数。一个线性空间必定存在基,线性空间的任意元素都可以由基线性表出,且表出方式唯一,这个唯一的表出的组合就是这个元素在这个基下的坐标。线性表出且表出方式唯一的充分必要条件是什么?这里又引出了线性无关以及极大线性无关组的概念,极大线性无关组元素的个数又能引出秩的概念。由秩又能引出维度的概念。以上这些概念都是为了刻画线性空间的基与维数而衍生出来的,并不是凭空出现无中生有的。
下面再谈谈同构。线性空间千千万,应如何研究呢?同构就是这样一个强大的概念,任何维数相同的线性空间之间是同构的,空间的维数是简单而深刻的,简单的自然数居然能够刻画空间最本质的性质。借助于同构,要研究任意一个n维线性空间,只要研究 \(R^n\) 就行了。
\(n\) 维线性空间作为一个整体,我们自然想到能不能先研究它的局部性质?所以自然而然的导出了子空间的概念以及整个空间的直和分解。直和分解要求把整个空间分解为两两不交的子空间之和,通过研究各个简单的子空间的性质,从而得出整个空间的性质。
前面讲了线性空间,舞台搭好了,轮到主角:线性映射登场了。
线性映射的定义这里就不赘述了。我们小学就学过正比例函数 \(y=kx\),这是一个最简单的一维线性映射,也是一个具体的线性映射“模型”,线性映射的所有性质对比着正比例函数来看,一切都是那么简单易懂。现在把定义域从一维升级到多维,值域也从一维升级到多维,然后正比例系数k也升级为一个矩阵,那么这个正比例函数就升级为一个线性映射了。
线性映射的核空间。这是线性映射的一个重要的概念,什么是线性映射的核空间呢?简单的说,就是映射到零的原像的集合,记作 \(KER\)。用正比例函数来类比,显然当 \(k\) 不等于 0 时,它的核是零空间,当 \(k\) 为零时,它的核空间是整个 \(R\)。有时候需要判定一个线性映射是不是单射,按照定义来还是没那么好证的,这时我们可以从它的核来判定,只要它的核是零,那么这个线性映射必然是单射。
线性映射的像。当自变量取遍整个定义域时,它的像的取值范围成为一个线性子空间,称为像空间,记作IM。
线性映射的矩阵表示。一个抽象的线性映射应如何“解析”的表达出来呢?这个表达式写出来就是一个矩阵,且这个矩阵依赖于基的选择。也就是说在不同的基下,线性映射有不同的矩阵。基有无穷个,相应的矩阵有无穷个。这就给用矩阵研究线性映射带来了麻烦。幸好我们有相似矩阵。同一个线性映射在不同的基下的矩阵是相似关系,相似不变量有秩,行列式,迹,特征值,特征多项式等。所以可以通过相似矩阵来研究线性映射的秩,行列式,迹,特征值,特征多项式等性质。线性映射的矩阵有无穷多,那么这其中有哪些是值得关注的呢?第一就是标准正交基下的矩阵了,这也是最常见的。然而一个线性映射的矩阵在标准正交基下可能特别复杂,所以需要选择一组特殊的基,让它的矩阵在这个基下有最简单的矩阵表示。如果存在这样的基,使得线性映射的矩阵为对角矩阵,则称这个线性映射可对角化。然而是不是所有线性映射都可以对角化呢,遗憾的是,并不是。那么就要问,如果一个线性映射不能对角化,那么它的最简矩阵是什么?这个问题的答案是若尔当标准型。可以证明,在复数域上,任何线性映射都存在唯一的若尔当标准型。
上面的内容从线性空间以及线性映射的脉络理解线性代数。MIT 的线性代数则是从解线性方程组入手,侧重矩阵的内容。从一开始引入线性方程组的消元,到消元矩阵,置换矩阵, \(LU\) 分解,到行最简形矩阵。考虑行最简形矩阵各种不同的情形,如何解线性方程组,尤其是无解的情况下,在列满秩的情况可通过投影解决,这里涉及到正交以及投影矩阵的概念,而列不满秩下的无解可通过更广义的伪逆解出,这里涉及到奇异值分解的概念。
方阵则是一类比较特殊的矩阵,涉及到特征值,特征向量,正交矩阵等概念,因为列满秩无解的情况下涉及 \(A^TA\) 为方阵,所以其和解线性方程组有密切地联系。
$$ \begin{aligned} 2x_1 + 3x_2 &= 8 \ x_1 - x_2 &= 1 \ \end{aligned} $$
上面的线性方程组用矩阵表示为 \(Ax = b\):
$$\begin{bmatrix} 2 & 3 \\ 1 & -1 \\\end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} = \begin{bmatrix} 8 \\ 1 \\ \end{bmatrix}$$
对线性方程组的求解有两种思路:
行视角,每一个方程代表一条直线,直线的交集即为方程组的解,其本质是把每一行看成一个基向量,然后把目标向量投影,取投影长度。
列视角,对列向量寻找合适的线性组合,得到新向量, 其本质是在标准基空间中,取对应的列向量,然后线性组合出目标向量。
$$ x_1\begin{bmatrix} 2 \ 1 \ \end{bmatrix} + x_2 \begin{bmatrix} 3 \ -1 \ \end{bmatrix} = \begin{bmatrix} 8 \ 1 \ \end{bmatrix} $$
从列视角的观点来看,线性方程组有解的条件显然是当目标向量 \(b\) 处于所有列向量张成的空间之中之时才有解。
这里涉及到矩阵的乘法,对矩阵的乘法有四种理解:
- 左乘为行变换,为行的线性组合。
- 右乘为列变换,为列的线性组合。
- 行与列点积得到单个元素, \(C_{ij} = a_i * c_j\), 元素 \(c_{ij}\) 为行 \(i\) 与 列 \(j\) 的点积。
- 列与行乘积得到矩阵。
- 分块矩阵。
其中最常用的为列视角,应时刻记住;行视角的观点主要用于用矩阵描述高斯消元法,因为高斯消元法涉及到行的组合。
对于线性方程组的求解而言,消元法是最常见的方法。高斯消元法为将系数矩阵 \(A\) 的对角线元素视为为主元(pivot),将主元下方的所有元素通过变换之后为 0,具体的操作方法为用主元之后的每一行减去主元行适当的倍数。
若系数矩阵为方阵且可逆:
我们首先讨论系数矩阵为方阵且可逆的简单情形:
每一步消元操作可按消去的元素记为 消元矩阵 \(E_{ij}\)(参考矩阵乘法的行视角), 该矩阵为初等矩阵(Elementary Matrix),为下三角矩阵。
若出现主元为 0 时,则通过行交换与下面的行进行交换,该操作可用矩阵记为 置换矩阵 \(P\), 置换矩阵 \(P^T = P^{-1}\)。如果主元 0 的下方没有对等位置为非 0 数字的行,则消元终止,说明该矩阵为不可逆矩阵,该线性方程组没有唯一解。
消元以后原矩阵 \(A\) 得到上三角阵 \(U\)(Upper-triangular matrix)。
$$\begin{bmatrix} * & * & * \\ & * & * \\ & & *\\ \end{bmatrix}$$
对于计算机而言,在进行高斯消元时,是先对系数矩阵 \(A\) 进行消元,然后对 \(b\) 进行同样的操作。手工计算时,可将 \(b\) 插入 \(A\) 最后一列同时进行操作, 该矩阵称为 增广矩阵(augmented matrix)。
通过消元,我们求解的方程经历了如下变换:
$$ Ax = b \rightarrow Ux = c $$
逆矩阵为进行抵消原操作的矩阵,其定义为如下:
如果矩阵 \(A\) 为方阵,若存在逆矩阵 \(A^{-1}\),使得 \(A^{-1}A = I = AA^{-1}\),我们称矩阵 \(A\) 可逆或者非奇异的。
消元矩阵的逆矩阵总是容易求得的,即为抵消原操作 \(E_{ij}\) 的矩阵。对于一般矩阵的逆矩阵的求法,可以使用 高斯-若尔当消元法(Gauss-Jordan Elimination),其本质是同时对多个线性方程组进行消元。
$$ E \begin{bmatrix} A | I \end{bmatrix} = \begin{bmatrix} EA | EI \end{bmatrix} = \begin{bmatrix} I | A^{-1} \end{bmatrix} $$
在不涉及行交换的情况下:
$$ EA = U \rightarrow A = LU \rightarrow A = LDU $$
从上式中可以看到矩阵的 \(LU\) 分解实际上其中的 \(L\) 矩阵就是消元矩阵 \(E\) 的逆, 该形式称之为矩阵的 LU 分解。
若涉及行交换, 则 :
$$ EPA = U \Rightarrow PA = LU (L = E^{-1}) $$
\(LU\) 形式优于 \(EA\) 的点在于可以直接写入每一步的消元系数,而没有交叉项。
原线性方程组可写为:
$$ LUx = b $$
设 \(Ux\) 为 \(y\), 则可先解出 \(y\), 然后再解出 \(x\)。
NOTE:
消元矩阵 \(E_{mm}\) 以及置换矩阵 \(P_{mm}\) 总是可逆的,实际上对矩阵左乘一个可逆矩阵就是对行进行线性组合,该操作不改变矩阵的零空间以及行空间 \(CAx = Cb \rightarrow Ax = b\)。
实际上对于任意 \(m * n\) 矩阵,其消元操作以及交换行也都可以用消元矩阵 \(E_{m*m}\) 以及置换矩阵 \(P_{m*m}\) 表示, 此时 \(EPA = U\), 这里 \(U\) 则为阶梯型矩阵
若对任意矩阵 \(A_{mn}\):
\(Ax = 0\):
系数矩阵 \(A\) 消元以后得到阶梯型矩阵 \(U\),然后进一步简化为 行最简形矩阵 \(R\) (Reduced row echelon form, rref), 其中主元列数目为 \(r\), 自由列数目为 \(n - r\)。
$$ R = \begin{bmatrix} I & F \ & \ \end{bmatrix} $$
原方程 \(Ax = 0\) 的求解变为:
$$ \begin{bmatrix} I & F \end{bmatrix} \begin{bmatrix} x_{\text{pivot}} \ x_{\text{free}} \end{bmatrix} = 0 $$
那么该方程的零空间矩阵 \(N = \begin{bmatrix} -F \\ I \end{bmatrix}\), 对自由变量其中任意一个赋值为 1, 其它赋值为 0,则可得到一个特解,这些特解的线性空间构成了其零空间。
NOTE: 在由 \(U \rightarrow R\) 的过程中一般涉及到了列的变化,其解的位置也出现了对应的变化,即在得到了零空间矩阵中也要进行对应的行变换。
关于向量空间:
向量空间是对于线性运算封闭的向量集合,并且任何向量空间一定包含零向量。 向量空间的子空间为包含于向量空间内的一个向量空间,“子空间”与“子集”的区别在于所有元素在原空间之内就可以称为子集,但是要满足对线性运算封闭的子集才能成为子空间。
关于 \(Ax = b, \space dim(A) = m * n\) 涉及到的向量空间:
- 列空间 \(C(A)\) 是其列向量线性组合所构成的空间, 为 \(R^m\) 空间中的子空间。
- 零空间 \(N(A)\) 是指满足 \(Ax = 0\) 的所有解的集合, 为 \(R^n\) 空间中的子空间。
所谓零空间是使得列的线性组合为 0 的向量空间,而所谓左零空间实际上是使得行的线性组合为 0 的向量空间,参照上面对矩阵乘法的不同理解。
至于各个子空间是哪个维度空间的子空间实际上完全取决于其向量的长度。
对于向量空间,最重要的就是其基与维数,如何找到这些子空间的基与维数就是我们需要关注的。 下面的式子给出了关于矩阵 \(A\) 四个子空间所有的信息。 $$E_{mm}A_{mn}= R = \begin{bmatrix} I_{r*r} & F_{r*(n-r)} \\ _{(m-r)*r} & _{(m-r)*(n-r)} \\ \end{bmatrix}, rank = r$$
$$R_{m*n} N_{n*(n-r)} = 0$$
\(Ax = b\):
$$ \mathbf{x}_\text{complete} = \mathbf{x}_p + \mathbf{x}_n, \text{其中} Ax_p = b, Ax_n = 0 \rightarrow A(x_p + x_n) = b $$
\(x_p\) 为将所有自由变量赋值为 0 得到的特解, \(x_n\) 为 \(Ax = 0\) 为 \(A\) 的零空间的一般向量。
总结:
从上可以看出对于在2或者4的无解情形下(表现在线性方程组中实际上就是消元以后出现了左侧为0,然而右侧不为0的方程式),我们是无法解出线性方程组的;但是实际上对于情况2 ,我们可以通过将向量 \(b\) 投影到 \(A\) 的列空间之中得出一个最优解,而对于投影则涉及到正交的概念。
对于两个 向量正交 则 \(x^Ty = y^Tx = \rightarrow ||x||^2 + ||y||^2 = ||x+y||^2\), 其中 \(||x||^2 = x^Tx\). 之前我们曾提到矩阵的四个子空间,实际上矩阵的行空间和它的零空间是互为正交补的,列空间与左零空间互为正交补。
对于情形2无解的情况,要得到最优解,我们需要将 \(b\) 投影到 \(a/A\) 的方向,下面介绍如何进行投影。
考虑 向量 \(b\) 在 \(a\) 方向上投影的向量为 \(p\),既然其在 \(a\) 的方向上,则 \(p = ax\), 那么 \(e = b - p\) 则与 \(a\) 向量正交:
$$ a^T(b-p) = 0 \rightarrow a^T(b-xa) = 0 \rightarrow a^Tax = a^Tb $$
解得 \(x = \frac{a^Tb}{a^Ta}, p = ax = a\frac{a^Tb}{a^Ta}\), 从 \(p\) 中我们可以分离出 矩阵 \(P = \frac{aa^T}{a^Ta}\), 该矩阵我们称之为 投影矩阵,它将向量 \(b\) 投影到 \(a\) 的方向。
投影矩阵 \(P\) 是一个对称矩阵。考虑右乘一个矩阵为列的线性组合,投影矩阵既然是把 \(b\) 投影到 \(a\) 的方向,其显然和 \(a\) 有相同的列空间,其秩为1。另一方面,如果做两次投影则有 \(P^2b = Pb\),因为投影一次之后再投影,显然还是在原来的位置。因此矩阵 \(P\) 有如下性质:
$$ P^2 = P, P^T = P $$
Gram-SChmidt 正交化:
单位长度为 1, 并且彼此正交的向量称之为标准正交向量。如果矩阵 \(Q\) 的列向量为标准正交向量,则 \(Q^TQ = I\) 。一个标准正交的方阵我们称之为“正交矩阵”(orthogonal matrix)。
从两个线性无关的向量 \(a\), \(b\) 开始其张成了一个空间,我们的目标就是找到一组标准正交的向量 \(q1\), \(q2\) 能张成同样的空间。Schmidt提出如果有一组正交基 \(A\), \(B\), 那么我们令它们除以自己的长度就得到标准正交基。
$$ q_1 = \frac{A}{||A||}, q_2 = \frac{B}{||B||} $$
Gram 提出了只要用向量 \(b\) 减去投影到 \(a\) 上的向量,即可得到一个与 \(a\) 垂直的向量,也就是上面提到的 \(e\) 的方向。
$$ B = \frac{aa^T}{a^Ta}b $$
如果从三个线性无关的向量 \(a, b, c\) 出发,则可以通过从 \(c\) 中减去其在 \(a, b\) 向量上的投影得到与 \(a, b\) 垂直的向量 \(C\)。
$$ C = c - \frac{aa^Tc}{a^Ta} - \frac{bb^Tc}{b^Tb} $$
施密特正交化的过程可以用矩阵运算的方式表示为 \(A = QR\), 此处 \(R\) 为上三角矩阵, 称之为 正交分解。
$$ \begin{bmatrix} a_1 & a_2 \end{bmatrix} = \begin{bmatrix} q_1 & q_2 \end{bmatrix} \begin{bmatrix} a_1^Tq_1 & a_2^Tq_1 \ a_1^Tq_2 & a_2^Tq_2 \end{bmatrix} $$
\(R\) 矩阵每个元素都是向量点积的值,而实际上点积代表的几何意义是 \(a\) 向量 在 \(q\) 向量上的投影长度与 \(q\) 的长度的乘积。如果 \(q\) 为 单位向量 则点积就是 \(a\) 在 \(q\) 方向的投影长度,如果 \(a\) 也为 单位向量,则点积就是两个向量夹角的余弦值。
结合右乘一个矩阵为列的线性组合,可以看到 \(R\) 矩阵每列的元素就是原每个 \(a\) 向量在 \(q\) 方向的投影长度,称之为权。
将 \(b\) 向量投影到 \(A\) 矩阵的列空间, 则 \(p = Ax\)
$$ A^T(b - Ax) = \rightarrow A^TAx = A^Tb $$
解得 \(x = (A^TA)^{-1}A^Tb, p = A(A^TA)^{-1}A^Tb\), 则投影矩阵 \(P = A(A^TA)^{-1}A^T → rank(P) = rank(A)\)
将向量 \(b\) 投影到列空间 \(A\) 与 投影到向量 \(a\) 的方向的一个特殊点在于,实际上 \(b\) 向量是在一个 \(m\) 空间之中,而之前提到是四个子空间,列空间与左零空间为正交补,为 \(m\) 维空间的子空间, 所以将 \(b\) 投影到 \(A\) 的列空间之中,实际是将 \(b\) 分解为两个向量,其中 \(p\) 向量在 \(A\) 列空间之中, 而 \(e\) 则在 左零空间之中,而将 \(b\) 投影到左零空间的矩阵为 \(I-P\) 为将其投影到左零空间的投影矩阵。
从 \(x\) 解的形式中,我们可以看到,用投影的方法求解线性方程组,需要 \(A^TA\) 存在逆矩阵,而其存在逆矩阵的条件就是 \(A\) 是列满秩的, 这就是该方法只能用于情形 2 无解的原因。应用投影矩阵求方程组最优解的方法,常用于“最小二乘法”拟合曲线。
方阵与线性方程组的联系在于上面提到的投影的最小二乘法涉及到矩阵 \(A^TA\),而该矩阵为对称的方阵。
以下三个性质定义了行列式:
从以上三个性质可以推导出下面七条性质:
从性质 1,2, 3 可以推出 行列式公式 (Formula for the determinant):
通过性质 3 对 \(n\) 阶矩阵进行拆分,我们可以得到所有只包含 \(n\) 个非零元素的行列式,对于二阶行列式,我们从一个拆分为两个,然后拆分为四个。对于三阶方阵,则从一个拆分成三个,然后拆分成九个,最后拆分为27个。然而,这些行列式中有很大一部分为 0。
每一个拆分出来的非 0 行列式都是在每行每列只有一个元素,就如同置换矩阵的元素分布,利用性质 3 可以将元素从行列式中提取出来,而置换矩阵的行列式值为 1, 或 -1,因此可以给出行列式公式;对于 \(n\) 阶方阵,其非 0 行列式的元素个数为 \(n!\)。
$$ det(A) = \sum_{n!}\pm{a_{1\alpha}a_{2\beta}…a_{n\omega}} $$
将上面的行列式公式把某一行的元素提取,例如 \(a_{11}, a_{12}...\), 则每个元素的系数即为 代数余子式,是一个低阶行列式的值,这个低阶行列式是由原矩阵去掉 \(a_{1j}\) 所在行和列组成的。
对矩阵中的任意元素 \(a_{ij}\) 而言,其代数余子式(cofactor) \(C_{ij}\) 就是矩阵的行列式的公式中 \(a_{ij}\) 的系数。 \(C_{ij}\) 等于原矩阵移除第 \(i\) 行,第 \(j\) 列后剩余元素组成的 \(n - 1\) 矩阵的行列式数值乘以 \((-1)^{i + j}\) 。由矩阵 \(A\) 每个元素对应的 代数余子式构成的矩阵的转置称为 伴随矩阵 —— 为什么要转置的原因是因为 \(AC^T\) , 矩阵的乘法为行乘以列, \(A\) 矩阵与 \(C^T\) 矩阵相乘正好是 \(A\) 的每个元素和其代数余子式的乘积。
对于 \(n\) 阶方阵,其 行列式的代数余子式公式 为(按第一行展开):
$$ det(A) = a_{11}C_{11} + a_{12}C_{12} + \dots + a_{1n}C_{1n} $$
然而由于实际上消元不改变行列式的值,对于行列式的求解,通过消元将矩阵转换三角矩阵一般更简单高效。
利用行列式以及其伴随矩阵,我们可以得到 逆矩阵公式 \(\mathbf{AC^T} = det(\mathbf{A})\mathbf{I}\):
$$ \mathbf{A}\mathbf{C}^T = \begin{bmatrix} a_{11} & \dots & a_{1n} \ \vdots & \ddots & \vdots \ a_{n1} & \dots & a_{nn} \end{bmatrix}\begin{bmatrix} C_{11} & \dots & C_{n1} \ \vdots & \ddots & \vdots \ C_{n1} & \dots & C_{nn} \end{bmatrix} $$
从上式中可以看到对角线上的元素就是行列式按行展开的公式,其值就是行列式 \(\lambda\), 而对于其它元素,例如第二行第一列的元素值,则相当于用 \(A\) 的第二行替代第一行得到矩阵 \(\mathbf{A}_s\) 的行列式,而由于其有两行相同所以其行列式的值为 0。
通过逆矩阵的公式,我们可以推出 克莱姆法则(Cramer’s Rule for \(\mathbf{x} = \mathbf{A^{-1}b}\)):
对于可逆矩阵 \(A\), 方程 \(\mathbf{Ax} = \mathbf{b}\) 必然有解 \(\mathbf{x} = \mathbf{A^{-1}b}\) ,将逆矩阵的公式代入其中有: \(\mathbf{x} = \mathbf{A^{-1}b} = \frac{\mathbf{C^T b}}{det(\mathbf{A})}\) 。
将 \(C^T\) 每一行视为一个行向量 \(\mathbf{c}_j\) ,观测该式子可以看到: \(\mathbf{x}\) 的每个分量 \(x_j = \frac{\mathbf{c}_j\mathbf{b}}{det(\mathbf{A})}\)。而 \(\mathbf{c}_j\) 实际上是 \(A\) 矩阵第 \(j\) 列的代数余子式,所以 \(\mathbf{c}_j\mathbf{b}\) 可以视为将 \(A\) 的第 \(j\) 列替换为 \(b\) 得到 \(B_j\) ,然后按该列展开得到的 \(B_j\) 行列式的值; 所以 \(\mathbf{x_j} = \frac{det(\mathbf{B}_j)}{det(\mathbf{A})}\)。
最后,行列式在几何上代表了该矩阵向量构成的平行六面体的体积。
将左乘一个矩阵看作对向量的变换,那么,如果一个变换不改变向量 \(x\) 的方向该向量称为 特征向量,那么有:
$$ A\mathbf{x} = \lambda \mathbf{x} $$
上式的含义就是一个矩阵操作,只对一个向量进行放缩,如果上式存在非零解,那么:
$$ det(A- \lambda I) = 0 $$
对于任意的 \(n \cdot n\) 矩阵,其具有 \(n\) 个特征值(可能存在重复的特征值),其和等于矩阵对角线元素之和,称为迹。其乘积等于矩阵的行列式。
对于对称矩阵而言,其永远具有实数的特征值,并且其特征向量正交;而对于反对称矩阵而言,具有纯虚数的特征值。
如果矩阵没有重特征值,那么其一定有 \(n\) 个线性无关的特征向量;如果有重特征值,那么它可能有 \(n\) 个线性无关的特征向量,也可能没有, 这就是所谓的代数重数大于几何重数。
矩阵对角分解:如果矩阵 \(A\) 具有 \(n\) 个线性无关的的特征向量,将它们作为列向量可以组成一个可逆方阵 \(S\), 并且有:
$$\begin{aligned} A\mathbf{S} &= A \begin{bmatrix} \mathbf{x}_1 & \mathbf{x}_2 & \dots & \mathbf{x}_n \end{bmatrix} \\ &= \begin{bmatrix} \lambda_1\mathbf{x}_1 & \lambda_2\mathbf{x}_2 & \dots & \lambda_n\mathbf{x}_n \end{bmatrix}\\ & = \mathbf{S}\begin{bmatrix} \lambda_1 & & \dots & \\ & \lambda_2 & & \\ \vdots & & \ddots & \vdots \\ & \dots & & \lambda_n \end{bmatrix} \\ &= \mathbf{S} \Lambda \end{aligned}$$
那么有:
$$A = S \Lambda S^{-1}$$
特征值给矩阵的幂计算提供了方法:
如果 \(A\mathbf{x} = \lambda\mathbf{x}\), 则有 \(A^2\mathbf{x} = \lambda A\mathbf{x} = \lambda^2\mathbf{x}\), 说明矩阵 \(A^2\) 有着和 \(A\) 一样的特征向量,而特征值为 \(\lambda^2\)。写成对角化的形式则有: \(A^2 = S\Lambda S^{-1} S\Lambda S^{-1}\)。同样的处理可以得到 \(A^{k} = S\Lambda^{k}S^{-1}\)。这说明 \(A^k\) 和 \(A\) 有相同的特征向量,而特征值为 \(\lambda^{k}\)。
对称矩阵的特征值为实数且有一套正交的特征向量;
如果 \(A\) 具有 \(n\) 个线性无关的特征向量,则可以对角化得到 \(A = S\Lambda S^{-1}\) 。而对于对称矩阵有: \(A = Q\Lambda Q^{-1} = Q\Lambda Q^{T}\) , 该分解也叫做 “谱定理” 。
对称矩阵具有下面两个性质:
具有实数的特征值(包括共轭对称复矩阵)。
主元的符号与特征值符号匹配。
性质 2 可以用惯性定理证明:
惯性定理: 若存在可逆矩阵 \(C\) 满足 \(A = CBC^{T}\) , 称 \(A\) 与 \(B\) 合同,惯性定理指矩阵的特征值符号经过合同变换后不发生变化。 对称矩阵 \(A\) 经过消元以后 \(A = LDL^{T}\), 而经过对角化处理得到 \(A = Q\Lambda Q^T\), 两者比较可知 \(D = (L^{-1}Q)\Lambda (L^{-1}Q)^T\), 因此两个对角阵为合同矩阵,主元和特征值符号匹配。
正定矩阵 \(A\) 是对称矩阵中的特例,是关于二次多项式的线性代数表达,其定义如下:
$$ \mathbf{x}^T A \mathbf{x} > 0 \space (x \neq 0) $$
有三个途径判断一个对称矩阵是否为正定矩阵:
对于二次型我们可以用配方的方法来验证其是否具有最小值:
$$ f(x, y) = 2x^2 + 12xy + 2y^2 = 2(x + 3y)^2 + 2y^2 $$
配方实际上就是消元:
$$ \begin{bmatrix} 2 & 6 \ 6 & 2 \end{bmatrix} = \begin{bmatrix} 1 & \ 3 & 1 \end{bmatrix} \begin{bmatrix} 2 & 6 \ & 2 \end{bmatrix} $$
其中主元就是平方项的系数, \(L\) 矩阵中的行操作数就是配方项内 \(y\) 的系数。
若 \(A\) 与 \(B\) 均为 \(n * n\) 方阵,若存在可逆方阵 \(M\) 使得 \(B = M^{-1}AM\), 则 \(A\) 与 \(B\) 为 相似矩阵。相似矩阵实际上是一系列特征值相同的矩阵。
若矩阵 \(A\) 具有 \(n\) 个线性无关的特征向量,则可以对角化得到 \(S^{-1}AS = \Lambda\),则 \(A\) 相似于 \(\Lambda\), 是其最简洁的形式。
若矩阵 \(A\) 具有重特征值,则可能无法进行对角化,这时候可以找到其近似对角化的形式的相似矩阵,称之为“若尔当标准形”。
将矩阵 \(A\) 视为线性变换操作, 那么 \(Av = u\) 就是将矩阵行空间的向量经过变换以后成为列空间的一个向量。奇异值分解(Singular value decomposition)就是在行空间中寻找一组正交基 \(\mathbf{v}\),在经过线性变换仍然为在列空间的一组正交基 \(\mathbf{u}\)。
$$ Av_i = \sigma_i u_i $$
用矩阵语言描述这一过程就是:
$$ \begin{aligned} A \begin{bmatrix} \mathbf{v}_1 & \mathbf{v}_2 & \dots & \mathbf{v}_r \end{bmatrix} &= \begin{bmatrix} \sigma_1\mathbf{u}_1 & \sigma_2\mathbf{u}_2 & \dots & \sigma_r\mathbf{u}_r \end{bmatrix} \ &= \begin{bmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \dots & \mathbf{u}_r \end{bmatrix} \begin{bmatrix} \sigma_1 & & & \ & \sigma_2 & & \ & & \ddots & \ & & & \sigma_r \ \end{bmatrix} \end{aligned} $$
如果加入零空间的部分,等式就变为了 \(\mathbf{AV} = \mathbf{U\Sigma}\)。其中零空间对应的正交基 \(\mathbf{v}_{r+1} \dots \mathbf{v}_n\),经过线性变换以后得到 \(A\mathbf{v}= 0\),对应矩阵 \(\Sigma\) 中对角线最后的特征之 \(\sigma_{r+1} = \sigma_{r+2} = \dots = 0\)。在等式 \(AV = U\Sigma\) 两侧右乘 \(V^{-1}\) 得到 \(A = U\Sigma V^{-1} = U\Sigma V^{T}\) 。
为了得到这两个正交矩阵,考虑首先解决其中的一个,在等式 $$ A = U \Sigma V^\top $$
两侧分别乘上等式
$$ A^\top = V \Sigma^\top U^\top $$
两侧的项: $$ \begin{aligned} A^\top A &= V \Sigma^\top U^\top U \Sigma V^\top \ &= V \Sigma^\top \Sigma V^\top \ &= V \begin{bmatrix} \sigma_1^2 & & \ & \sigma_2^2 & \ & & \ddots \end{bmatrix} V^\top \end{aligned} $$
上式是正定矩阵 \(A^\top A\) 的正交分解, \(V\) 的列向量 \(\{v_i\}\) 就是矩阵 \(A^\top A\) 的特征向量, \(\sigma_i^2\) 就是矩阵 \(A^\top A\) 的特征值,奇异值 \(\sigma_i\) 要取正平方根。用同样的办法也可以求得 \(U\),它的列向量就是矩阵 \(A A^\top\) 的特征向量,但是考虑到特征向量方向的问题,常见的做法是求出 \(V\) 以后带入原式求出 \(U\)。
前面在提到矩阵消元的行最简时候,我们提到过对于情形2无解的情况我们可以通过投影给出一个最优解,但是对于情形 4 无解的情况并没有提到如何解决,而伪逆给出了任何情形下的最优解。
左逆,右逆,伪逆:
性质 | 左逆 | 右逆 | 伪逆 |
---|---|---|---|
存在条件 | A列满秩( \(m ≥ n\) ) | A行满秩( \(m ≤ n\)) | 任意矩阵 |
唯一性 | 不唯一(除非 \(m = n\) ) | 不唯一(除非 \(m = n\) ) | 唯一 |
构造公式 | \((A^TA)^{-1}A^T\) | \(A^T(AA^T)^{-1}\) | \(V\Sigma^+U^T\) |
应用场景 | 超定方程组的最小二乘解 | 欠定方程组的最小范数解 | 广义解、秩亏问题 |
基变换是视角的转化,而线性变换则是对空间本身的网格变换,例如放缩,平移,旋转。
矩阵本身无法提供其是作为线性变换还是基变换的信息,基变换由线性变换表示,因此可以说基变换是线性变换的特例。
仅凭矩阵和乘法操作 (如 \(Av\) ), 无法直接判断其是线性变换还是基变换 ,因为它们的数学形式可能完全相同。例如:
如果 \(A\) 是一个旋转矩阵,则 \(Av\) 表示对向量 v 进行旋转(线性变换)。
如果 \(A\) 是基变换矩阵(如从基 \(B\) 到基 \(C\) 的过渡矩阵),则 \(A[v]_B\) 表示将 v 的坐标从基 \(B\) 转换到基 \(C\)(基变换)。
区分的关键在于语境和构造
基变换矩阵的特性 :
一般线性变换矩阵的特性 :
对于一个矩阵具体的作用,在不同情形下可能有不同的理解。
\(LU\) 分解将矩阵分解为一个下三角以及上三角矩阵乘积;实际上,对于线性方程组进行高斯消元时,在不设计行交换时,每一次的行变换都可以用一个下三角矩阵表示,那么其乘积以及逆都是下三角矩阵 \(L\),该下三角矩阵,的每一个系数记录了每次操作的消元系数。
$$\begin{bmatrix} 1 & & \\ a_{21} & 1 & \\ a_{31} & a_{32} & 1 \\ \end{bmatrix}$$
如上矩阵表示在对一列进行消元时,进行的操作 \(r_2 = r_2 + a_{21}r_1\) , \(r_3 = a_{31}r_1\) ;在第二列进行消元时, \(r_3 = a_{32}r_2\) 。
考虑方阵 \(A\) , \(A\) 代表了一个空间变换,空间的变换只对该矩阵的特征向量起到缩放作用。那么 \(A\) 所代表的空间变换,我们可以考虑先把向量 \(x\) 转化为用矩阵 \(A\) 的特征向量构成的基底表示,即 \(Q^{-1}x\) ,其中 \(Q\) 为方阵 \(A\) 的特征向量构成的矩阵(为什么是 \(Q^{-1}\) 而不是 \(Q\) ?因为特征向量是从原矩阵求解而来,它们都是在同一视角下的表示,要变化到特征向量的视角则是其逆 \(Q^{-1}\) )。那么矩阵 \(A\) 对这个新的 \(x\) ,即 \(Q^{-1}x\) 的作用就仅仅是缩放(在每个维度上进行缩放),这个缩放用一个新的矩阵 \(\Sigma\) 表示,其为对角矩阵,对角线上即是对应的特征值,那么现在整个变化记为 \(\Sigma\) \(Q^{-1}x\) 。完成变化后,我们回到原来的基的视角,即左乘 \(Q\) ,整个变化即如下:
$$Ax = Q\Sigma{Q^{-1}}{x} \longrightarrow A = Q\Sigma{Q^{-1}}$$
考虑向量 \(\begin{bmatrix} V_1 & V_2 \end{bmatrix}\) ,其为一组正交的向量,如果其在经历空间变换 \(M\) 以后仍然映射为一组正交的向量 \(\begin{bmatrix} U_1 & U_2 \end{bmatrix}\) 。那么,我们直接在向量 \(\begin{bmatrix} U_1 & U_2 \end{bmatrix}\) 的方向上选择一组基 \(\begin{bmatrix} u_1 & u_2 \end{bmatrix}\) ,那么向量 \(\begin{bmatrix} v_1 & v_2 \end{bmatrix}\) ,在经历空间变化以后,在基 \(\begin{bmatrix} u_1 & u_2 \end{bmatrix}\) 上的表示为, \(\begin{bmatrix} u_1 & u_2 \end{bmatrix} * \begin{bmatrix} \sigma_1 & \\ & \sigma_2 \end{bmatrix}\) 。即:
$$M[v_1, v_2] = [u_1, u_2] * \begin{bmatrix} \sigma_1 & \\ & \sigma_2 \end{bmatrix} \rightarrow MV = U\Sigma \rightarrow M = U\Sigma V^T$$
如此,对于奇异值分解,我们有如下的直观理解:对于矩阵 \(M\) ,其对一组向量 \(V\) 在变换以后仍然为正交的向量。在进行变换的时候考虑直接转换到向量 \(V\) 的视角之下,然后进行缩放 \(\Sigma\) ,以及其它变换 \(E\) (旋转,投影),最后变换回原来的视角。即:
$$M = VE\Sigma V^T \rightarrow M = U\Sigma V^T$$
可以看到奇异值与特征值分解的区别在于,选择的视角不同。当选择特征向量视角时,变换只会有缩放即 \(\Sigma\) 变换,当选择任意的正交向量视角时,变换不仅包含缩放还含有旋转以及投影等即 \(E\Sigma\) 。
需要注意的是,虽然对于特征分解以及奇异值分解从视角转换的角度去解释了。但是,矩阵分解同样可以从空间变换的角度理解。例如对于奇异值分解有如下解释:
第一个变换 \(V^{T}\) 将单位正交向量 \(v_1, v_2\) 转到水平和垂直方向、 \(\Sigma\) 相当于对 \(v_1, v_2\) 进行放缩、 \(U\) 将放缩后的向量旋转到最后的位置。