ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

初等变换的本质:从坐标系重置到初等矩阵的几何理解

初等变换的本质:从坐标系重置到初等矩阵的几何理解 1. 这不是“刷题手册”而是一份能让你真正看懂矩阵变形逻辑的初等变换手记线性代数学到这个阶段很多人卡在“初等变换”这道门槛上——不是不会算是算完不知道自己在干什么。你抄着课本把三类初等行变换背得滚瓜烂熟交换两行、某行乘非零常数、某行加上另一行的倍数你也能熟练地把一个矩阵化成行阶梯形甚至化成行最简形但当老师问“为什么这样变不改变方程组的解”或者“为什么左乘初等矩阵就等于做一次行变换”时你脑子里突然一片空白。这不是你的问题是绝大多数教材和课程默认跳过了最关键的一环初等变换不是一套操作口诀而是对线性空间中“基底视角”进行系统性重置的工程。我带过上百个从零开始学线性代数的学生发现90%的人在学完“初等变换一”后依然分不清“行变换”和“列变换”的几何意义差异搞不懂为什么求逆矩阵只能用行变换而求矩阵秩却可以混用行列变换。这篇笔记就是为解决这些“知道怎么做但不知道为什么必须这么做”的真实困惑而写的。它不追求面面俱到而是聚焦在初等变换最核心的三个支点上变换的本质是什么它如何与矩阵乘法建立一一对应以及为什么我们宁可多绕几步也坚决不用列变换来解线性方程组如果你正在为“高斯消元法为什么有效”而失眠或者被“初等矩阵”这个概念绕得头晕目眩那这份笔记就是为你量身定制的——它不讲定义只讲你眼睛能看到、手能摸到、脑子能想通的逻辑链条。2. 初等变换的本质不是“改数字”而是“换坐标系”2.1 从解方程的原始动机出发看清变换的底层目的我们先回到一切的起点解一个线性方程组。比如这个简单的三元一次方程组$$ \begin{cases} 2x y - z 8 \ -3x - y 2z -11 \ -x y z -2 \end{cases} $$把它写成增广矩阵形式就是$$ \left[\begin{array}{ccc|c} 2 1 -1 8 \ -3 -1 2 -11 \ -1 1 1 -2 \end{array}\right] $$现在我们开始“消元”。第一步通常会把第一行第一个元素变成1于是用 $\frac{1}{2}R_1$得到$$ \left[\begin{array}{ccc|c} 1 \frac{1}{2} -\frac{1}{2} 4 \ -3 -1 2 -11 \ -1 1 1 -2 \end{array}\right] $$接着用 $R_2 3R_1$ 消掉第二行第一列的-3用 $R_3 R_1$ 消掉第三行第一列的-1……每一步你都在改数字但你有没有想过这些数字背后代表的到底是什么答案是它们代表的是同一个向量在不同坐标系下的坐标表示。想象一下三维空间里有一个固定的向量 $\mathbf{v}$它在标准基底 ${\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3}$ 下的坐标是 $(x, y, z)$。当我们写下上面那个方程组本质上是在说这个向量 $\mathbf{v}$恰好是三个已知向量 $\mathbf{a}_1 (2,-3,-1), \mathbf{a}_2 (1,-1,1), \mathbf{a}_3 (-1,2,1)$ 的线性组合且组合系数 $(x,y,z)$ 就是我们要求的解。所以整个方程组就是在寻找 $\mathbf{v}$ 在由 ${\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3}$ 构成的这个“非标准基底”下的坐标。那么初等行变换就是在对这个“非标准基底”本身进行改造。每一次行变换都不是在乱改数字而是在重新选择一组更方便计算的新基底。比如把第一行乘以 $\frac{1}{2}$相当于把原来的第一个基向量 $\mathbf{a}_1$ 缩放成 $\frac{1}{2}\mathbf{a}_1$这当然不改变它张成的方向只是让它的“长度单位”变了。而 $R_2 3R_1$则相当于把第二个基向量 $\mathbf{a}_2$ 替换成 $\mathbf{a}_2 3\mathbf{a}_1$这是一个经典的“剪切变换”它把原来倾斜的坐标网格一点点“掰直”、“拉平”最终目标是让这组基底变成一组正交的、甚至是标准正交的基底——也就是行最简形所对应的基底。所以高斯消元法之所以有效根本原因在于它通过一系列保线性关系的操作把一个“难看”的基底逐步规整成一个“好看”的基底而在这个过程中待求的坐标 $(x,y,z)$ 始终是同一个向量在新旧基底下的表示其物理意义从未改变。这就是为什么初等行变换不改变方程组的解集——它只是换了一种更舒服的方式来描述同一个几何事实。提示这里有个极易混淆的点。很多初学者会误以为“行变换改变了矩阵”所以“改变了方程组”。这是把矩阵和它所代表的线性映射混为一谈了。一个 $m \times n$ 矩阵 $A$既可以看作是从 $\mathbb{R}^n$ 到 $\mathbb{R}^m$ 的一个线性映射 $T_A(\mathbf{x}) A\mathbf{x}$也可以看作是 $n$ 个列向量组成的集合。行变换改变的是这个映射的“输出空间”的坐标系即 $\mathbb{R}^m$ 的基底而列变换改变的则是“输入空间”的坐标系即 $\mathbb{R}^n$ 的基底。解方程组 $A\mathbf{x} \mathbf{b}$我们关心的是输入 $\mathbf{x}$所以只允许动输出空间的坐标系行变换而绝不能动输入空间的坐标系列变换否则 $\mathbf{x}$ 的含义就彻底乱了。2.2 三类初等变换的几何直观旋转、缩放与剪切既然初等变换是坐标系的重置那我们就该给每一类变换配上一个清晰的几何画面而不是死记硬背三条规则。第一类交换两行$R_i \leftrightarrow R_j$这就像在三维空间里把 $x$ 轴和 $y$ 轴的名字互换一下。空间本身没变只是我们给坐标轴重新贴了标签。例如交换增广矩阵的第一行和第二行相当于把原方程组中第一个方程和第二个方程的位置调换。这显然不改变解集因为方程组是一个集合顺序无关紧要。在矩阵层面这对应于对输出空间 $\mathbb{R}^m$ 的基底进行一次置换。它的效果是让矩阵的行向量顺序发生改变但所有行向量张成的子空间即行空间保持不变。第二类某行乘以非零常数$kR_i, k \neq 0$这就像把 $x$ 轴上的单位长度从“1米”改成“2米”。整个空间被沿某个方向均匀拉伸或压缩。例如把第一行乘以3意味着我们把原来作为第一个约束条件的那个平面其法向量被放大了3倍但这个平面本身没有移动只是它的“刻度”变了。由于我们只关心平面的方位即法向量的方向而不关心它的“强度”即法向量的模长所以这个操作是安全的。它对应于对输出空间的一个坐标轴进行缩放只要缩放因子不为零就不会丢失任何信息缩放因子为0就等于把整个轴“压扁”成一个点信息永久丢失所以 $k \neq 0$ 是硬性要求。第三类某行加上另一行的倍数$R_i kR_j$这是最精妙也最容易被误解的一类。它既不是旋转也不是简单的缩放而是一种剪切变换Shear Transformation。想象一块橡皮泥你固定住 $y$ 轴不动然后把 $x$ 轴上的每个点都沿着 $y$ 方向平移一段与它 $x$ 坐标成正比的距离。结果是原本垂直的网格线变成了平行四边形的网格线但所有水平线依然保持水平所有竖直线被“斜着推”了。在方程组里$R_2 3R_1$ 就是说“第二个约束条件现在不再是单独的平面而是第一个平面和第二个平面的某种‘混合’。” 这个混合巧妙地消除了第二个方程中关于第一个变量的依赖从而实现了“消元”。从线性空间角度看这是在保持行空间不变的前提下对行向量进行线性组合目的是为了构造出一组更“正交”、更“独立”的新基向量。这三类操作合起来就是线性代数里最强大的工具之一它们构成了所有可逆线性变换的“原子操作”。任何一个可逆矩阵都可以分解成一系列初等矩阵的乘积而每一个初等矩阵都对应着上述三类操作中的一种。这正是初等变换能成为整个线性代数基石的根本原因——它把复杂、抽象的矩阵运算拆解成了人类直觉可以把握的、最基础的几何动作。3. 初等矩阵把“操作”变成“对象”打通变换与乘法的任督二脉3.1 初等矩阵的诞生为什么要把一个“动作”变成一个“东西”前面我们花了很大篇幅说明初等变换是坐标系的重置。但光有这个理解还不够。在实际计算中我们经常需要反复使用同一种变换或者需要把多个变换的效果“叠加”起来。比如我们想先对矩阵 $A$ 做一次行交换再做一次行缩放最后做一次行剪切。如果每次都手动去改 $A$ 的数字不仅效率低而且无法追溯每一步的“历史”。这时候数学家就想能不能把“做一次变换”这个动作本身也变成一个数学对象就像我们把“加2”这个动作抽象成函数 $f(x) x2$把“旋转90度”这个动作抽象成一个旋转矩阵一样。答案是肯定的。初等矩阵就是把一次初等行变换“固化”下来的产物。它的定义非常简单对单位矩阵 $I$ 施加一次初等行变换所得的矩阵就叫做相应的初等矩阵。举个例子。对3阶单位矩阵 $I_3$做一次“交换第1行和第2行”的操作$$ I_3 \begin{bmatrix} 1 0 0 \ 0 1 0 \ 0 0 1 \end{bmatrix} \quad \xrightarrow{R_1 \leftrightarrow R_2} \quad E_{12} \begin{bmatrix} 0 1 0 \ 1 0 0 \ 0 0 1 \end{bmatrix} $$这个 $E_{12}$ 就是与“交换第1、2行”对应的初等矩阵。再比如对 $I_3$ 做“第2行乘以5”的操作$$ I_3 \begin{bmatrix} 1 0 0 \ 0 1 0 \ 0 0 1 \end{bmatrix} \quad \xrightarrow{5R_2} \quad E_{2}(5) \begin{bmatrix} 1 0 0 \ 0 5 0 \ 0 0 1 \end{bmatrix} $$这个 $E_{2}(5)$ 就是与“第2行乘以5”对应的初等矩阵。最后对 $I_3$ 做“第3行加上第1行的-2倍”的操作$$ I_3 \begin{bmatrix} 1 0 0 \ 0 1 0 \ 0 0 1 \end{bmatrix} \quad \xrightarrow{R_3 - 2R_1} \quad E_{31}(-2) \begin{bmatrix} 1 0 0 \ 0 1 0 \ -2 0 1 \end{bmatrix} $$这个 $E_{31}(-2)$ 就是与“第3行加上第1行的-2倍”对应的初等矩阵。注意这里的下标和括号里的数字是一种约定俗成的记号。$E_{ij}(k)$ 通常表示“第 $i$ 行加上第 $j$ 行的 $k$ 倍”$E_i(k)$ 表示“第 $i$ 行乘以 $k$”$E_{ij}$ 表示“交换第 $i$ 行和第 $j$ 行”。掌握这个记号能让你在阅读文献时事半功倍。3.2 核心定理左乘初等矩阵 执行一次行变换这才是初等矩阵真正的威力所在。它建立了一个完美的“动作-对象”映射对任意矩阵 $A$左乘一个初等矩阵 $E$其结果 $EA$恰好等于对 $A$ 施加与 $E$ 对应的初等行变换所得的矩阵。这个定理是整个线性代数理论大厦的承重墙。它把一个动态的、过程性的“操作”转化成了一个静态的、可计算的“乘法”。我们来验证一下。取一个简单的2阶矩阵 $A \begin{bmatrix} a b \ c d \end{bmatrix}$和上面定义的 $E_{12} \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix}$。计算 $E_{12}A$$$ E_{12}A \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix} \begin{bmatrix} a b \ c d \end{bmatrix} \begin{bmatrix} c d \ a b \end{bmatrix} $$这正好是把 $A$ 的第一行和第二行交换后的结果再试一个剪切的例子。取 $E_{21}(3) \begin{bmatrix} 1 0 \ 3 1 \end{bmatrix}$计算 $E_{21}(3)A$$$ E_{21}(3)A \begin{bmatrix} 1 0 \ 3 1 \end{bmatrix} \begin{bmatrix} a b \ c d \end{bmatrix} \begin{bmatrix} a b \ 3ac 3bd \end{bmatrix} $$这正是把 $A$ 的第一行的3倍加到第二行上去的结果。这个定理的证明并不复杂但它的意义极其深远。它意味着我们可以把一连串的行变换用一连串的初等矩阵相乘来表示。比如先做 $E_1$再做 $E_2$再做 $E_3$那么总的效果就是 $E_3E_2E_1A$。因为矩阵乘法满足结合律所以 $(E_3E_2E_1)A$ 和 $E_3(E_2(E_1A))$ 是完全等价的。前者是“先把所有变换打包成一个大变换再作用于 $A$”后者是“一步步地做变换”。两种视角殊途同归。更重要的是它让我们可以“反向追踪”。如果我们知道 $EA B$那么 $A E^{-1}B$。而初等矩阵的逆矩阵恰恰就是执行“逆操作”的初等矩阵。比如$E_{12}$ 的逆就是它自己交换两次等于没交换$E_i(k)$ 的逆是 $E_i(1/k)$$E_{ij}(k)$ 的逆是 $E_{ij}(-k)$。这为后面求逆矩阵、解矩阵方程提供了最直接的路径。3.3 初等矩阵的可逆性为什么它是“万能钥匙”的关键一个矩阵是否可逆是线性代数里最核心的判定标准之一。而初等矩阵天生就是可逆的。这并非偶然而是由它的定义决定的。回忆一下初等矩阵是由单位矩阵经过一次可逆操作交换、非零缩放、剪切得到的。而单位矩阵 $I$ 本身就是可逆的$I^{-1} I$。更重要的是这三类操作本身都是可逆的交换 $R_i$ 和 $R_j$再交换一次就回来了把 $R_i$ 乘以 $k \neq 0$再乘以 $1/k$ 就回来了把 $R_i$ 加上 $kR_j$再减去 $kR_j$ 就回来了。因此每一个初等矩阵 $E$都存在一个对应的初等矩阵 $E^{-1}$使得 $EE^{-1} I$。这个 $E^{-1}$就是执行与 $E$ 相反操作的初等矩阵。这个性质直接导致了一个划时代的结论一个 $n$ 阶方阵 $A$ 可逆当且仅当它可以表示为有限个初等矩阵的乘积。换句话说$A$ 是可逆的当且仅当它可以通过一系列初等行变换变成单位矩阵 $I$。因为如果 $E_k \cdots E_2E_1A I$那么两边同时左乘 $E_1^{-1}E_2^{-1}\cdots E_k^{-1}$就得到 $A E_1^{-1}E_2^{-1}\cdots E_k^{-1}$而每个 $E_i^{-1}$ 本身也是一个初等矩阵。这个结论完美地将“矩阵可逆”这个抽象的代数性质与“能否通过高斯消元法化成单位阵”这个具体的、可操作的算法过程牢牢地绑定在了一起。它告诉我们判断一个矩阵是否可逆不需要去解一个复杂的方程只需要拿起笔对它做高斯消元——如果最后能成功化成 $I$它就可逆如果中途出现全零行它就不可逆。这就是理论与实践最完美的统一。4. 实操指南如何用初等变换求逆矩阵以及为什么必须用“增广矩阵”法4.1 求逆矩阵的标准流程从原理到每一步的意图求一个 $n$ 阶方阵 $A$ 的逆矩阵 $A^{-1}$是初等变换最经典、最实用的应用。它的标准方法教科书上称之为“伴随矩阵法”或“公式法”但对于稍大一点的矩阵比如 $3\times3$ 或 $4\times4$计算量巨大且极易出错。而初等变换法不仅计算量小而且逻辑清晰容错率高。它的核心思想就是利用我们刚刚讲过的那个关键定理如果 $E_k \cdots E_2E_1A I$那么 $A^{-1} E_k \cdots E_2E_1$。所以我们的目标就是找到这一系列能把 $A$ 变成 $I$ 的初等矩阵。而最聪明的办法就是把这些初等矩阵的“效果”同步地施加在另一个对象上——单位矩阵 $I$ 上。因为 $E_k \cdots E_2E_1I E_k \cdots E_2E_1$这正是我们想要的 $A^{-1}$于是整个算法就呼之欲出了把 $A$ 和 $I$ 并排写在一起形成一个 $n \times 2n$ 的增广矩阵 $[A \mid I]$。然后对这个增广矩阵只做初等行变换目标是把左边的 $A$ 部分化成 $I$。当左边变成 $I$ 的那一刻右边的 $I$ 部分就自动变成了 $A^{-1}$。我们用一个具体的 $3\times3$ 矩阵来演示全过程。设$$ A \begin{bmatrix} 1 2 1 \ 2 5 3 \ 1 3 2 \end{bmatrix} $$我们构造增广矩阵 $[A \mid I]$$$ \left[\begin{array}{ccc|ccc} 1 2 1 1 0 0 \ 2 5 3 0 1 0 \ 1 3 2 0 0 1 \end{array}\right] $$第一步把第一列的主元下方全部消成0。主元是 $a_{11} 1$已经很好了不需要缩放。用 $R_2 - 2R_1$ 消掉 $a_{21}$$R_2 \leftarrow R_2 - 2R_1 [2,5,3|0,1,0] - 2\times[1,2,1|1,0,0] [0,1,1|-2,1,0]$用 $R_3 - R_1$ 消掉 $a_{31}$$R_3 \leftarrow R_3 - R_1 [1,3,2|0,0,1] - [1,2,1|1,0,0] [0,1,1|-1,0,1]$得到$$ \left[\begin{array}{ccc|ccc} 1 2 1 1 0 0 \ 0 1 1 -2 1 0 \ 0 1 1 -1 0 1 \end{array}\right] $$第二步把第二列的主元下方消成0并确保主元为1。当前第二行第二列是1已经是主元。用 $R_3 - R_2$ 消掉 $a_{32}$$R_3 \leftarrow R_3 - R_2 [0,1,1|-1,0,1] - [0,1,1|-2,1,0] [0,0,0|1,-1,1]$哦这里出现了一个全零行 $[0,0,0|1,-1,1]$。这意味着什么意味着在消元过程中我们发现 $A$ 的第三行是前两行的线性组合$R_3 R_1 R_2$所以 $A$ 的秩小于3它不可逆这个结论是我们在动手计算之前单凭观察很难得出的。而初等变换法用最朴实的计算就给出了最明确的答案。实操心得在考试或作业中如果你在化简过程中发现某一行左边全为0而右边不为0比如 $[0,0,0|1,0,0]$那说明原矩阵不可逆可以立刻停止计算。但如果右边也是0比如 $[0,0,0|0,0,0]$那只是说明秩不足还需要继续看其他行。只有当左边部分最终能化成满秩的行阶梯形即有 $n$ 个非零主元才能断定它可逆。4.2 为什么必须用“增广矩阵”而不能分开操作这是一个几乎所有初学者都会问的问题。既然 $A^{-1} E_k \cdots E_2E_1$那我为什么不先对 $A$ 做变换记下每一步用了什么 $E_i$然后再用这些 $E_i$ 去乘 $I$ 呢理论上当然可以但实操中这几乎是不可能完成的任务。原因有三记录成本太高每一次行变换你都要精确地写出对应的初等矩阵。对于一个 $4\times4$ 矩阵可能需要做10次以上的变换你就得写出10个 $4\times4$ 的矩阵然后还要把它们按顺序乘起来。这个过程比直接在增广矩阵上操作繁琐了至少十倍。容易出错初等矩阵的书写尤其是剪切矩阵 $E_{ij}(k)$下标很容易写反是 $i$ 行加 $j$ 行的 $k$ 倍还是 $j$ 行加 $i$ 行的 $k$ 倍。一旦写错一个后面全错。失去了“同步校验”的机会增广矩阵法最大的优势在于它提供了一个实时的、可视化的校验机制。左边在变右边也在变你随时可以检查当前左边的矩阵乘以右边的矩阵是否还等于最初的 $A$即是否始终有 $A_{\text{current}} \times B_{\text{current}} A$这个等式是你计算正确与否的黄金标准。如果某一步之后这个等式不成立了你就立刻知道刚才那一步算错了可以马上回头检查。而分开操作你失去了这个宝贵的反馈环。所以“增广矩阵”不是一个炫技的花招而是一个经过千锤百炼、专为降低出错率而设计的工程智慧。它把一个容易出错的、需要大量中间记忆的“多步乘法”问题转化成了一个只需要关注当前状态的“单步消元”问题。4.3 关键参数与常见陷阱主元选择、数值稳定性与“伪失败”在实操中有几个细节决定了你是事半功倍还是事倍功半。主元选择Pivoting理论上我们总是希望主元pivot越大越好因为除法运算中除数越小舍入误差越大。在手工计算时我们通常采用“部分主元法Partial Pivoting”在当前列中从主元行开始往下找选出绝对值最大的那个元素然后通过行交换把它“提”到主元位置。比如在上面的例子中如果第一列是 $[0.001, 2, 1]^T$那么 $0.001$ 就是一个极差的主元我们应该先交换第一行和第二行再开始消元。虽然手工计算时我们常常忽略这点但在编写程序或处理病态矩阵时这是必须的。数值稳定性初等变换法在理论上是精确的但在计算机浮点运算中它并非绝对稳定。特别是当矩阵的条件数Condition Number很大时微小的舍入误差会被急剧放大。这也是为什么在实际的科学计算软件如MATLAB、NumPy中inv()函数内部并不是简单地用初等变换而是采用了更稳健的LU分解或QR分解。但对于学习和理解初等变换法依然是无可替代的入门工具。“伪失败”现象有时候你会遇到一种情况明明矩阵是可逆的但在消元过程中某一步的主元碰巧为0。比如$$ A \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix} $$它的第一行第一列就是0无法作为主元。这时你不能就此放弃而应该立刻执行行交换把下面一行中非零的元素“借”上来。这就是为什么“交换两行”这个看似最简单的初等变换却是整个算法鲁棒性的基石。它保证了只要矩阵可逆就总能找到一条通往 $I$ 的路。5. 常见问题与排查技巧实录那些教科书不会告诉你的“坑”5.1 “我化简出来的右边不是逆矩阵”——最常见的计算错误溯源这是我在批改作业时看到最多的一句话。学生信心满满地交上来一份“完美”的增广矩阵化简过程但最后算出来的 $A^{-1}$一验证 $AA^{-1} \neq I$就懵了。问题往往不出在大方向上而藏在几个极其细微的步骤里。错误类型一行变换的“副作用”被忽略最典型的就是你在做 $R_2 \leftarrow R_2 3R_1$ 的时候忘了 $R_1$ 本身可能已经被前面的变换修改过了。比如初始矩阵是$$ \left[\begin{array}{cc|cc} 1 2 1 0 \ 3 4 0 1 \end{array}\right] $$你想消掉 $a_{21}3$于是做 $R_2 \leftarrow R_2 - 3R_1$。但如果你错误地用了原始的 $R_1 [1,2|1,0]$而实际上此时 $R_1$ 已经被你之前的某次操作改成了别的样子那结果必然错误。永远记住所有行变换都是基于“当前”矩阵的当前行进行的。你不能回溯到最初的状态去引用某一行。错误类型二符号错误尤其是负号$R_i - kR_j$ 和 $R_i (-k)R_j$ 是一回事但人在心算时很容易把“减”看成“加”或者把负号漏掉。一个经典的错误是在做 $R_3 \leftarrow R_3 - 2R_1$ 时把 $-2 \times [1,0,0|1,0,0]$ 算成了 $[-2,0,0|1,0,0]$漏掉了右边的-2。这种错误几乎无法通过肉眼检查发现唯一的办法就是在每一步完成后立刻用一个简单的验证用当前左边的矩阵乘以当前右边的矩阵看是否还等于原始的 $A$。哪怕只验证一个元素也能揪出大部分错误。错误类型三抄写错误这是最“低级”但也最普遍的错误。把 $-3$ 抄成 $3$把 $0$ 抄成 $8$把第二行抄到第三行……尤其是在处理大矩阵时眼睛一花就铸成大错。我的建议是永远用尺子或一张纸盖住你不操作的行只露出当前正在操作的那一行和你要参考的那一行。这样能强迫你的注意力聚焦大幅降低抄错率。5.2 “为什么我用列变换也能得到答案”——一个危险的幻觉有些学生在求矩阵的秩时发现用列变换也能得到正确的结果于是就产生了“行变换和列变换其实差不多”的错觉。这是一个非常危险的想法。我们来做一个实验。取矩阵 $A \begin{bmatrix} 1 2 \ 3 4 \end{bmatrix}$它的秩显然是2。用行变换$R_2 \leftarrow R_2 - 3R_1$得到 $\begin{bmatrix} 1 2 \ 0 -2 \end{bmatrix}$有两个非零行秩为2。用列变换$C_2 \leftarrow C_2 - 2C_1$得到 $\begin{bmatrix} 1 0 \ 3 -2 \end{bmatrix}$有两个非零列秩为2。看起来一样。但问题在于秩是矩阵的一个固有属性它等于行秩也等于列秩所以无论你用行变换还是列变换只要操作合法最终都能得到正确的秩。但这绝不意味着两种变换可以混用更不意味着它们的几何意义相同。关键区别在于行变换保持行空间不变列变换保持列空间不变。而行空间和列空间通常是两个完全不同的子空间。对于解方程组 $A\mathbf{x} \mathbf{b}$我们关心的是 $\mathbf{x}$它属于 $A$ 的列空间的“原像”。行变换是在调整 $\mathbf{b}$ 所在的空间即输出空间而列变换是在调整 $\mathbf{x}$ 所在的空间即输入空间。一旦你对 $A$ 做了列变换比如 $AC$那么你实际上是在解 $(AC)\mathbf{y} \mathbf{b}$而 $\mathbf{x} C\mathbf{y}$。你求出来的 $\mathbf{y}$并不是原方程组的解你必须再右乘 $C$ 才能得到 $\mathbf{x}$。这个额外的步骤就是列变换带来的“隐性成本”。所以结论很明确在解线性方程组、求逆矩阵、求矩阵的行最简形时只允许使用初等行变换。列变换只在特定场景下有用比如求矩阵的列空间的一组基或者进行QR分解。把它当作一个通用工具是走向歧途的第一步。5.3 “这个矩阵太大了手算太慢”——高效手算的三个实战技巧面对 $4\times4$ 或更大的矩阵手算确实是一项体力活。但有一些技巧能让你的速度提升一倍错误率降低一半。技巧一善用“倍数关系”避免分数在消元时不要一上来就急着把主元变成1。比如当前主元是
返回列表