
我刚开始学线性代数的时候对矩阵一直抱有一种朴素的偏见这不就是拿一对括号把数字框起来的表格吗至于单独讲一大节课直到我认真把一门线性代数在线课程的“矩阵”这一讲听完才发现自己对它的理解还停留在小学的表格阶段。矩阵表面上是一堆数的排列实际上它是整门线性代数的核心对象线性方程组的系数可以装进矩阵空间里的点经过旋转、缩放可以靠矩阵左乘向量来描述甚至后续的行列式、逆矩阵、秩都建立在这张“数表”的基础之上。这篇文章算是我把这节课重新消化后的笔记重点梳理了矩阵的基本结构、三种核心运算以及我在做题时踩过的关于乘法交换律和零因子的坑。适合正在学线性代数、准备考研或期末复习的读者也适合那些只听说过“矩阵”但不知道它到底有什么用的人。1. 从“数表”到“矩阵”这一讲到底在讲什么1.1 我理解的矩阵来源线性方程组被压缩成了符号我们看一个方程组2x 3y 8 x - 2y -3如果每个方程都要把未知数 x、y 反复写出来既啰嗦又容易抄错。把系数单独抽出来排成两行两列[ 2 3 1 -2]这就是这个方程组的系数矩阵。再把变量 x、y 写成一个列向量常数 8、-3 也写成一个列向量整个方程组就能压缩成一个等式A * x b这里的A并不是为了方便而发明的记号而是把方程组的“结构信息”和“具体数值”进行了分离。结构信息就是系数之间怎么组合具体数值就是系数本身是多少。这个压缩的思想贯穿整门课程一旦把方程组看成矩阵对象后面就能用矩阵运算去统一处理齐次方程、非齐次方程、多未知数系统而不用每次回到原始方程一行一行抄。矩阵因此不是“表格”而是“把若干线性关系打包成一个整体”的容器。1.2 行、列、方阵与最常用的特殊矩阵矩阵的维度习惯写为m × n读作 m 乘 n意思是矩阵有 m 行、n 列。这里有一个新手很容易踩的小坑3 × 2和2 × 3几乎是两种不同的生物前者是 3 行 2 列后者是 2 行 3 列放到矩阵乘法里能不能相乘、乘出来长什么样都由这两个数字决定。我见过太多同学在草稿纸上把行列看反结果后面所有计算全白做。所以训练第一步就是养成条件反射看到一个矩阵先在心里默念“几行几列”再去看内容。单独拿出来看只有一行的矩阵叫行向量只有一列的矩阵叫列向量。这个概念并不多余因为在矩阵乘法里左乘的行数和列数匹配规则会严格约束向量方向写反之后几乎必错。除了普通矩形矩阵还有几个出现频率极高的特殊矩阵我按自己的理解给它们做了个分类矩阵类型形式特点最常在什么场景出现零矩阵所有元素都是 0代表“什么都不做”或“没有任何线性组合”单位矩阵主对角线全为 1其余全为 0乘法中的不变元相当于数字里的 1对角矩阵只有主对角线有值每个坐标各自独立伸缩处理起来极快上三角矩阵主对角线以下全为 0解方程组时适合用回代法对称矩阵转置后等于自己二次型和几何分析中反复出现初学阶段不用死背这些矩阵的性质但一定要认识它们。原因是后续很多计算题会故意把矩阵设计成特殊结构来降低难度。比如一个对角矩阵的幂可以直接把对角线每个元素各自取幂而不用一整个矩阵反复乘省下大量时间。1.3 为什么说矩阵是“向量与变换”的桥梁课程里老师反复强调矩阵左乘一个列向量本质上是在对这个向量做线性变换。一个简单例子是缩放矩阵S [2 0 0 3]它乘以向量(x, y)^T的结果是(2x, 3y)^T也就是把 x 方向扩大到 2 倍、y 方向扩大到 3 倍。这个角度很重要因为它让抽象矩阵有了画面感矩阵不只是静态的数表它是一个“动作”作用在向量上会产生新的向量。我直到理解了这一层才真正觉得矩阵运算中的乘法规则不是人为主观制定的而是为了满足“先做变换 A、再做变换 B”的复合需求。2. 矩阵运算的三板斧加减、数乘、乘法怎么算才不出错2.1 加减法与数乘为什么必须“同型”矩阵加减法规则只有一个字怼。两个矩阵大小相同时对应位置元素直接相加或相减[1 2 3] [4 5 6] [5 7 9] [0 1 1] [1 1 1] [1 2 2]首先要求两个矩阵的行数和列数完全一致这并不算苛刻。你可以把矩阵看成相同维度空间的变换表两个不同大小的矩阵根本没法在对应坐标上叠加硬加没有意义。这个“同型”条件在考试里经常变成一道送分判断给你两个尺寸不同的矩阵问能不能相加很多人只顾着看数字忘了看维度。数乘比加法更简单一个数乘以矩阵就是把这个数乘到矩阵里的每个元素上。例如2 * [1 -1] [2 -2] [0 3] [0 6]这里必须开始区分矩阵数乘和行列式数乘。后面学行列式时会遇到类似动作但规则完全不同一个 n 阶矩阵的每个元素都乘以 k得到的矩阵行列式会变成原来的k^n倍而矩阵本身被数乘后所有元素都是原来的 k 倍。别把这个混在一起否则后面求行列式会得出离谱的结果。2.2 矩阵乘法的核心规则一行乘一列矩阵乘法是整个第二讲的重头戏也是很多初学者第一次“裂开”的地方。规则其实不复杂但必须严格按步骤来检查A的列数是否等于B的行数不等就不能乘。结果矩阵的行数等于A的行数列数等于B的列数。结果矩阵第 i 行第 j 列的元素等于A的第 i 行与B的第 j 列对应元素相乘再相加。写成公式就是C(i,j) a(i,1)*b(1,j) a(i,2)*b(2,j) ... a(i,n)*b(n,j)理解这个规则可以从生活场景切入。想象 A 的第 i 行是三种商品的进货数量B 的第 j 列是三种商品的单价两个对应项相乘再相加得到的就是这一批货的总价。每一行要分别对每一列做一次这种“乘加”所以结果矩阵天然是行数左定、列数右定。这句话是我考试时用来稳定心率的咒语先看能不能乘再想结果的长相。2.3 一个完整例子2×3 与 3×2 相乘的全程手算说再多不如算一遍我用一个具体的例子把过程展开。设 A 是 2 行 3 列A [1 0 -1 2 1 3]B 是 3 行 2 列B [1 2 0 -1 -1 1]A 的列数是 3B 的行数是 3满足乘法条件。结果矩阵应为 2 行 2 列。先算第一行第一列取 A 的第一行[1, 0, -1]与 B 的第一列[1, 0, -1]^T对应相乘1*1 0*0 (-1)*(-1) 1 0 1 2再算第一行第二列取 A 的第一行与 B 的第二列[2, -1, 1]^T1*2 0*(-1) (-1)*1 2 0 - 1 1接着算第二行第一列取 A 的第二行[2, 1, 3]与 B 的第一列2*1 1*0 3*(-1) 2 0 - 3 -1最后算第二行第二列2*2 1*(-1) 3*1 4 - 1 3 6所以AB [ 2 1 -1 6]整个过程不复杂但要保持耐心。我在第一次做这种题时图快把两行两列的元素位置看串了答案是错的。正确做法是先在草稿纸上写出结果矩阵的空壳标好每个元素位置再逐格填数字这样能避免大多数低级失误。2.4 分块矩阵大矩阵的“缩略图”课程里还会延伸到分块矩阵意思是可以把一个大矩阵沿着行列方向切成若干块每一块当成一个小矩阵。分块之后如果块与块之间的尺寸匹配乘法规则和普通元素乘法完全一致只是“元素”从小数变成了小矩阵。我举一个很简单的例子一个四阶矩阵分成四个 2×2 的块M [A B C D]如果另一个四阶矩阵有相同分块方式N [E F G H]那么MN的左上角块就是AE BG右下角块是CE DH以此类推。分块法的价值不只是为了让计算看起来高级它帮助我们看到矩阵结构。很多大型矩阵内部有重复小块切块后不仅能降低手算复杂度后面处理广义逆、低秩近似时也离不开这个思维。3. 矩阵与小学代数的“决裂”这里的位置和零因子都有讲究3.1 AB≠BA交换律并没有坏只是换了个世界小学代数学得再熟到了矩阵乘法这里也要重新建立一个三观两个矩阵相乘顺序不能随便换。我最初总是不习惯觉得乘法本来就应该可交换直到用实际例子算了一遍才彻底认命。取两个 2×2 矩阵A [1 2 3 4]B [0 1 1 0]算ABAB [1*0 2*1 1*1 2*0] [2 1 3*0 4*1 3*1 4*0] 4 3]再算BABA [0*1 1*3 0*2 1*4] [3 4 1*1 0*3 1*2 0*4] 1 2]结果完全不同。这个例子里的 B 其实是一个交换矩阵作用是把向量的两个分量互换。先换再乘和先乘再换对应的是完全不同的复合效果矩阵乘法不满足交换律也就不奇怪了。考试中不会总问你“AB 和 BA 是否相等”但大量公式推导都会默认顺序是不可移动的。看到AB就绝不能随手改写成BA这是我踩过最多次数的坑。3.2 两个非零矩阵相乘可能等于零矩阵小学代数里“两个数相乘等于 0”至少有一个数是 0这个直觉在矩阵世界完全失效。比如A [1 0 0 0]B [0 0 0 1]两个矩阵都不是零矩阵但AB [1*0 0*0 1*0 0*1] [0 0 0*0 0*0 0*0 0*1] 0 0]结果是零矩阵。这种现象叫“零因子”它带来的直接后果是如果由矩阵等式AB 0你绝对不能推出A 0或B 0。更进一步由AX AY也不能想当然地推出X Y除非两边同时乘以一个合适的逆矩阵。这个知识点在后续解矩阵方程时特别关键很多错误解法的根子就是把“约分”习惯搬进了矩阵运算。3.3 (AB)^2 展开要多一项 ABBA有了交换律失守的前提再回头看完全平方公式就会很兴奋因为它是直接靠交换律合并同类项得出来的。普通代数里(ab)^2 a^2 2ab b^2但矩阵里(AB)^2 (AB)(AB) A^2 AB BA B^2其中AB和BA一般不能合并成2AB。同样中学常用的平方差公式(AB)(A-B) A^2 - AB BA - B^2也不是A^2 - B^2。只有在题目额外说明AB BA时这些公式才退化成我们熟悉的形式。考试特别爱在这里做文章出题人常常给两个看起来很普通的矩阵让你判断某个等式能否成立这时候直接套初中公式就等着一路扣分。3.4 值得庆幸结合律和分配律仍然成立但要带着“方向感”好消息是矩阵乘法没有交换律但它还有结合律和分配律。结合律指的是A(BC) (AB)C只要维度能对得上括号位置可以移动。分配律则有左分配和右分配两种写法A(BC) AB AC (BC)A BA CA注意这两个结果一般不等。提取公因式时也必须注意方向AX AY A(XY)但如果写成XA YA就要改成(XY)A。我在做矩阵化简题时给自己立了一条规矩凡是提取矩阵公因式先看一眼这个因式到底在原式左边还是右边永远不跨方向合并。这个规矩让我的出错率低了很多。3.5 转置和幂运算里同样写着“顺序敏感”转置运算的几个基本性质里最需要警惕的是乘积的转置(AB)^T B^T * A^T顺序会反转。用前面 2×3 乘 3×2 的例子去验证很快AB的结果矩阵是 2×2转置后不变如果错误地把转置写成A^T B^T因为A^T是 3×2B^T是 2×3乘出来的尺寸是 3×3光看维度就完全对不上。所以记忆这个性质时可以顺便记住一个实用技巧用维度检验公式如果左边是 2×2右边也必须能乘出 2×2维度不对的公式一定是错的。矩阵幂运算只对方阵有意义因为只有方阵才能反复相乘。还有当AB BA成立时(AB)^k A^k B^k才成立不满足交换律时(AB)^2 A B A B只能老老实实按顺序乘。很多理工科课程里遇到的矩阵并不是随便交换的这个细节会在后续学对角化时再次出现。4. 矩阵不是摆设从方程组到图像变换的实际场景4.1 把线性方程组“打包”成 Axb矩阵最直接的应用就是写线性方程组。上一个方程组2x 3y 8 x - 2y -3可以写成[2 3] [x] [8] [1 -2] [y] [-3]这看起来只是换个写法但它有深刻意义。方程组的左边是“系数矩阵乘未知向量”右边是“常数向量”。后续线性代数中几乎所有的方程组求解套路都从Ax b这一条等式出发。消元法、求逆、判断无解还是无穷解全都可以围绕矩阵展开。如果不懂矩阵乘法连题目给的这个等式都读不懂后面自然寸步难行。我还注意到一个学习方法上的好处用Ax b表示方程组时变量数量再多也不会让表达式变得混乱。一个 5 元方程组的系数矩阵和常数向量写出来仍然很简短而原始写法要列五行式子进行矩阵化简时思路更清楚。4.2 用矩阵左乘向量完成坐标系伸缩和旋转矩阵作为线性变换的这个属性在图像变换领域非常直观。一个二维点可以写成列向量(x, y)^T对它做缩放最简单的是用对角矩阵S [2 0 0 0.5]左乘后x 坐标扩大两倍y 坐标缩小一半。旋转矩阵稍微复杂一点二维平面旋转角度 θ 的矩阵是R [cosθ -sinθ sinθ cosθ]这个矩阵为什么长这样只需要看两个基向量向量(1, 0)^T被旋转 θ 之后变成(cosθ, sinθ)^T向量(0, 1)^T被旋转 θ 之后变成(-sinθ, cosθ)^T。把这两个结果按列排进同一个矩阵就是旋转矩阵。理解到这一层矩阵就不再是一堆抽象数字而是一台有几何意义的“加工机器”。更重要的是连续变换对应矩阵连乘。先缩放后旋转等价于用R * S乘以原向量先旋转后缩放则等价于用S * R。两种顺序得到的效果通常不同这又回到了前面讲的交换律问题。图像处理里如果搞反顺序图片就可能旋转了但没有缩到目标形状。4.3 这一讲承上启下的位置连接行列式、逆矩阵与秩在线性代数的课程顺序里矩阵这一讲很像一座桥前面连接着向量和线性方程组后面通往行列式、逆矩阵、矩阵的秩再到特征值和特征向量。说几个具体衔接点行列式只能在方阵上定义用来判断矩阵是否可逆。如果A可逆那么Ax b的解可以写成x A^{-1} b这里的求逆本质上就是矩阵乘法的逆运算。矩阵的秩描述的是列向量组的极大无关组个数决定方程组解的结构是有唯一解还是无穷多解。所有这些概念必须借助矩阵乘法和转置这些基本运算才能继续展开。跳过矩阵直接学后面的内容就好像没学会加减法就去做乘除法题目是能看懂但每一步都底气不足。我见过太多同学在后续课程里反复回炉补矩阵乘法与其那样不如现在把运算规则和顺序敏感问题彻底养熟。5. 我的学习方法和踩坑经验5.1 别只背公式拿 2×2 矩阵从头手算一遍矩阵这部分有个特殊现象公式背诵看起来很容易一动手就算错。我自己的解决办法是每学一个性质就现场构造两个 2×2 矩阵亲手动笔算一遍。比如为了理解交换律失效我就拿最简单的A [[1,2],[3,4]]和B [[0,1],[1,0]]分别算AB和BA对结果差异产生了肌肉记忆之后每次看到类似判断都会有“这两个方向不一样”的本能警觉。这个方法尤其适合验证转置公式和展开公式。字母符号看着是抽象的但代进具体数字后每一步都清清楚楚。算完一遍再看回字母公式就能把抽象规则挂在具体例子上记忆时长明显更长。5.2 每学一个性质就问自己“交换一下还成立吗”我给自己设计了一套自检问题强烈推荐你照做AB换成BA结果一样吗——不成立只有特殊情况才相等。(AB)^T等于A^T B^T吗——不成立顺序要反是B^T A^T。A(BC)等于BA CA吗——不成立前者是左分配后者是右分配。由AX AY能推出X Y吗——不能除非A可逆。这些问题看起来简单但它们是所有矩阵“防坑”知识的精华。很多同学不是不懂矩阵乘法而是习惯性地用实数思维去套一碰到字母就总想移项和约分。定期做一遍这种反常识自检可以快速重建直觉。5.3 推荐的计算自检流程做矩阵乘法题时我现在的流程已经固定下来先看两个矩阵的维度确认 A 的列数等于 B 的行数。写出结果矩阵的行数和列数并在草稿纸上画一个空壳。逐格计算每次只取 A 的第 i 行和 B 的第 j 列对应相乘再相加。每算完一个元素顺手把叠加的数字列出来方便复查。全部完成后用单位矩阵或转置性质做一个快速合理性检查。我曾经为了节省时间跳过第 2 步结果在两个 3×3 矩阵相乘时混淆了行列下标白白丢了十几分钟。后来发现画空壳这个动作能强制自己关注结构而不只是机械地算。如果你正在学这一部分我建议你用这套方法先把矩阵运算的手感养起来。我的真实感受是线性代数最前面的几节课最容易拉开差距的往往不是智商而是有没有耐心把每一张草稿纸上的乘法写清楚。矩阵这一讲听起来基础但后面所有高级话题都会随时回来“查作业”。现在把顺序敏感、零因子、维度匹配这些细节弄扎实后面学行列式、特征值的时候会轻松很多。