矩阵运算法则全解析:从加减乘除到转置与逆矩阵

📅 发布时间:2026/10/16 1:19:55
矩阵运算法则全解析:从加减乘除到转置与逆矩阵
1. 从“一串数字”到“运算对象”为什么矩阵运算规则值得单独写一份笔记我见过太多人学矩阵一开始就死磕特征值、对角化这些“大菜”结果连矩阵乘法怎么判维度都还模模糊糊。说实话这就像没学会走路就想跑百米。矩阵运算是整个线性代数的地基地基没打牢后面学什么都是悬空的。这份笔记是我自己反复手算、踩坑、再回头整理出来的“基本矩阵运算法则”精华。它不是什么高深理论就是最朴素的四则运算加、减、乘、特征数行列式、转置、求逆再加上一系列容易被忽略的运算律。适合刚接触线性代数的同学适合考研复习想快速过一遍基础的人也适合工作中偶尔用到矩阵但总怕算错的工程师。我先说一个基本的定心丸矩阵运算的规则虽然多但归根结底就两类逻辑——一类是“逐元素操作”加法、数乘一类是“行列配合操作”乘法、转置带来的维度变化。把这两条主线拎清楚绝大部分法则都不用死记可以现场推出来。2. 先搞懂矩阵到底是什么“形状”的东西2.1 矩阵的维度顺序行数在前列数在后在进入运算细节之前必须把矩阵的“尺寸语言”统一。一个矩阵如果它有 (m) 行、(n) 列我们就称它为 (m \times n) 矩阵读作“m乘n矩阵”。注意行数永远写在前面列数永远写在后面。A | 1 2 3 | | 4 5 6 |上面这个 (A) 是 (2 \times 3) 矩阵因为它有2行、3列。这个维度顺序非常关键直接决定乘法能不能做、结果是什么尺寸。2.2 方阵、行向量、列向量与特殊矩阵方阵行数和列数相等的矩阵比如 (3 \times 3) 矩阵。方阵是唯一可以讨论“逆矩阵”“特征值”“行列式”的矩阵形状。不是方阵的东西很多高级运算根本无从谈起。行向量(1 \times n) 矩阵只有一行。列向量(m \times 1) 矩阵只有一列。零矩阵所有元素都是0记作 (O)。注意不同尺寸的零矩阵是不同的对象在运算中必须匹配正确尺寸。单位矩阵对角线左上到右下为1、其余位置为0的方阵记作 (I) 或 (E)。单位矩阵在矩阵乘法中的角色就像数字1在普通乘法中的角色任何矩阵乘上单位矩阵等于它自己前提是尺寸匹配。对角矩阵除对角线外全为0的方阵。对角矩阵之间相乘结果就是对角线对应位置相乘非常省事。提示拿到任何矩阵题第一反应不是“怎么算”而是“这个矩阵是什么形状的”。先标出行数和列数再动手。很多低级错误都源于“看都没看就直接乘”。3. 加法与数乘最朴素的“逐元素操作”3.1 矩阵加法同型才能相加矩阵加法的定义极其直白两个矩阵行数和列数完全相同时把对应位置的数字相加得到的新矩阵尺寸不变。[ \begin{bmatrix} 1 2 \ 3 4 \end{bmatrix} \begin{bmatrix} 5 6 \ 7 8 \end{bmatrix}\begin{bmatrix} 15 26 \ 37 48 \end{bmatrix}\begin{bmatrix} 6 8 \ 10 12 \end{bmatrix} ]如果两个矩阵不同型比如一个是 (2 \times 3)另一个是 (3 \times 2)那么它们根本不能相加。这就像你没法把“3个苹果”和“2个橙子”放在同一个篮子里直接说“5个苹果”——维度就是矩阵的“种类”。3.2 减法同理但注意负数元素减法就是加法带上负数系数。逐元素相减即可[ \begin{bmatrix} 4 5 \ 6 7 \end{bmatrix}\begin{bmatrix} 1 2 \ 3 4 \end{bmatrix}\begin{bmatrix} 3 3 \ 3 3 \end{bmatrix} ]这里有一个容易忽略的细节当矩阵中含有负数时减法容易算错符号。比如 (a_{ij} - b_{ij}) 中 (b_{ij}) 本身是负数那么“减负”就变成了“加正”。我建议手算时先把减法改写成“加上负号矩阵”的形式符号就清楚了。3.3 数与矩阵相乘每个元素都乘以该数数乘矩阵也叫标量乘法规则是把数 (k) 乘以矩阵的每一个元素。[ 2 \times \begin{bmatrix} 1 -1 \ 0 3 \end{bmatrix}\begin{bmatrix} 2 -2 \ 0 6 \end{bmatrix} ]这里千万要注意数乘和后面要讲的矩阵乘法是两回事。数乘是“全局缩放”矩阵乘法是“组合变换”。有些初学者会把 (2A) 理解为“矩阵里每个元素加2”——那是完全错误的。3.4 加法与数乘的运算律为什么这些律很重要矩阵加法和数乘满足以下运算律它们和普通数的运算律长得几乎一样交换律(A B B A)结合律((A B) C A (B C))数乘结合律(k(lA) (kl)A)数乘分配律(k(A B) kA kB)矩阵分配律((k l)A kA lA)零矩阵的作用(A O A)(A (-A) O)这些律不是摆设它们保证我们在做复杂表达式化简时有底气。比如要计算 (2(A B) - (A - B))可以放心展开成 (2A 2B - A B A 3B)。有了运算律矩阵表达式就能像普通代数式一样操作。实操心得手算加法时我习惯先把两个矩阵并排写在同一张纸上用一把直尺对准行逐行逐列核对元素。不要凭记忆跳着算尤其是3阶以上的矩阵扫一眼就会漏项。4. 矩阵乘法最核心、最容易出问题的部分4.1 乘法能进行的条件前列数 后行数矩阵乘法和加法完全不同。(A) 和 (B) 能相乘前提条件是(A) 的列数必须等于 (B) 的行数。具体来说如果 (A) 是 (m \times p) (B) 是 (p \times n)那么 (AB) 有意义结果是 (m \times n) 矩阵。中间的 (p) 必须相等它像一条“传动轴”把两个矩阵啮合在一起。[ (m \times \underline{p}) \times (\underline{p} \times n) m \times n ]如果中间的 (p) 不相等比如 (2 \times 3) 乘 (2 \times 2)左边列数是3右边行数是2那对不起不能乘。这个维度匹配规则没有任何讨价还价的余地。4.2 怎么算行乘列再求和设 (C AB)那么 (C) 的第 (i) 行第 (j) 列的元素 (c_{ij})等于 (A) 的第 (i) 行元素逐个对应乘以 (B) 的第 (j) 列元素最后把乘积加起来。用一个 (2 \times 2) 的例子演示[ A \begin{bmatrix} 1 2 \ 3 4 \end{bmatrix}, \quad B \begin{bmatrix} 5 6 \ 7 8 \end{bmatrix} ][ AB \begin{bmatrix} 1 \times 5 2 \times 7 1 \times 6 2 \times 8 \ 3 \times 5 4 \times 7 3 \times 6 4 \times 8 \end{bmatrix}\begin{bmatrix} 19 22 \ 43 50 \end{bmatrix} ]注意看结果矩阵 ((1,1)) 位置是“A的第一行”点乘“B的第一列”((1,2)) 位置是“A的第一行”点乘“B的第二列”((2,1)) 位置是“A的第二行”点乘“B的第一列”。一句话总结AB的结果中第(i,j)个元素来自A第i行和B第j列的内积。再举一个非方阵的例子强化印象[ A \begin{bmatrix} 1 0 2 \ -1 3 1 \end{bmatrix}{2 \times 3}, \quad B \begin{bmatrix} 2 1 \ 0 -2 \ 1 4 \end{bmatrix}{3 \times 2} ]这里 (A) 是 (2 \times 3) (B) 是 (3 \times 2)中间都是3可以乘结果是 (2 \times 2)。[ AB \begin{bmatrix} 1 \times 2 0 \times 0 2 \times 1 1 \times 1 0 \times (-2) 2 \times 4 \ (-1) \times 2 3 \times 0 1 \times 1 (-1) \times 1 3 \times (-2) 1 \times 4 \end{bmatrix}\begin{bmatrix} 4 9 \ -1 -3 \end{bmatrix} ]4.3 矩阵乘法最大的坑不可交换这是矩阵运算里最颠覆直觉的一点。普通数字的乘法满足交换律 (ab ba)但矩阵乘法绝大多数情况下不满足交换律(AB \ne BA)。如果你学过线性变换从几何上很容易理解先旋转再拉伸和先拉伸再旋转效果通常不一样。矩阵乘法对应的是变换的复合而变换的复合顺序是不能随便颠倒的。来看一个最直观的反例[ A \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix}, \quad B \begin{bmatrix} 1 0 \ 0 0 \end{bmatrix} ][ AB \begin{bmatrix} 0 0 \ 1 0 \end{bmatrix}, \quad BA \begin{bmatrix} 0 1 \ 0 0 \end{bmatrix} ]显然 (AB \ne BA)。我自己给学生讲这个例子时他们都会“哦”一声——原来矩阵乘法真的会因顺序改变结果。要特别警惕由于不可交换((AB)^n) 不能直接写成 (A^n B^n)。比如 ((AB)^2 ABAB)不能写成 (AABB)除非 (A)、(B) 可交换实际中很少见。4.4 乘法结合律与分配律虽然矩阵乘法不可交换但它满足结合律和分配律结合律((AB)C A(BC))前提是维度链式匹配。分配律(A(B C) AB AC)((A B)C AC BC)。结合律的存在意味着我们可以在长的连乘表达式中重新“分区”。比如 (ABCDE)可以按 ((AB)(CD)E) 的方式先算只要矩阵顺序不变。这在程序优化里非常有用——不同结合方式计算量可能相差很大但结果完全一样。4.5 零因子现象AB 0 不代表 A 0 或 B 0这是另一个让人跌破眼镜的事实。两个非零矩阵相乘结果可能是零矩阵。[ \begin{bmatrix} 1 0 \ 2 0 \end{bmatrix} \begin{bmatrix} 0 0 \ 1 3 \end{bmatrix}\begin{bmatrix} 0 0 \ 0 0 \end{bmatrix} ]两个矩阵都不是零矩阵但乘积确实是零矩阵。原因还是出在“线性相关”上——A的列空间方向与B的行空间方向互相垂直或者说两个变换复合之后会压扁所有方向。这个现象在解线性方程组时非常关键提醒我们“矩阵乘法中不能随便约分”(AX AY) 不能直接推出 (X Y)除非 (A) 有逆矩阵。4.6 单位矩阵、对角矩阵和数量矩阵的特殊乘法规律单位矩阵 (I)(AI A)(IB B)尺寸匹配时它就是乘法的“中性元”。对角矩阵相乘结果是矩阵但不能直接把所有元素相乘“对应位置相乘”这一结论只适用于两个对角矩阵相乘的情形。数量矩阵(kI) 乘以任何矩阵等于把矩阵每个元素都乘以 (k)这其实就是一个数乘操作藏在矩阵乘法里。实操心得算矩阵乘法时我强烈建议先在草稿纸上写出“结果矩阵的模板”把每个位置先标上 (?)再逐个位置用“行乘列”填充。这样做能避免算着算着漏掉某个位置。尤其是3阶或4阶矩阵结果有9个或16个位置逐位置填比整行扫算要可怕很多。5. 转置把矩阵“翻个面”5.1 转置定义与写法矩阵 (A) 的转置记作 (A^T)做法很简单把 (A) 的行写成列或者说以主对角线为轴翻转。[ A \begin{bmatrix} 1 2 3 \ 4 5 6 \end{bmatrix}, \quad A^T \begin{bmatrix} 1 4 \ 2 5 \ 3 6 \end{bmatrix} ]原来的 (2 \times 3) 矩阵转置后变成 (3 \times 2)。注意维度对调(m \times n) 的转置是 (n \times m)。5.2 转置运算的三大核心法则((A^T)^T A)转置两次回到原矩阵。((A B)^T A^T B^T)加法转置可以拆开。((AB)^T B^T A^T)乘法转置要反序。第三条是最大的坑。转置在“穿透”乘法时会把顺序倒过来。用我自己理解的方式记因为矩阵乘法的维度配合方式转置之后左右必须互换才能保持链式匹配。举个例子验证[ A \begin{bmatrix} 1 2 \ 3 4 \end{bmatrix}, \quad B \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix} ][ AB \begin{bmatrix} 2 1 \ 4 3 \end{bmatrix}, \quad (AB)^T \begin{bmatrix} 2 4 \ 1 3 \end{bmatrix} ][ B^T A^T \begin{bmatrix} 0 1 \ 1 0 \end{bmatrix} \begin{bmatrix} 1 3 \ 2 4 \end{bmatrix}\begin{bmatrix} 2 4 \ 1 3 \end{bmatrix} ]果然一致。如果你试试 (A^T B^T)会得到完全不同的结果。这就是反序法则的意义。5.3 对称矩阵与反对称矩阵对称矩阵(A^T A)。这类矩阵元素关于主对角线对称比如 (\begin{bmatrix} 1 2 \ 2 3 \end{bmatrix})。反对称矩阵(A^T -A)。对角线元素必须为0非对角线元素成对互为相反数比如 (\begin{bmatrix} 0 2 \ -2 0 \end{bmatrix})。在实际应用里二次型对应的矩阵一定是实对称矩阵。机器学习中的协方差矩阵也是对称矩阵。识别对称性可以大大简化计算比如对称矩阵求逆后仍然对称特征值全是实数等结论都是从这里延伸出来的。5.4 共轭转置复矩阵扩展如果矩阵元素是复数我们还需要引入共轭转置记作 (A^H) 或 (A^*)方法是先对每个元素取复共轭再做转置顺序反过来也一样因为逐共轭和转置是独立的操作。[ A \begin{bmatrix} 1i 2 \ 3 4-i \end{bmatrix}, \quad A^H \begin{bmatrix} 1-i 3 \ 2 4i \end{bmatrix} ]实矩阵的共轭转置就是普通转置。在信号处理、量子力学的矩阵描述中共轭转置才是标准操作。注意转置时最容易犯的错误是忘记改变维度。很多同学写完转置矩阵后行数和列数还是原样那就相当于没转。养成习惯写完 (A^T) 后先数行数列数确认与 (A) 互换。6. 行列式与逆矩阵矩阵“除法”的入场券6.1 行列式方阵的“标量指纹”行列式只对方阵定义记作 (\det(A)) 或 (|A|)。它本质上是这个矩阵在几何上对单位体积的“伸缩比例”。比如二维矩阵的行列式的绝对值就是对应线性变换将单位面积缩放后的面积。[ \det \begin{bmatrix} a b \ c d \end{bmatrix} ad - bc ]三阶矩阵的行列式用Sarrus法则或拉普拉斯展开。Sarrus法则只适用于3阶不适用于高于3阶的情况。6.2 为什么行列式等于0就没法求逆一个方阵 (A) 有逆矩阵称可逆矩阵或非奇异矩阵的充要条件是(\det(A) \ne 0)行列式等于0叫奇异矩阵。几何理解是这个矩阵对应的变换把某个维度的空间压成一条线或压成一个点信息丢失了无法“还原”回去。就好比你拍照片时把整个画面压扁成一条线就没法从这张线恢复出原画面——不可逆。6.3 二阶逆矩阵公式与三阶伴随法二阶矩阵的逆可以直接背公式[ A \begin{bmatrix} a b \ c d \end{bmatrix}, \quad A^{-1} \frac{1}{ad - bc} \begin{bmatrix} d -b \ -c a \end{bmatrix} ]注意几点主对角线交换位置(a \leftrightarrow d)副对角线变号(b) 变 (-b)(c) 变 (-c)整体除以行列式 (ad - bc)三阶及以上的矩阵求逆常用的方法是初等行变换法。把 (A) 和同尺寸的单位矩阵 (I) 并排写成增广矩阵 ([A \mid I])然后对整行做行变换交换行、某行乘以非零常数、把某行的倍数加到另一行把左边化为 (I)右边得到的就是 (A^{-1})。[ A | I ] 通过行变换 - [ I | A^{-1} ]这个方法的原理是对矩阵左乘初等矩阵等价于做行变换。一连串初等行变换把 (A) 变成 (I)等价于某个矩阵 (P) 满足 (PA I)而右边 (PI P)所以右边就是 (A^{-1})。6.4 逆矩阵的运算律逆矩阵也有自己的一套逆令牌((A^{-1})^{-1} A)((AB)^{-1} B^{-1} A^{-1})乘积的逆也要反序和转置一样的反序法则。((A^T)^{-1} (A^{-1})^T)转置和求逆可以交换顺序。((kA)^{-1} \frac{1}{k} A^{-1})(k \ne 0)(\det(A^{-1}) 1 / \det(A))第二条反序法则在实际求解线性方程组时非常有用。比如要算 ((XY)^{-1})不能直接写成 (X^{-1} Y^{-1})要先颠倒再求逆。6.5 用逆矩阵解线性方程组矩阵与逆矩阵最直接的应用就是解线性方程组。对于[ AX B ]其中 (A) 是系数矩阵方阵且可逆 (X) 是未知数列向量 (B) 是常数列向量。解法是两边左乘 (A^{-1})[ X A^{-1}B ]注意是左乘不是右乘。因为 (AX) 中 (A) 在左边矩阵乘法不能随便交换所以必须左乘。如果写成 (BA^{-1})结果完全不对。实操心得求逆时强烈建议一边做行变换一边用 (\det(A)) 预判是否存在逆。如果行列式为0就直接停手别浪费时间。另外行变换每一步都只动行不能动列动列就变成列变换性质完全不同了。7. 矩阵运算中的高频错误与排查技巧7.1 维度不匹配还硬乘这是出现频率最高的错误。练习时拿到 (AB) 先写一行检查语句A 的列数 ? B 的行数不相等就直接停。这里没有“勉为其难乘一下”的余地。7.2 忘掉矩阵乘法不可交换某一步不自觉就把 (AB) 换成了 (BA)。检查方法是凡是出现矩阵相乘的表达式都要问自己“这个交换有依据吗”。如果没有就不能动。7.3 转置和逆的“反序规则”记成“正序”((AB)^T B^T A^T)((AB)^{-1} B^{-1} A^{-1})。我把这两句话统称为“矩阵的穿墙反序定律”。每用一次就默念一遍“反序、反序、反序”直到变成一个肌肉记忆。7.4 逆矩阵公式中用错符号二阶逆矩阵公式中副对角线位置要变号别忘了 (-b) 和 (-c)。也不要把 (ad-bc) 写成 (adbc)。7.5 数乘和乘法混淆(2A) 是每个元素乘2(2 \times A) 如果写成矩阵乘法的意思可能根本不匹配维度。在书面表达里默认数字和矩阵之间的“乘法”是数乘。7.6 常见问题速查表错误类型典型表现排查方法维度不匹配强行相乘先标出两个矩阵的维度检查中间数相等交换律误用(AB BA)提醒自己除非特别说明矩阵不能交换转置反序错误((AB)^T A^T B^T)反向书写先转置后交换顺序逆矩阵反序错误((AB)^{-1} A^{-1} B^{-1})反向书写行变换动了列求解逆矩阵时列也被变了只允许对行做操作行列式算错逆矩阵结果全盘皆错先用二阶、三阶公式复核行列式再求逆8. 矩阵运算法则的实际应用场景8.1 数据处理中的批量运算表格数据比如学生成绩、商品销量天然就是行表示样本、列表示特征的矩阵。对每一列求均值、标准差相当于用数乘和加法对矩阵做全局变换。转置操作在数据格式转换中经常用到比如把“时间×商品”的表格转置成“商品×时间”。8.2 图像处理中的矩阵操作数字图像的本质是一个矩阵灰度图是一个二维矩阵彩色图是三个二维矩阵叠加。图像的缩放、旋转、平移本质上都是矩阵乘法操作。卷积操作也涉及矩阵的逐元素运算。理解了矩阵乘法不可交换也就理解了为什么图像处理中“先旋转再裁剪”和“先裁剪再旋转”效果不同。8.3 机器学习中的特征与权重神经网络的前向传播本质上就是一连串矩阵乘法和非线性变换。一个输入向量乘以权重矩阵得到隐藏层激活值多个样本的数据批量过网络就是一次大规模矩阵乘法。理解了 ((AB)^T B^T A^T)在推导梯度反向传播时就不会在矩阵维度上卡壳。8.4 线性方程组的统一表示现实工程中大量方程组可以写成 (AX B) 的形式。可逆矩阵对应的方程组有唯一解不可逆则可能无解或无穷多解。理解逆矩阵的运算律就能理解为什么对系数矩阵进行预处理左右乘以不同矩阵可以在不改变解的情况下简化计算。写在最后我对矩阵运算练习的一点体会我从接触矩阵到现在最受益的其实不是背公式而是每次算完都用数值小例子验证一遍。比如算完 ((AB)^T)就用2阶矩阵手动验一次 (B^T A^T) 是否相等算完 (A^{-1})就顺手乘回去看看是否得到单位矩阵 (I)。这种“自我验证”的习惯比看十遍书都有用因为它在第一时间掐灭了错误推导的苗头。还有一个小技巧做计算题时把每一步变换的尺寸都标在旁边。(2\times3) 乘 (3\times2) 得 (2\times2)标注之后高维矩阵运算很难迷路。矩阵运算看似规矩繁多但只要抓住“逐元素”和“行乘列”两条主线再盯紧“不可交换”和“反序法则”两个特例就足够应付绝大多数实际问题了。希望这份笔记能帮你在矩阵运算这条路上少踩几个坑。如果你也在学习中遇到过别的匪夷所思的错误欢迎在评论区一起讨论。