提出正确的问题比回答它更困难。
—格奥尔格‧康托尔
逆矩阵
-
线性代数能用来描述对空间的操纵,这对计算机图形学和机器人学很有用。但是线性代数在几乎所有技术领域中都有所体现,并被广泛应用的一个主要原因是,它能帮助我们求解特定的方程组
-
当我说 “方程组” 时,我是在说你有一系列未知量和一系列与之相关的方程
-
大部分情况下,这些方程会显得非常复杂,但如果你幸运的话,它们可能具有一个特定的形式
-
在每一个方程中,所有的未知量只具有常系数,这些未知量之间只进行加和,也就是说没有幂次,没有奇怪的函数,没有未知量间的乘积等等
-
要整理这一特定的方程组,一个典型的方法是,将未知量放在等号左边,剩余的常数项放在等号右边
-
并且将同一个未知量竖直对齐也是极好的,要做到这一点,可能需要在某个未知量不出现时添加0这个系数
-
这就被称为 “线性方程组”
-
这和矩阵向量乘法非常相似。实际上,可以将所有的方程合并为一个向量方程,这个方程有一个包含所有常数系数的矩阵,一个包含所有未知量的向量,以及它们乘积所得到的一个常数向量
-
我们称系数矩阵为A,包含未知量的向量为粗体的x,右侧的常数向量为v。这不仅仅是将方程组写进一行的书写技巧,它还阐明了这个问题中优美的几何直观部分
- 矩阵A代表一种线性变换,所以求解 Ax=v 意味着我们去寻找一个向量x,使得它在变换后与v重合
-
思考一下这一过程,你完全可以只考虑对空间变形,以及变换前后向量的重叠,就将多个未知量相互混合的复杂方程组印入脑中
-
先举一个简单的例子,你有一个由两个方程和两个未知量构成的方程组,意味着A是一个 2x2 的矩阵,v和x都是二维向量
-
现在,这个方程的解依赖于矩阵A所代表的变换,是将空间挤到一条线或一个点等低维空间,还是保持像初始状态一样的完整二维空间,也就是将它们分为两种情况:A的行列式为零和A的行列式不为零
-
先来看看最可能发生的情况,即A的行列式不为零,此时空间并未被挤压为零面积的区域
-
在这种情况下,有且仅有一个向量(在变换后)与v重合,并且可以通过逆向进行变换来找到这个变量,如同倒带一样,通过跟踪v的动向,就能找到满足 Ax=v 的向量x
- 当你逆向进行变换时,它实际上对应了另一个线性变换,通常被称为 “A的逆” ,记为A^(-1)
- 比如说,如果A是逆时针旋转90度的变换,那么A的逆就是顺时针的90度的变换;如果A是向右剪切的变换,将j帽向右移动一个单位,A的逆就是向左剪切的变换,将j帽向左移动一个单位
- 总的来说,A逆是满足以下性质的唯一变换,首先应用A代表的变换,再应用A逆代表的变换,你会回到原始状态
-
两个变换相继作用在代数上体现为矩阵乘法,所以A逆的核心性质在于,A逆乘以A等于一个 “什么都不做” 的矩阵,这个 “什么都不做” 的变换被称为 “恒等变换”
-
它保持i帽和j帽不变,所以它的列就是(1,0)和(0,1)
-
一旦找到了A的逆(实践中可以用计算机完成),就能在两边同乘A逆矩阵来求解向量方程。这个过程在几何上,就对应于逆向进行变换并跟踪v的动向
- 随机选一个矩阵,有很大可能会遇到这一非零行列式的情况,也就是说,对于两个未知量和两个方程构成的方程组,几乎可以确定它存在唯一解
- 只要变换A不将空间压缩到一个更低的维度上,也就是它的行列式不为零,那它就存在逆变换 —A逆,使得应用A变换再应用A逆变换之后,结果与恒等变换无异
- 要想求解方程,只需要将A逆与向量v相乘即可
- 但是当行列式为零时,与这个方程组相关的变换将空间压缩到更低的维度上,此时没有逆变换,你不能将一条线 “解压缩” 为一个平面,至少这不是一个函数能做的,这样就会要求将一个单独的向量变换为一整条线的向量,但是函数只能将一个输入变换为一个输出
-
类似地,对于三个方程和三个未知量,如果变换将三维空间压缩为一个平面,甚至是一条直线或一个点,那么它也没有逆变换。它们都对应行列式为零的情况,因为此时所有区域都被压缩到零体积
-
即便不存在逆变换,解仍然可能存在
-
比如说,一个变换将空间压缩为一条直线,足够幸运的话,向量v恰好处于这条直线上
列空间
-
当变换的结果为一条直线时,也就是说结果是一维的,我们称这个变换的秩为1;如果变换后的向量落在某个二维平面上,我们称这个变换的秩为2
-
所以说 “秩” 代表着变换后空间的维数
-
比如说对于 2x2 的矩阵,它的秩最大为2,意味着基向量仍旧能张成整个二维空间,并且矩阵的行列式不为零;对于 3x3 的矩阵,秩为2意味着空间被压缩了,但是和秩为1的情况相比,压缩并不是那么严重
-
如果一个三维变换的行列式不为零,变换结果仍旧充满整个三维空间,那么它的秩为3
-
不管是一条直线、一个平面还是三维空间等,所有可能的变换的结果的集合,被称为矩阵的 “列空间”
-
矩阵的列告诉你基向量变换后的位置,这些变换后的基向量张成的空间就是所有可能的变换结果
-
换句话说,列空间就是矩阵的列所张成的空间,所以更精确的秩的定义是列空间的维数
-
当秩达到最大值时,意味着秩与列数相等,我们称之为 “满秩”
零空间
-
零向量一定会被包含在列空间中,因为线性变换必须保持原点位置不变
-
对于一个满秩变换来说,唯一能在变换后落在原点的就是零向量自身
-
但是对一个非满秩的矩阵来说,它将空间压缩到一个更低的维度上,也就是说会有一系列向量在变换后成为零向量
-
举个例子,如果一个二维线性变换将空间压缩到一条直线上,那么沿某个不同方向直线上的所有向量就被压缩到原点
- 如果一个三维线性变换将空间压缩到一个平面上,同样也会有一整条线上的向量在变换后落在原点
- 如果一个三维线性变换将空间压缩到一条直线上,那么就有一整个平面上的向量在变换后落在原点
-
变换后落在原点的向量的集合,被称为矩阵的 “零空间” 或 “核”
-
变换后一些向量落在零向量上,而 “零空间” 正是这些向量所构成的空间
-
对线性方程组来说,当向量v恰好为0时,零空间给出的就是这个向量方程所有可能的解
小结
-
每个方程组都有一个线性变换与之联系
-
当逆变换存在时,你就能用这个逆变换来求解方程组
-
另外,列空间的概念让我们清楚什么时候存在解
-
零空间的概念有助于我们理解所有可能的解的集合是什么样的