☰
线性代数矩阵运算全解析:加法、数乘、乘法与特殊矩阵
2026/10/15 1:19:54 网站建设 项目流程

1. 为什么矩阵运算值得单独开一章来讲

线性代数里,向量是“点”,矩阵是“变换”。把矩阵的加法、数量乘法、矩阵乘法这三样东西吃透,后面无论是解线性方程组、求特征值、做二次型,还是跳到机器学习里的神经网络前向传播,本质上都是在反复调用这几条规则。很多同学学完第四章之后觉得“好像会了”,一到做题就卡壳,问题往往不在计算能力,而在于没有真正理解矩阵乘法为什么这样定义、特殊矩阵到底特殊在哪里。

我当年带过几届学生的习题课,也帮不少跨考的朋友补过线性代数。一个很普遍的观察是:矩阵加法几乎没人出错,数量乘法也问题不大,但矩阵乘法一旦涉及维度不匹配、乘法顺序、单位矩阵的位置,错误率立刻飙升。更麻烦的是,很多教材把“特殊矩阵”放在章节末尾一笔带过,导致学生对对角矩阵、数量矩阵、单位矩阵、对称矩阵、反对称矩阵这些概念只有模糊印象,后面遇到矩阵分解、相似对角化时完全接不上。

这篇文章面向三类人:正在学高等代数第四章的在校生、准备考研需要重新梳理线性代数框架的备考者、以及工作中需要用到矩阵运算但基础不牢的开发者。我会把这一章的核心内容拆成可操作的模块,每个定义都配上“为什么这样定义”的解释,每个运算都给出维度检查的方法,特殊矩阵部分会整理成对照表,最后附上我实际教学中总结的常见错误和排查思路。你不需要有很强的数学背景,只要能看懂基本的求和符号,就能跟着走完。

2. 矩阵加法与数量乘法:看似简单,但有两个坑

2.1 矩阵加法的前提条件与逐元素规则

矩阵加法定义非常直接:两个矩阵同型(行数和列数分别相等)时,对应位置的元素相加。设 (A=(a_{ij}){m\times n}),(B=(b{ij}){m\times n}),则 (A+B=(a{ij}+b_{ij})_{m\times n})。

这里的关键词是“同型”。我见过太多人在考试里把 (2\times 3) 的矩阵和 (3\times 2) 的矩阵往一起加,理由是“看起来差不多大”。维度不同就是不能加,没有例外,也没有“广播”一说。广播是编程库里的便利机制,不是数学定义。

矩阵加法满足四条基本性质:交换律 (A+B=B+A)、结合律 ((A+B)+C=A+(B+C))、零矩阵存在 (A+O=A)、负矩阵存在 (A+(-A)=O)。这四条和实数加法完全平行,所以理解起来没有障碍。

注意:零矩阵 (O) 必须和参与运算的矩阵同型。不同型的零矩阵不能直接说“等于”,因为矩阵相等本身就要求同型且对应元素相等。

2.2 数量乘法的本质:每个元素都乘同一个数

数量乘法(也叫数乘)是数 (k) 与矩阵 (A) 的运算,结果是把 (A) 的每个元素都乘以 (k):(kA=(ka_{ij})_{m\times n})。这个定义没有任何维度限制,任何数都可以乘任何矩阵。

数乘满足的运算律包括:(k(A+B)=kA+kB)、((k+l)A=kA+lA)、(k(lA)=(kl)A)、(1\cdot A=A)。这些性质和向量数乘完全一致,本质上矩阵就是“一排向量拼起来”,数乘作用在每个位置上。

我实际批改作业时发现,数乘本身出错很少,但和矩阵乘法混在一起时容易出问题。比如计算 ((kA)B) 和 (k(AB)),有人会犹豫要不要把 (k) 分配到每个元素。答案是:((kA)B=k(AB)),因为 (kA) 的每个元素都乘了 (k),做矩阵乘法时每一行的线性组合都会带上这个因子。这个性质在后续化简中非常常用,值得单独记牢。

2.3 两个容易被忽略的细节

第一个细节:矩阵加法没有“乘法优先级”问题,但数乘和矩阵乘法混在一起时,数乘的优先级高于矩阵乘法。也就是说 (kAB) 默认理解为 (k(AB)),而不是 ((kA)B) 或 (A(kB))——虽然这三者结果相同,但书写习惯上先处理数乘。

第二个细节:矩阵的减法定义为 (A-B=A+(-1)B),本质上是加法和数乘的复合。考试里如果题目只给了加法,你完全可以用 (A+(-1)B) 来构造减法,不需要额外定义。

3. 矩阵乘法:这一章真正的分水岭

3.1 矩阵乘法的定义与维度匹配规则

设 (A=(a_{ij}){m\times s}),(B=(b{ij})_{s\times n}),则乘积 (C=AB) 是一个 (m\times n) 矩阵,其中

[ c_{ij}=\sum_{k=1}^{s}a_{ik}b_{kj} ]

这个公式的意思是:(C) 的第 (i) 行第 (j) 列元素,等于 (A) 的第 (i) 行与 (B) 的第 (j) 列对应元素乘积之和。

维度匹配规则必须刻在脑子里:左矩阵的列数必须等于右矩阵的行数。也就是 (A_{m\times s}\cdot B_{s\times n}=C_{m\times n}),中间的 (s) 必须一致,结果的维度是“外框”——取左边的行数 (m) 和右边的列数 (n)。

我教过一个很实用的记忆方法:把维度写成 (m\times s) 和 (s\times n),中间两个 (s) 划掉,剩下 (m\times n) 就是结果维度。这个方法在考试时能帮你快速判断一个乘法是否合法,也能预判结果形状。

3.2 为什么矩阵乘法这样定义

这是学生问得最多的问题。为什么不是对应元素相乘?为什么要有求和?

从线性变换的角度看,矩阵是线性变换的表示。如果 (A) 表示变换 (T_A),(B) 表示变换 (T_B),那么复合变换 (T_A\circ T_B) 的矩阵表示就应该是 (AB)。复合变换的定义是“先做 (B) 再做 (A)”,代入基向量的像,自然就得到求和形式的乘法规则。

从线性组合的角度看,(AB) 的每一列是 (A) 的列向量的线性组合,组合系数来自 (B) 的对应列。这个视角在解线性方程组时特别有用:(Ax=b) 可以理解为“用 (A) 的列向量线性组合出 (b)”。

从计算的角度看,求和形式保证了结合律 ((AB)C=A(BC)) 成立,这是矩阵乘法最重要的性质之一。如果改成对应元素相乘,结合律就不成立了,整个线性代数的框架都会崩塌。

3.3 矩阵乘法的运算律与反例

矩阵乘法满足结合律 ((AB)C=A(BC))、左分配律 (A(B+C)=AB+AC)、右分配律 ((A+B)C=AC+BC)、与数乘的相容性 (k(AB)=(kA)B=A(kB))。

但矩阵乘法不满足交换律。也就是说,一般情况下 (AB\neq BA)。这是矩阵运算和实数运算最大的区别,也是考试中设置陷阱的重灾区。

我整理过几个经典反例,建议你亲手算一遍:

  • 取 (A=\begin{pmatrix}1&0\0&0\end{pmatrix}),(B=\begin{pmatrix}0&0\1&0\end{pmatrix}),则 (AB=\begin{pmatrix}0&0\0&0\end{pmatrix}),而 (BA=\begin{pmatrix}0&0\1&0\end{pmatrix})。两者不相等。
  • 取 (A=\begin{pmatrix}1&1\0&0\end{pmatrix}),(B=\begin{pmatrix}1&0\1&0\end{pmatrix}),则 (AB=\begin{pmatrix}2&0\0&0\end{pmatrix}),(BA=\begin{pmatrix}1&1\0&0\end{pmatrix})。

另一个重要性质是消去律不成立:(AB=AC) 且 (A\neq O) 时,不能推出 (B=C)。反例:取 (A=\begin{pmatrix}1&0\0&0\end{pmatrix}),(B=\begin{pmatrix}0&0\1&0\end{pmatrix}),(C=\begin{pmatrix}0&0\2&0\end{pmatrix}),则 (AB=AC=O),但 (B\neq C)。

提示:遇到 (AB=O) 时,不要下意识认为 (A=O) 或 (B=O)。两个非零矩阵相乘完全可能得到零矩阵,这是矩阵环和实数域的本质区别。

3.4 矩阵乘法的实操计算流程

我建议按以下步骤计算 (AB):

  1. 先写维度:确认 (A) 的列数等于 (B) 的行数,写出结果维度。
  2. 画网格:在草稿纸上画出结果矩阵的空白网格,标注每个位置。
  3. 逐元素计算:对每个 (c_{ij}),取 (A) 的第 (i) 行和 (B) 的第 (j) 列,做点积。
  4. 检查:结果矩阵的维度是否与预期一致,是否有明显的计算错误。

举个例子,(A=\begin{pmatrix}1&2\3&4\end{pmatrix}),(B=\begin{pmatrix}5&6\7&8\end{pmatrix})。

(c_{11}=1\times5+2\times7=19),(c_{12}=1\times6+2\times8=22),(c_{21}=3\times5+4\times7=43),(c_{22}=3\times6+4\times8=50)。

所以 (AB=\begin{pmatrix}19&22\43&50\end{pmatrix})。

而 (BA=\begin{pmatrix}5\times1+6\times3&5\times2+6\times4\7\times1+8\times3&7\times2+8\times4\end{pmatrix}=\begin{pmatrix}23&34\31&46\end{pmatrix})。两者不同,再次验证交换律不成立。

4. 特殊矩阵:不是“特殊”,而是“常用”

4.1 零矩阵、单位矩阵与数量矩阵

零矩阵 (O_{m\times n}) 是所有元素为 0 的矩阵。它的核心性质是:(A+O=A),(AO=O),(OA=O)(维度匹配时)。注意零矩阵不唯一,不同维度对应不同的零矩阵。

单位矩阵 (I_n)(也记作 (E_n))是主对角线元素为 1、其余为 0 的 (n) 阶方阵。它的核心性质是:(AI_n=A),(I_mA=A)。单位矩阵在矩阵乘法中的地位相当于实数中的 1。

数量矩阵是 (kI_n),即主对角线全为 (k)、其余为 0 的方阵。它和任何同阶方阵相乘都可交换:((kI)A=A(kI)=kA)。这个性质在化简矩阵方程时非常有用。

我见过一个常见错误:把单位矩阵写成所有元素为 1 的矩阵。单位矩阵只有主对角线是 1,其余全是 0。所有元素为 1 的矩阵通常记作 (J),性质完全不同。

4.2 对角矩阵与对称矩阵

对角矩阵是主对角线以外元素全为 0 的方阵,记作 (\text{diag}(d_1,d_2,\dots,d_n))。对角矩阵的乘法特别简单:两个同阶对角矩阵相乘,结果还是对角矩阵,对角线元素对应相乘。对角矩阵的幂也容易算:(\text{diag}(d_1,\dots,d_n)^k=\text{diag}(d_1^k,\dots,d_n^k))。

对称矩阵满足 (A^T=A),即 (a_{ij}=a_{ji})。对称矩阵在二次型和特征值问题中大量出现。反对称矩阵满足 (A^T=-A),即 (a_{ij}=-a_{ji}),主对角线元素必须为 0。

一个实用结论:任意方阵都可以分解为对称矩阵和反对称矩阵之和:

[ A=\frac{A+A^T}{2}+\frac{A-A^T}{2} ]

这个分解在理论推导中很常用,建议记住。

4.3 特殊矩阵对照表

矩阵类型定义核心性质常见用途
零矩阵所有元素为 0(A+O=A),(AO=O)加法单位元
单位矩阵主对角线为 1,其余为 0(AI=IA=A)乘法单位元
数量矩阵主对角线为 (k),其余为 0与任意同阶方阵可交换化简矩阵方程
对角矩阵非主对角线元素为 0乘法逐元素对应相乘幂运算、相似对角化
对称矩阵(A^T=A)特征值为实数,可正交对角化二次型、协方差矩阵
反对称矩阵(A^T=-A)主对角线为 0,特征值为纯虚数或 0旋转、李代数

4.4 转置与矩阵乘法的关系

转置运算满足 ((AB)^T=B^TA^T)。注意顺序要反过来,这是考试高频考点。我见过太多人写成 ((AB)^T=A^TB^T),这是错误的。

验证方法:设 (A) 是 (m\times s),(B) 是 (s\times n),则 (AB) 是 (m\times n),((AB)^T) 是 (n\times m)。而 (B^T) 是 (n\times s),(A^T) 是 (s\times m),所以 (B^TA^T) 是 (n\times m),维度匹配。如果写成 (A^TB^T),维度是 (s\times m) 乘 (n\times s),中间 (m) 和 (n) 不一定相等,根本不合法。

这个性质可以推广到多个矩阵:((A_1A_2\cdots A_k)^T=A_k^T\cdots A_2^TA_1^T)。记忆口诀是“转置穿脱衣,顺序要倒过来”。

5. 实操中常见的错误与排查方法

5.1 维度不匹配的排查流程

维度错误是矩阵运算中最常见的问题。我总结了一个三步排查法:

  1. 写出每个矩阵的维度,标注在矩阵旁边。
  2. 检查乘法链中相邻矩阵的维度是否首尾相接。
  3. 预判结果维度,与题目要求或后续运算对比。

举个例子:已知 (A_{2\times3}),(B_{3\times4}),(C_{4\times2}),判断 (ABC) 是否合法。(AB) 是 (2\times4),再乘 (C_{4\times2}) 得到 (2\times2),合法。如果题目要求 (ACB),则 (AC) 是 (2\times2),再乘 (B_{3\times4}),中间 (2\neq3),不合法。

注意:编程中 numpy 的@运算符和np.dot都遵循同样的维度规则,但*是逐元素乘法,不要混淆。我见过不少人在 Python 里用*做矩阵乘法,结果得到逐元素乘积,调试半天才发现问题。

5.2 乘法顺序错误的典型场景

矩阵乘法不满足交换律,所以顺序至关重要。常见错误场景包括:

  • 计算 ((A+B)^2) 时写成 (A^2+2AB+B^2)。正确展开是 (A^2+AB+BA+B^2),只有当 (AB=BA) 时才能合并为 (2AB)。
  • 计算 ((AB)^2) 时写成 (A^2B^2)。正确结果是 (ABAB),不能随意交换。
  • 解矩阵方程 (AX=B) 时,左乘 (A^{-1}) 得 (X=A^{-1}B),而不是 (BA^{-1})。

我建议在做每一步变形时,都在旁边标注“左乘”或“右乘”,养成习惯后错误率会大幅下降。

5.3 特殊矩阵相关的易错点

单位矩阵的维度容易搞混。(AI_n=A) 要求 (A) 的列数等于 (n);(I_mA=A) 要求 (A) 的行数等于 (m)。写单位矩阵时一定要根据上下文确定阶数。

对角矩阵相乘时,有人会误以为需要做完整的矩阵乘法。实际上两个同阶对角矩阵相乘,只需要把对角线元素对应相乘,非对角线位置全是 0,不需要计算。

对称矩阵的乘积不一定是对称矩阵。(A) 和 (B) 都对称时,(AB) 对称的充要条件是 (AB=BA)。这个结论在考试中经常以判断题形式出现。

5.4 常见问题速查表

问题现象可能原因排查方法解决方案
乘法结果维度不对维度匹配错误写出所有矩阵维度调整乘法顺序或转置
(AB\neq BA)矩阵乘法不可交换检查是否误用交换律按定义重新计算
(AB=O) 但 (A,B\neq O)存在零因子验证是否真的得到零矩阵接受这一事实,不要强行推导 (A=O)
((AB)^T) 写错转置顺序错误检查维度是否匹配改为 (B^TA^T)
单位矩阵写错混淆单位矩阵和全 1 矩阵检查主对角线单位矩阵只有对角线为 1

6. 从这一章到后续内容的衔接

矩阵运算这一章是后续所有内容的基石。矩阵的逆、初等变换、秩、线性方程组、特征值、二次型,全部建立在加法、数乘、乘法这三条基本运算之上。我个人的经验是,如果这一章有漏洞,后面会越学越吃力,因为每一章都会反复调用这些基础规则。

一个很实用的建议:学完这一章后,找几个 (2\times2) 和 (3\times3) 的矩阵,把加法、数乘、乘法、转置、特殊矩阵的性质全部手算一遍。不要用计算器,不要用编程库,就手算。手算的过程会强迫你关注每一个元素的来源,这种“慢”恰恰是建立直觉的最快方式。

另外,如果你后续要学编程中的矩阵运算,numpy 的@、np.matmul、np.dot都遵循数学定义,但要注意np.dot对高维数组的行为和@略有不同。我一般建议直接用@,语义最清晰。至于*,它永远是逐元素乘法,不要拿来当矩阵乘法用。

最后分享一个我自己的习惯:每次遇到矩阵等式变形,先在草稿纸角落写下“左乘/右乘”两个字,确认顺序后再动笔。这个习惯帮我避免了至少一半的计算错误。矩阵运算不难,难的是细心和规范。把这一章的基础打牢,后面的路会顺很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询