资讯详情

矩阵运算法则详解:从加减乘到转置、逆矩阵与行列式

📅 2026/10/16 4:06:19 | 华诺云谱 👁 阅读
矩阵运算法则详解:从加减乘到转置、逆矩阵与行列式
矩阵运算法则这个东西说起来是大学低年级的内容可我在实际带人和做项目的时候发现真正能把基本法则内化成“随手能用”的人并不多。很多人能背诵矩阵乘法是“行乘列”却在判断AB和BA是否相等、转置之后要不要反着乘、行列式为零到底意味着什么这些问题上卡壳。这篇笔记我想按自己实际使用的习惯把基本矩阵运算法则重新梳理一遍加减法、标量乘法、矩阵乘法、转置、逆矩阵和行列式每一块都讲清楚法则本身也讲清楚法则背后的逻辑以及做题、写代码时容易踩的坑。适合正在学线性代数的学生、准备入门机器学习的开发者也包括需要手工处理矩阵数据的工程师可以收藏起来对照着用。1. 先把矩阵看成“有规则的数据表”再谈法则1.1 行列与维度是一切法则的前提矩阵最基本的身份是m行n列的数表记作m×n。元素的位置靠下标定位比如a_ij表示第i行第j列的值。这句话听起来简单但几乎所有的运算法则都以维度为前提能不能做加法看两个矩阵的维度是否一致能不能做乘法看左边矩阵的列数是否等于右边矩阵的行数转置之后维度怎么变看m和n怎么交换逆矩阵为什么只跟方阵有关因为只有方阵才有行数等于列数的特殊条件。我建议把“维度”两个字刻在脑子里。拿电子表格来类比矩阵就是一张表行是样本列是特征。加法就是把两张布局完全相同的表在同一个格子相加标量乘法就是拿一个数去乘表格里每一个格子矩阵乘法是一张表的行与另一张表的列做点积。先把矩阵还原成“表格”这个直观对象再去看法则就不会觉得它们是飘在空中的符号游戏。很多初学者之所以老犯错就是因为只记操作步骤没有把维度作为第一道检查关卡。1.2 基本法则全家福先知道要学什么为了避免只见树木不见森林我先列一张完整清单后面的章节会逐条展开。运算记号维度前提结果维度一句话用途矩阵加法ABA与B维度相同维度不变数据叠加、求均值矩阵减法A-BA与B维度相同维度不变残差、差分标量乘法cA任意矩阵维度不变缩放、加权矩阵乘法ABA的列数 B的行数m×nA行数 × B列数变换复合、数据投影转置A^T任意矩阵n×m行与列互换逆矩阵A^-1方阵且行列式不为0与原矩阵同维度解方程组、反向变换行列式det(A) 或A方阵这个表不是用来背诵的而是在学习每一条法则时回来对照。你会发现所有法则的“允许条件”都绕不开维度后面讨论运算律时也处处都是维度在起作用。矩阵运算法则之所以让人觉得繁琐不是每条法则本身多难而是它们之间的关联需要一条一条串起来这张表就是串联的地图。1.3 读这本笔记的三个建议如果只想快速上手我建议采用三条阅读姿势。第一看到任何一条法则先复述它的维度前提再说结果形状。比如“矩阵乘法要求左矩阵的列数等于右矩阵的行数结果的形状等于左矩阵的行数乘右矩阵的列数”。能说出这句话就过滤掉了大部分错误。第二拿一个2×2或2×3的小矩阵亲手把结果算一遍。不要只看公式推导要真正动笔写中间过程。小矩阵的好处是计算量小出错容易发现而且能让你看清结构。第三有条件的话用数值库或者现成工具把结果验证一遍。计算工具不是代替思考而是充当“快速核对答案”的助手。我会在后面专门讲这种双重验证的习惯。2. 加减法与标量乘法规则最简单坑却不少2.1 加减法同位置元素对应操作矩阵加减法是所有运算中最直观的一种。两个矩阵维度完全一致时把同一位置的元素相加或相减。例如| 1 2 | | 5 6 | | 6 8 | | 3 4 | | 7 8 | | 10 12 |AB的每个元素都是对应元素相加A-B则是对应元素相减本质上可以看成A (-1)×B。因为规则简单它反而最容易出错有人会忘记维度必须相同把2×3矩阵和3×2矩阵硬加在一起也有人把矩阵减法理解成每个位置取绝对值差。这些都是定义理解上的偏差。矩阵加法的交换律和结合律都成立ABBA(AB)CA(BC)。零矩阵O在这里扮演数字0的角色AOA不过O必须和A同维度否则连加法都没有意义。这类运算的实际场景很好找。比如两张同尺寸图片的像素矩阵相加会得到叠加曝光效果原始数据减去均值矩阵就完成了中心化处理多个样本做加权平均本质上就是标量乘法和矩阵加法的组合。所以不要小看加减法它是后面所有复杂操作的地基。2.2 标量乘法一个数穿透所有元素标量乘法是指用一个数c去乘矩阵A结果矩阵里的每个元素都变成原来的a_ij乘以c。比如c2时不是只乘第一行或者只乘主对角线而是每一行、每一列、每一个位置都要翻倍。我曾经见过有人把“矩阵乘以2”理解成只乘某一行这是把数乘和初等行变换混为一谈了。标量乘法是贯穿整个矩阵的这也是它名字里“标量”的含义——一个普通的数而不是矩阵。标量乘法与加减法组合后会得到线性组合c₁A c₂B。这类操作在线性回归、图像融合、神经网络参数更新里非常常见。比如梯度下降更新参数时经常会写W_new W_old - learning_rate × grad这个式子就是一个标量乘法加矩阵减法。标量乘法还有一个方便之处它可以跟矩阵乘法灵活交换位置比如(2A)B 2(AB) A(2B)因为所有元素都被同一个常数缩放常数因子在复杂表达式中可以随意移动位置这能省不少事。2.3 线性组合从基础法则到高频应用加减法和标量乘法合在一起构成线性代数里最核心的“线性”c(AB)cAcB(cd)AcAdA。可以把它类比成提取公因数但要注意这里的公因数只能是常数不能是矩阵。矩阵因子做不到随意提取这一点到了矩阵乘法部分会更明显。很多初学者会问这些简单法则到底有什么用其实它们是所有高级运算的砖块。后面求逆矩阵用的初等行变换本质上就是行加法、行倍乘、行交换的组合行列式展开和化简也依赖加减法和标量乘法。没有这些基础后面只能靠死记硬背。理解线性组合等于提前给逆矩阵、特征值这些主题做了铺垫。2.4 这个阶段最容易出现的三个错误我结合自己观察到的和亲身踩过的坑把加减法、标量乘法阶段最容易出的问题列一下。第一维度不一致仍然强行相加。在纸面上没人拦你但结果完全没定义。建议每次做加减之前先写下两个矩阵的维度对比一致再动手。第二标量乘法只作用于局部。我见过有人算3A的时候只把第一行乘以3后面几行保持原样。检查方法很简单抽一个非第一行的元素看一眼如果没变那肯定错了。第三减法符号处理不到位。A-B A (-1)B意味着矩阵里每个元素都要变号不能只给第一行或者某个元素变号。建议把减号统一处理成加上负矩阵能显著降低符号错误。3. 矩阵乘法行乘列的来历、维度规则和“不能交换”的真相3.1 为什么是行乘列从线性变换的复合理解矩阵乘法的定义很多人第一次看到会很不适应为什么不是两个矩阵对应位置相乘为什么偏偏是“行乘列”我学习时找到的最好理解角度是把矩阵看作一种“动作”。一个矩阵右乘向量x表示对这个向量做一次线性变换。比如矩阵[[0,-1],[1,0]]作用在向量上效果是逆时针旋转90度矩阵[[2,0],[0,2]]作用在向量上效果是每个分量都拉长两倍。现在假设有两个变换A和B我想先做B动作再做A动作整体效果写成A(Bx)。去掉括号以后这个复合动作就是AB。要完整描述复合后的效果光靠对应位置相乘做不到必须逐行扫描B对向量的作用把B的每一列被A如何改变都算出来于是就有了行乘列公式。定义式的标准写法是若A是m×k矩阵B是k×n矩阵则CAB是m×n矩阵且c_ij等于A的第i行与B的第j列对应元素乘积之和。举个例子设A是2×3矩阵B是3×2矩阵A | 1 2 3 | | 4 5 6 |B | 7 8 | | 9 10 | | 11 12 |那么AB的第一个元素是1×7 2×9 3×11 58第一行第二个元素是1×8 2×10 3×12 64第二行第一个元素是4×7 5×9 6×11 139第二行第二个元素是4×8 5×10 6×12 154。所以AB是2×2矩阵。实际计算时我习惯先把A的第i行写出来再把B的第j列写出来逐项相乘再相加。这一步别跳宁可慢一点我第一次做的时候图快经常少算项或者加错后来改成把中间乘积写全错误率立刻下降。3.2 维度匹配口诀内维一致外维定形矩阵乘法的维度规则可以浓缩成一句话内维一致外维定形。A是m行k列B是k行n列乘积就是m行n列。中间的k必须相等否则公式根本没有定义。想象两个齿轮要咬合A的列齿数必须等于B的行齿数齿轮才转得起来。写代码的时候这个规则体现得最直接。比如一个100×3的特征矩阵乘以一个3×1的权重向量得到100×1的预测值。中间维度3是特征数量必须对齐。如果特征矩阵是100×4权重向量还是3×1数值库会直接报错。手工计算没有人提醒你所以更需要用口诀自查把两个维度写在一起m×k × k×n m×n一旦中间k不相等立刻停止运算。我见过太多人算到最后才发现结果根本做不下去根源就是最初没有做维度检查。3.3 运算律对照哪些成立哪些要警惕矩阵乘法的结合律和分配律与普通乘法类似但交换律是大坑。先说成立的部分(AB)C A(BC)前提是维度链条允许A(BC) AB AC(AB)C AC BC前提是矩阵加法的维度一致。这些性质让式子可以像普通多项式一样展开、合并只要不改变相乘的顺序。接下来是重点AB和BA通常不相等。即便A、B都是同样大小的方阵绝大多数情况下结果也不同。举一个常用反例A | 1 2 | | 3 4 |B | 5 6 | | 7 8 |计算一下AB | 19 22 |BA | 23 34 |。两个结果完全不同。 | 43 50 | | 31 46 |这说明任何推导中一旦出现把AB改写成BA的念头基本就是在给自己挖坑。我再补充几个“看起来像数字运算但其实不成立”的结论AB0不能推出A0或B0ABAC且A≠0不能推出BC(AB)² A² AB BA B²中间的AB和BA不能合并成2AB因为交换律不成立。这些差异正是矩阵代数与普通数字运算最本质的区别。3.4 特殊矩阵与矩阵幂容易忽略的细节单位矩阵I是矩阵乘法里的“数字1”AI AIA A前提是维度匹配。零矩阵O则像数字0AO OOA O。对角矩阵相乘更简单对应位置元素直接相乘比如diag(a₁,a₂)乘以diag(b₁,b₂)等于diag(a₁b₁,a₂b₂)。还有一个容易被忽略的操作矩阵的幂。A² AAA³ AAA依次类推。注意只有A和B可交换的时候才有(AB)ᵏ AᵏBᵏ如果不可交换这个公式不成立。实际应用里马尔可夫链的状态转移矩阵做多步转移就是反复做矩阵乘法本质上是矩阵的幂。刚开始学的时候可以把矩阵幂当成“多个矩阵乘法串在一起”来理解但要记住因为乘法顺序敏感所有和幂有关的公式都必须检查顺序。3.5 用两行代码验证乘法性质用手算验证性质非常直观但有时候代码验证更快。下面这个例子用Python生态里常用的numpy定义两个2×2矩阵比较AB和BA。import numpy as np A np.array([[1, 2], [3, 4]]) B np.array([[5, 6], [7, 8]]) AB A B BA B A print(AB \n, AB) print(BA \n, BA) print(AB BA ?, np.array_equal(AB, BA))运行结果会显示两个矩阵不相等。这不是代码或机器的bug而是矩阵乘法本身的特性。学会用这种“极小例子”做性质验证比背一百遍“矩阵乘法不满足交换律”都管用。我建议每位初学者都建立这样一个小工具箱随手能写出两个2×2矩阵验证一条性质再继续往下学。4. 转置、逆矩阵与行列式三条常被混记的法则一次讲透4.1 转置行列互换复合运算要翻顺序转置是最容易的运算之一把矩阵的行和列互换第i行第j列的元素跑到第j行第i列。一个m×n矩阵转置后变成n×m。我第一次学的时候觉得这只是“把矩阵斜着翻一下”后来发现真正容易出错的是复合运算的转置顺序。转置的运算法则有四条建议放在一起记。第一(Aᵀ)ᵀ A转置两次还原。第二(AB)ᵀ Aᵀ Bᵀ加法的转置可以先转再逐个加。第三(cA)ᵀ cAᵀ常数直接提出去。第四(AB)ᵀ BᵀAᵀ乘法转置要交换顺序——这是最反直觉的一条。为什么(AB)ᵀ BᵀAᵀ回到维度看假设A是m×kB是k×n那么AB是m×n转置后是n×m。要让等式右边也是n×mBᵀ是n×kAᵀ是k×m两者相乘正好也是n×m。如果写成AᵀBᵀ维度是k×m乘n×k内维k和n经常对不上通常根本乘不了。所以“交换顺序”不是人为规定而是维度条件逼出来的结果。可以用生活类比加深记忆先穿袜子再穿鞋回家脱鞋的时候必须先脱鞋再脱袜子。转置的顺序就是“脱衣服”的顺序后穿上的先脱最后一层最先处理。与转置相关的常见特殊矩阵包括对称矩阵Aᵀ A主对角线两侧元素对称相等反对称矩阵Aᵀ -A主对角线上的元素必须为0。协方差矩阵、旋转矩阵里对称矩阵非常常见机器学习中会反复碰到。4.2 逆矩阵存在条件、2×2公式与求逆习惯逆矩阵可以理解为“矩阵的除法”但它不是把每个元素取倒数。一个n阶方阵A的逆矩阵B满足AB BA I记为A⁻¹。存在逆矩阵的前提有两个第一必须是方阵第二行列式不为0。这句话可以拆开理解不是方阵行列数不同根本没有资格谈逆是方阵但行列式为0说明这个变换把空间压扁了信息丢失无法反向还原。求逆具体怎么操作分规模看。2×2矩阵有现成公式如果A | a b |则A⁻¹ 1/(ad-bc) × | d -b |。注意主对角线交换位置副对角线加负号前面那个ad-bc就是行列式它必须非0。更大的矩阵可以用高斯-约旦消元法把[A|I]写成增广矩阵通过初等行变换把左边变成I右边就自然变成A⁻¹。这个方法步骤长但每一步都用到了第二章讲的加减法和标量乘法算到后面会很熟练。逆矩阵的运算法则也要记牢(A⁻¹)⁻¹ A(AB)⁻¹ B⁻¹A⁻¹逆的复合同样要反转顺序(Aᵀ)⁻¹ (A⁻¹)ᵀ转置和求逆可以交换。这些性质在化简复杂表达式时很有用。我在实际操作中会提醒自己不要轻易把求逆看成廉价操作。矩阵接近奇异时求逆会放大数值误差所以处理线性方程组时我通常避免显式求逆改用专门的求解方法后面第五章还会专门说这个习惯。4.3 行列式从几何意义到运算律不再只当计算工具行列式是一个方阵对应的一个数记作det(A)或|A|。2×2矩阵的行列式是ad-bc3×3可以用对角线法则展开更大的矩阵通常先做初等行变换再展开。行列式最大的价值不是算出那个数本身而是它的判据作用det(A)0当且仅当矩阵不可逆等价于对应的线性方程组没有唯一解也代表这个变换把空间压扁了。把行列式理解成二维面积或三维体积的缩放倍数会很直观。一个矩阵对应一个线性变换变换会把一块区域拉伸、旋转、甚至压扁。行列式的绝对值就是面积或体积缩放倍数等于0说明面积被压成一条线或一个点自然无法还原。这也是“行列式为0则不可逆”的几何含义。行列式的运算律有一条非常关键并经常被用到det(AB) det(A)det(B)所以两个变换依次进行面积缩放是相乘关系。此外det(Aᵀ) det(A)转置不改变行列式det(A⁻¹) 1/det(A)逆过程把缩放反向交换两行行列式变号某行乘以常数k行列式乘以k一行加上另一行的倍数行列式不变。最后两条组合起来才能解释化简行列式的正确性。不少人在计算时会混淆“某行乘以k”和“矩阵标量乘法”。矩阵标量乘法是每个元素都乘k行列式会变成原来的k的n次方倍n是矩阵阶数而某行乘以k行列式只变成原来的k倍。这两个是完全不同的操作应用场景也不同。4.4 迹一个低开销却很有用的小运算迹在基本矩阵运算里经常被单列一条指的是主对角线元素之和记作tr(A)。它和行列式一样把整张矩阵压缩成一个数但计算量要小得多。迹有两条非常实用的性质tr(AB) tr(A) tr(B)以及tr(AB) tr(BA)。第二条称为循环不变式即使A和B分别是m×k和k×m这个等式也成立。推广之后tr(ABC) tr(CAB)这样的循环移动也成立。为什么基本法则笔记要提迹因为它是后续很多领域的桥梁。比如矩阵的特征值之和等于迹协方差矩阵的迹可以衡量总方差。特征值本身是更靠后的主题但提前知道这个连接点能让前面学的基本法则变得有方向。我还记得第一次明白tr(AB) tr(BA)时有一种“原来如此”的惊喜因为从维度上看AB和BA可能是不同形状的矩阵但它们的对角线之和竟然相同。这一点在手算验证一些复杂矩阵表达式时非常省力。5. 实战自查清单我踩过的坑和现在的检查习惯5.1 维度错误是头号杀手三步检查法如果要我统计身边人做矩阵运算最常见的错误维度错误稳居第一。症状包括把3×2和2×3直接相加、把两个方阵按对应元素乘当作矩阵乘法、用逆矩阵公式之前不看行列式。这些问题不是公式不会而是没有把“先验证维度”变成肌肉记忆。我的检查习惯是三步走。第一步写下两个矩阵的维度例如(3,2)和(2,4)。第二步对照运算规则检查做加法看两个维度是否完全一致做乘法看左矩阵列数和右矩阵行数是否一致。第三步预判结果维度再动手加法和结果维度不变乘法的结果维度等于左矩阵行数乘右矩阵列数。这个流程在纸面和代码里通用。在数值库里维度错误会直接抛异常手工计算时没有人提醒只能靠自查。附带提醒一个常见误区矩阵乘法与逐元素乘积是两个不同的运算。在部分编程语言里*表示逐元素乘表示矩阵乘在一些论文写法里A⊙B表示逐元素乘积。初学时不注意区分代码结果会错得莫名其妙而且很难排查。5.2 顺序意识右先左后的矩阵乘法直觉矩阵乘法不交换的几何意义非常实际。假设有一个向量先被矩阵B旋转再被矩阵A拉伸整个过程写成A(Bx) (AB)x。注意先作用的B在右边后作用的A在左边。如果顺序搞反写成BA实际效果可能是先拉伸再旋转通常完全不同。图形学里经常遇到先平移再旋转和先旋转再平移的差异用矩阵表示一看就明白。这个“右先左后”的顺序规则在解方程组时同样适用。解Axb时如果两边左乘A⁻¹得到x A⁻¹b如果想右乘维度往往对不上。左乘是唯一合法操作因为A在x的左边。这也是为什么逆矩阵相关的运算法则总强调顺序。我见过有人把A⁻¹b写成bA⁻¹除了在极特殊的行向量场景这样写大多是错的。养成检查顺序的习惯能避免很多无谓的返工。5.3 求逆不是万能解边界条件要看清求逆公式不是万灵丹。数值计算里有一个基本感受一个矩阵越接近奇异行列式越接近0求逆结果对微小扰动就越敏感。一个在精确数学上可逆的矩阵在浮点误差下可能算出行列式非常接近0求逆结果不可信。所以当矩阵规模变大、条件数很差的时候显式求逆是一件需要谨慎对待的事情。实际处理Axb这类问题时主流数值库通常提供专门的求解函数而不是先算A⁻¹再乘b。直接求解通常数值更稳定计算量也更小。所以我在写代码时会尽量避免显式求逆最多在推导表达式时写A⁻¹。这个习惯是在实际项目里踩过坑之后形成的。对刚开始学的朋友我的建议是手工练习求逆没问题但到计算机上优先考虑更稳定的求解方案。5.4 双重验证用小矩阵和数值库把性质钉死我给自己定的规矩是任何一条矩阵运算性质都先用2×2小矩阵手算一遍再用数值库验证一遍。比如验证(AB)ᵀ BᵀAᵀ就随便取两个2×2矩阵手算AB再转置然后让A、B分别转置后反着相乘看结果是否一致。这类验证每次只要一两分钟却能帮我把法则真正内化成自己的判断而不只是课本上的结论。更进一步可以用特殊矩阵当试金石。把A换成单位矩阵很多性质一眼就能看出来把B换成型如[[1,0],[0,0]]的退化矩阵行列式判断、逆矩阵存在性立刻暴露。用小例子验证代数性质是我写矩阵运算笔记以来一直推荐的做法。最后说一点个人习惯我从来不会尝试一次性把所有法则背完而是每次遇到具体问题时回到这张清单里查一条然后用小矩阵验证一遍时间一长这些法则就变成了肌肉记忆。希望这份笔记也能帮你少吃一点矩阵运算的苦。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑