################################################## 线性代数总结 ################################################## 线性空间 ==================================== **线性空间:** 也称之为向量空间,可以简单认为是附加了加法和数量乘法运算的世界(不严谨)。 **基底:** 线性空间中作为基准的一组向量叫做基底。 沿着各个基准向量走的步数叫做坐标。 作为基底的向量称为 **基向量**。 "可逆性"、"秩"、"特征值"等概念,都与基底的选择无关。 **构成基底的条件:** 只有当以下两个条件同时满足时,一组向量 :math:`(\vec{e}_1,\cdots,\vec{e}_n)` 才能称为基底。 1. (当前空间中的)任何向量 :math:`\vec{v}` 都可以表示成 .. math:: \vec{v} = x_1\vec{e}_1 + \cdots + x_n\vec{e}_n 的形式( :math:`(x_1,\cdots,x_n)` 为任意数) 2. 并且这种表示方法是唯一的。 对于给定的向量 :math:`(\vec{e}_1,\cdots,\vec{e}_n)` ,我们将可以用数 :math:`\mu_1,\cdots,\mu_n` 表示出来的向量 :math:`\mu_1\vec{e}_1+\cdots+\mu_n\vec{e}_n` 称为 :math:`(\vec{e}_1,\cdots,\vec{e}_n)` 的 **线性组合** 。 有了线性组合的概念之后,我们就可以说: 若任意向量 :math:`\vec{x}` 都可以用 :math:`(\vec{e}_1,\cdots,\vec{e}_n)` 的线性组合来表示,且表示方法唯一, 则 :math:`(\vec{e}_1,\cdots,\vec{e}_n)` 称为基底。 矩阵 ==================================== **矩阵就是映射:** .. important:: 矩阵可以看做是是两个空间的映射! 把一个向量从一个空间映射到另一个空间。 - 矩阵与向量的乘积是向量 - 矩阵的列数(宽度)为 "输入" 向量的维数,行数(高度)为"输出"向量的维数 - 计算时,就好比把输入的列向量放倒然后将对应的元素分别相乘。 - 矩阵的行数就是新空间的维数,矩阵的列数就是原来空间的维数。 - 每一列代表原空间对应维度的基向量映射到新空间的位置。 总而言之,m x n矩阵 :math:`\mathbf{A}` 表示从n空间到m维空间的一个映射。 形象的说, :math:`\mathbf{A}` 的第i列就是原空间 :math:`\mathbf{e_i}` 到达的终点。 .. tip:: 矩阵是一种(映射)操作,就类似 :math:`f(\vec{x})` 的f,所以当矩阵对向量进行操作时, 写成 :math:`\mathbf{A}\vec{x}` ,矩阵 :math:`\mathbf{A}` 写在向量前面 对于矩阵 :math:`\mathbf{A}` ,如果 :math:`\mathbf{x}+\mathbf{y}=\mathbf{z}` 成立, 那么 :math:`\mathbf{Ax}+\mathbf{Ay}=\mathbf{Az}` 也成立; 同样,若 :math:`c\mathbf{x}=\mathbf{y}` 成立,则 :math:`c(\mathbf{Ax}) = \mathbf{Ay}` 也成立。 总而言之,矩阵就是一种 **表示"平直"关系的便利手段** .. tip:: 一般来讲,满足 :math:`\mathbf{f(x+y)=f(x)+f(y)}` 以及 :math:`\mathbf{f}(c\mathbf{x})=c\mathbf{f(x)}` 的映射 :math:`\mathbf{f}`,称为 **线性映射** (其中 :math:`\mathbf{x,y}` )为维数相同的向量, c是常数,:math:`\mathbf{f(x)}` 的值是向量)。 乘以矩阵 :math:`\mathbf{A}` 的运算就是线性映射;反过来,任意线性映射 :math:`\mathbf{f}` 一定可以改写成 "乘以某矩阵" 的形式。 形象的说,矩阵就是用坐标来表示的线性映射。 .. topic:: 映射相同则矩阵相同 对于行数列数都相等的矩阵A、B,如果 :math:`A\mathbf{x}=B\mathbf{x}` 对于任意向量 :math:`\mathbf{x}` 都成立, 则 A=B。 **矩阵的乘积=映射的合成:** 简而言之,"先A后B"便是BA,写成式子就是 .. math:: (BA)\mathbf(x) = B(A\mathbf{x}) 多个矩阵的情况: .. math:: D(C(BA)) = D((CB)A) = (D(CB))A = ((DC)B)A = (DC)(BA) 无论括号怎么加,最后结果都是一样的。因此,我们可以不加任何括号,都直接写成 *DCBA* 的样子。 **零矩阵:** 所有元素是0的矩阵称为 **零矩阵** 。零矩阵表示的映射是将所有的点都映射到原点的映射。 :math:`A \neq O \text{且} B \neq O` 的情况下,也有可能得到 BA=O。例如: .. math:: A= \left ( \begin{matrix} 1 & 0 \\ 0 & 0 \\ \end{matrix} \right ) , B = \left ( \begin{matrix} 0 & 1 \\ 0 & 1 \\ \end{matrix} \right ) BA = O **单位矩阵** **方阵** 中,如果除了 "\\" 方向的对角元素是1,其余元素都是0,则该矩阵称为 **单位矩阵** ,记为 *I* 。 .. tip:: 单位矩阵表示的映射是 "什么都不做" 的映射。 **对角矩阵** **方阵** 中,"\\\" 方向的对角线上的值称为 "对角元素" 。非对角元素全为0的矩阵称为 **对角矩阵** 。 .. tip:: 对角矩阵表示的映射是 "沿着坐标轴伸缩" ,其中对角元素的值就是各轴伸缩的倍率。 对角线元素是0的情况,表示这个维度(轴)被 "压扁" 了。 对角线元素是负数的情况,表示反向拉伸。 另外,单位矩阵是对角矩阵的一种。 矩阵的运算 ================================= - -A = (-1)A - A - B = A + (-B) - 2A + 3B = (2A) + (3B) - c(A)x = c(Ax) = A(cx) - (A + B)x = Ax + Bx - A + B = B + A - (A + B) + C = A +(B + C) - (a+b)A = aA + bA - A(B+C) = AB + AC **矩阵的乘方=映射的迭代:** .. math:: AA = A^2, \ AAA=A^3, \cdots .. important:: AB 和 BA 是不相等的。 .. topic:: :math:`A^0` 是什么? 规定,:math:`A^0=I` ,其中 I 是单位矩阵。 逆矩阵=逆映射 ================================= 对于 **方阵A** ,它的逆映射对应的矩阵称之为A的 **逆矩阵** ,记为 :math:`A^{-1}` 。**不是所有方阵都存在逆矩阵** 。 .. note:: 非方阵,没有定义逆矩阵。 **基本性质** - :math:`(A^{-1})^{-1} = A` - :math:`(AB)^{-1} = B^{-1}A^{-1}` - :math:`(A^k)^{-1} = (A^{-1})^k` **对角矩阵的情况** .. math:: A= diag(a_1,\cdots,a_n) A^{-1} = diag(1/a_1,\cdots,1/a_n) 注意,对角矩阵中,只要有一个元素为0,则不存在逆矩阵。 行列式=体积扩大率 ================================= **行列式可以看做是,原空间的基向量围成的图形,经过方阵A的变换后,体积扩大率,** 记作 det A=c 。 .. tip:: 不难理解,行列式 det A = 0 ,表示被压缩了,信息有丢失,这样的矩阵A不存在逆矩阵。 非方阵,没有行列式的定义。 **行列式的性质** .. math:: det I = 1 det (AB) = (detA) (detB) det(A^T) = det A