线性代数的本质
\[ \newcommand{\vec}{\mathbf} \newcommand{\eps}{\varepsilon} \]
学习自 3b1b 线性代数的本质,感谢大佬
向量
可看做点,这里统一竖着写(列向量)。
矩阵
表达一种一种线性变换,这里我们统一将向量竖着写,向量左乘一个矩阵即应用一个变换。
矩阵中一列的意义是:一个基向量变换后的新位置,因为是线性变换,我们只需要指定变换后的基向量,写入矩阵即可构建一个这样的变换矩阵。
对空间中一点变换时,可以直接将基向量代换掉,即可计算向量变换后的位置。
非方阵
非方阵同样代表着线性变换,但它还涉及维数的改变。
非方阵中的列同样代表着变换后的新基向量位置,但这些新的基向量可能少维或者多维。
回忆矩阵乘法中,\(n\times m\) 的矩阵只能和 \(m\) 维的向量相乘,它将 \(m\) 维向量的每个基代换为一个新的 \(n\) 维向量(系数不变),这样得到的新向量便从 \(m\) 维变到了 \(n\) 维。
\(n\times m\) 的矩阵将 \(m\) 维标准基向量变换为了 \(m\) 个 \(n\) 维向量,这 \(m\) 个 \(n\) 维向量也许会平行或重合,变换后空间的实际维度(矩阵的秩)等于这 \(m\) 个向量的极大线性无关组中向量的个数。
行列式
等于相应矩阵对应的变换下,空间内任意物体缩放的比例。若行列式为负,则空间发生翻转,行列式为0,则变换将压缩至少一个维度。
我们已经知道,将矩阵看做线性变换后,其每一列都可以看做一个基向量变换后的位置。故矩阵对应行列式的值,即该矩阵各列向量拼出来的空间大小(二维的平行四边形面积,三维的平行六面体体积等)。
矩阵的秩
按此矩阵变换后,空间的维度,不降维的变换矩阵(必须是方阵)满秩。
矩阵的迹
迹表示矩阵的特征值之和 \(tr(\vec A) = \sum \lambda_i\),它恰恰等于矩阵对角线元素之和(这是为什么?)
特征值之和在特定问题下有特定的意义。总之,迹是特征值之和,因此它也具有相似不变性。
矩阵的迹有循环等价性,\(tr(\vec A\vec B) = tr(\vec B\vec A)\),随便写一个矩阵看一下,会发现对角线元素是同样的。
逆矩阵
显然,只有不降维(满秩)的变换才可逆。
非奇异 = 满秩 = 可逆,这些概念都是在方阵中才有效。
线性方程组
线性方程组可以看做对一个由未知量组成的向量 \(\vec x\),施加以变换矩阵 \(\vec A\) 后得到一个已知向量 \(\vec y\),即 \(\vec A\vec x=\vec y\)。如果这个矩阵可逆,则可以反推出所有未知量,否则要么无解(变换降维了,\(\vec y\) 在变化后的维度之外),要么有无穷多解(\(\vec y\) 恰好在变换后的维度之内)。
列空间
即变换后的空间,叫列空间即矩阵每一列(变换后每个基)的张成空间。秩精确定义为列空间的维数。\(\vec y\) 在列空间内,方程才有解。
零空间
使 \(\vec A\vec x=0\) 成立的 \(\vec x\) 的集合,即变换后会变为零向量的向量集,对于满秩矩阵,零空间中只有零向量。
初等变换
初等变换指的是三种变换:
- 将矩阵的某一行/列加到另一行/列
- 某一行/列乘以 \(k\) 倍
- 交换某一行/列
这三种变换都可以用另一个初等矩阵表示: $$ ,
,
$$ 初等矩阵的逆矩阵就等价于直观理解上的逆变换,所有线性变换都可以表示成这三种的组合。
初等矩阵的组合非常容易,因为每乘一个初等矩阵,都相当于做了一次初等变换。
点积
点积在数值上等于两个向量对应位相乘之和,几何上等于一个向量投影到另一个向量上之后模相乘。
这两者可以得以联系,是因为可以将点积的两个向量,一个看做向量 \([a,b]^T\),另一个转置后看做线性变换 \([x, y]\)。这个显然这是一个将二维降至一维的线性变换,它的含义恰恰就是将向量投影到一维空间。
更进一步,我们会发现每一种二维到一维的线性变换都与一个某个向量一一对应(转置即可)。应用此变换等价于与该向量点乘。
叉积
通常在三维空间下讨论叉积,我们都知道的是:两个向量叉积得到一个与它们都垂直的向量,模长等于两向量张成的平行四边形面积,方向取决于右手定则,叉积公式即将 \(i,j,k\) 与两向量放入一个行列式。
叉积的几何意义很明朗,但问题在于为什么计算会和行列式相关。
考虑三个向量 \(u,v,m\),把它们放入一个三阶行列式,结果显然为张成的平行六面体体积。
如果我们固定其中两个,任选第三个,这就相当于是一个变换函数,输入向量 \([x,y,z]^T\),得到一个标量输出: \[ f\begin{pmatrix} x\\ y\\ z\\ \end{pmatrix}= \begin{vmatrix} x,v_1,m_1\\ y,v_2,m_2\\ z,v_3,m_3 \end{vmatrix} \] 可以证明,这同样是一个三维到一维的线性变换。既然是线性变换,可以表示为矩阵 \(P\times [x,y,z]^T\),其中 \(P\) 为1x3的降维变换矩阵。
根据点积中提到的对偶性,这个变换等价于 \(P^T\cdot [x,y,z]^T\)
什么样的 \(P^T\) 点乘任意一个向量,都能得到它与 \(v,m\) 组成的平行六面体体积?
画图,根据点积的投影计算方式,容易发现,\(P^T\) 模长为 \(v,m\) 平行四边形面积,方向与它们都垂直,正是我们需要叉积结果。
那么要计算这个 \(P^T\),可以用一点运算小技巧,取 \((x,y,z)\) 为单位向量,并且把它们的方向 \((i,j,k)\) 写出来,就能化标量为矢量了。 \[ P^T\cdot [i,j,k]^T= \begin{vmatrix} i,v_1,m_1\\ j,v_2,m_2\\ k,v_3,m_3 \end{vmatrix} \]
基变换
基变换的逻辑容易理解,但方向很容易搞反,关键在于弄清向量的实际位置是否改变。
如:坐标系 \(A\) 的基向量为 \([0,1],[1,0]\),坐标系 \(B\) 的基向量为 \(b1,b2\),根据之前的知识,我们可以将其看做变换矩阵 \([b1,b2]\),让向量乘上这个矩阵,即进行等同于 \(B\) 的变换,向量的实际位置无疑改变了,变换后相对于 \(B\) 的位移,即变换前相对于 \(A\) 的位移。这个矩阵可以进行局部坐标-全局坐标的转换。
其他情况下,我们知道了向量在 \(A\) 坐标系下的表示,希望知道这个向量在 \(B\) 下的表示如何(而非变换向量本身),其实就是上述过程的逆,让向量乘上 上述矩阵逆矩阵即可
相似矩阵
相似矩阵实际上表达的是相同的变换,只不过在不同的坐标系下表示。
理解相似矩阵实际上对空间的变换是一样的,我们就能轻易得出:
- 相似矩阵具有相同的秩和行列式
- 相似矩阵具有相同的特征值,特征向量其实也是同样的向量,只不过在不同的坐标系下表示。
特征值/特征向量
按 \(n\) 维方阵 \(\vec A\) 进行变换后,会发现有些向量只是缩放,并没有离开原来的直线 \[ \begin{gather*} \vec A\vec x = \lambda \vec x \\ (\vec A - \lambda\vec I) \vec x = 0 \end{gather*} \] 这些向量 \(\vec x\) 便是矩阵 \(\vec A\) 的特征向量,其缩放比例 \(\lambda\) 即为对应的特征值,第二行即为特征方程。
要使特征方程有解,需要 \(det(\vec A - \lambda\vec I) = 0\),此时零空间 \(null(\vec A - \lambda\vec I)\) 即为 \(\lambda\) 对应的特征向量 \(\vec x\) 的范围。可以看出特征向量个数是无限的,但线性无关的特征向量是有限的,等于零空间的维度。
从代数基本定理上来说,特征方程 \(det(\vec A - \lambda\vec I) = 0\) 一定有 \(n\) 个\(\lambda\) 的解(包括重根和复根),我们暂不考虑复根的情况。那么对于任意一个解 \(\lambda_i\),假设它是 \(k\) 重根,我们就说它的代数重数为 \(k\);对应线性无关的特征向量个数为几何重数 \(dim(null(\vec A - \lambda_i\vec I))\)。
几何重数不会超过代数重数;对于任意方阵 \(\vec A\),它一定有 \(n\) 个特征值,至多有 \(n\) 个线性无关的特征向量。
需要注意的是,矩阵有几个线性无关的特征向量,与矩阵是否降维并无关联;例如最简单的三维旋转矩阵,就只有(沿轴的)特征向量;而零矩阵有一个 \(n\) 重特征值0,但所有向量都是特征向量,自然有 \(n\) 个线性无关的。
我们知道,矩阵是一种线性变换,在这种变换下,最大特征值对应变换速率最大的方向(可以想象一个单位球随着矩阵变换为一个椭圆),同理最小特征值对应变换速率最小(可能为负)的方向。
相似对角化(特征分解)
指矩阵 \(A\) 能够相似与一个对角矩阵 \(B\),在求幂时有意义:\(A^m = PB^mP^{-1}\),转化为对角矩阵的求幂。
矩阵可相似对角化的充要条件是,矩阵有 \(n\) 个线性无关的特征向量。
我们知道相似矩阵实际上表达的是相同的变换,那么如果直接把 \(A\) 的特征向量构成的基作为新坐标系的话——
相似矩阵的特征向量一定都在坐标轴上!也就是说相似矩阵一定是对角矩阵了。
二次型
一个每项均为二次项的多元多项式(称为二次型)可以写为 \(f(x_1,x_2..x_n)=x^TAx\),对于原式中的项 \(kx_ix_j\),有 \(A_{i,j} = A_{j,i} = \frac{k}{2}\)(对角线除外),也即 \(A\) 是二次型唯一对应的实对称矩阵。
由于实对称矩阵的特征向量彼此正交,\(A\) 一定可相似对角化,那么 \[ \begin{align*} x^TAx &= x^TQBQ^{-1}x\\ &= x^TQBQ^Tx \\ &= (Q^Tx)^TB(Q^Tx) \end{align*} \] 其中 \(Q\) 是 \(A\) 的特征基,为正交矩阵,\(B\) 为对角矩阵
也就是可以利用 \(y = Q^Tx\) 这个变化,将其变成一个标准型(只含有平方项的二次型)。
几何意义上:以三维空间为例,若 \(A\) 是一个对角矩阵,则这个标准型可写作 \(d_1x^2+d_2y^2+d_3z^3 = 1\),它可以轻松地定义三维空间中的一个圆锥曲面(注意并非单位球按照 \(A\) 直接变换得到的椭圆);同样的,二次型也可以定义曲面,是相应标准型施加了变换 \(Q^{-1}\) 的效果。
当标准型的所有系数均大于0时,这是一个椭圆;当有系数小于0时,这是一个双曲面或者别的什么奇特曲面;正交变换 \(Q\) 不会改变他们的形状,这样的能描述椭圆的二次型对应的实对称矩阵A称为正定矩阵。
正定矩阵
正定矩阵的定义是:对于任意非零向量 \(\vec x\),有 \(\vec x^T\vec A\vec x >0\)。
从二次型的角度来理解,它是描述椭圆的;从定义式的角度理解,任意向量 \(\vec x\) 经过正定矩阵对应的变化后,与 \(\vec x\) 的点乘仍然大于0(即仍然处于 \(\vec x\) 指向的半无限空间内)。半正定矩阵即将条件改为 \(\ge\)
正定矩阵的特征值都大于0,行列式大于0。
一个正定矩阵判定的充分条件是:每一行(或列)的对角元素都大于这一行(或列)的其他元素之和(对角占优)。
协方差矩阵
这个东西在很多地方都有应用,因此也在这里提及
协方差表达了两个随机变量的线性相关性,\(Cov(X,Y)=E((X-\overline X)(Y-\overline Y))\)
协方差可以为正或者负,两变量线性不相关时,协方差为0(注意不相关不等于独立,它们还可以有非线性的相关性)
协方差矩阵,即对于 \(n\) 个随机变量 \(X_1,..X_n\),\(\vec C_{i,j} = Cov(X_i, X_j)\),包含了所有随机变量的两两协方差,显然,协方差矩阵是一个实对称矩阵,它的特征向量彼此正交。
协方差矩阵的特征值和特征向量有重要的几何意义,考虑 \(m\) 个 \(n\) 维样本(每一维对应一个随机变量 \(X_i\))构成 \(m\times n\) 的样本矩阵 \(\vec A\),不失一般性地,假设所有样本均值为0。
于是 \(\vec C = \frac{1}{m} \vec A^T\vec A\),考虑它的特征向量: \[ \begin{gather*} \vec Cx = \lambda x \\ \vec A^T \vec A x = m \lambda x \\ (\vec Ax)^T(\vec Ax) = m\lambda x^Tx = m\lambda \end{gather*} \] \(\vec Ax\) 实际上是所有样本点与 \(x\) 作点乘,\((\vec Ax)^T(\vec Ax)\) 表示所有点在 \(x\) 方向的投影的平方之和,也就是在 \(x\) 方向上的方差。
结论:协方差矩阵的最大特征值对应的特征向量即为点集分布方差最大的方向(点云朝向);最小的方向即为法向。