一、先讲个让我开窍的故事大一刚学线性代数那会儿我对矩阵充满了恐惧。不是怕概念是怕运算。矩阵加法还好理解——对应位置相加嘛。但到了矩阵乘法我就懵了。老师在黑板上画了一堆箭头第一行乘第一列、第一行乘第二列、第二行乘第一列……我跟着画了一遍算对了一道题但心里特别不踏实。我不明白为什么矩阵乘法要这么定义为什么不能像加法一样对应位置相乘就行为什么 AB 不等于 BA这些规则到底是谁规定的、凭什么这么规定我带着满脑子疑问去问老师。老师说“这就是定义你记住就行。”我硬记了一个学期。期末考试拿了 90 分但心里始终别扭——我会算矩阵但不懂矩阵。直到大二我学了计算机图形学。那门课要用矩阵描述 3D 物体的旋转、缩放、平移。某一天我在调试一段代码需要让一个立方体先旋转 30 度再放大 2 倍。我写下两个矩阵 R 和 S然后犹豫了到底是 RS 还是 SR老师在旁边说“你想想物理意义。物体先经过 R 变换再经过 S 变换所以结果是 SR——靠右的矩阵先作用。”那一瞬间我彻底开窍了。矩阵乘法的本质是变换的复合。AB 就是先做 B 这个变换再做 A 这个变换。所以 AB 和 BA 当然不一样——“先穿袜子再穿鞋和先穿鞋再穿袜子”结果完全不同。那一刻所有矩阵运算的规则突然都活了起来。我不再是机械地按公式计算而是能看到每个运算背后的几何画面。今天这篇文章我就把矩阵的基本运算从最直观的角度讲清楚。我不会只告诉你怎么算更要告诉你为什么这么算。读完之后你会发现矩阵不是一堆冷冰冰的数字而是一种有生命、有形状、有动作的数学对象。走起。二、先建立直觉什么是矩阵讲运算之前先理解什么是矩阵。最朴素的理解矩阵是一个长方形的数字表格。比如这是一个 2×3 的矩阵2 行 3 列[[1, 2, 3],[4, 5, 6]]但这只是表面。矩阵真正的含义有三种视角 1数据的表格。比如一个班级的成绩表每行是一个学生每列是一门课。这是最朴素的理解。视角 2向量的组合。矩阵的每一列或每一行都是一个向量。一个 m×n 矩阵就是 n 个 m 维列向量的组合。视角 3线性变换。这是最深刻的理解。一个矩阵代表一个操作——它能把一个向量变成另一个向量。比如旋转矩阵把向量旋转一个角度缩放矩阵把向量拉长缩短。这三种视角对应着矩阵运算的三种意义。学矩阵关键是能在这三种视角之间灵活切换。三、第一个运算矩阵加法矩阵加法是最简单的运算——对应位置相加。[[1, 2], [3, 4]] [[5, 6], [7, 8]] [[6, 8], [10, 12]]注意一个前提两个矩阵必须形状相同才能相加。3×2 的矩阵不能和 2×3 的矩阵相加。几何意义如果把矩阵看作向量的组合那矩阵加法就是对应向量相加。如果把矩阵看作变换那矩阵加法就是两个变换的叠加——但这种叠加在几何上没有特别直观的意义所以矩阵加法的几何视角不如其他运算重要。性质矩阵加法满足你期待的所有性质交换律A B B A结合律(A B) C A (B C)有零元存在零矩阵 O使 A O A有负元每个矩阵 A 有相反矩阵 -A使 A (-A) O加法的性质和普通数字加法完全一样。所以矩阵加法不会给你制造麻烦——它是个温柔的老好人。四、第二个运算数乘数乘是矩阵和一个数相乘——把矩阵的每个元素都乘以那个数。3 × [[1, 2], [3, 4]] [[3, 6], [9, 12]]几何意义如果把矩阵看作变换数乘就是放大或缩小这个变换的力度。举例缩放矩阵 [[2, 0], [0, 2]] 表示把所有向量放大 2 倍。如果你给它乘上 3得到 [[6, 0], [0, 6]]就表示把所有向量放大 6 倍——变换强度变成了 3 倍。如果你给它乘上 -1得到 [[-2, 0], [0, -2]]就表示把所有向量放大 2 倍并翻转方向。性质数乘的性质也很正常k(A B) kA kB(k l)A kA lA(kl)A k(lA)1 · A A记住一点数乘是分配的但乘法的顺序不重要——kA 和 Ak 是一样的。五、第三个运算核心矩阵乘法这是矩阵运算的灵魂也是最容易让初学者懵的地方。规则设 A 是 m×n 矩阵B 是 n×p 矩阵那么 AB 是 m×p 矩阵其元素是(AB)ᵢⱼ A 的第 i 行 · B 的第 j 列点积注意几个关键点第一A 的列数必须等于 B 的行数否则乘法没有定义。这是一个硬性约束。第二乘出来的矩阵形状是 m×p——继承 A 的行数和 B 的列数。第三AB 不等于 BA——矩阵乘法不满足交换律。事实上有时候 AB 能算 BA 算不了因为形状不匹配。具体计算举个简单例子A [[1, 2], [3, 4]]B [[5, 6], [7, 8]]AB 的第 (1,1) 位置 A 的第 1 行 · B 的第 1 列 1·5 2·7 19AB 的第 (1,2) 位置 A 的第 1 行 · B 的第 2 列 1·6 2·8 22AB 的第 (2,1) 位置 A 的第 2 行 · B 的第 1 列 3·5 4·7 43AB 的第 (2,2) 位置 A 的第 2 行 · B 的第 2 列 3·6 4·8 50所以 AB [[19, 22], [43, 50]]算一下 BABA 的第 (1,1) 位置 B 的第 1 行 · A 的第 1 列 5·1 6·3 23BA 的第 (1,2) 位置 B 的第 1 行 · A 的第 2 列 5·2 6·4 34BA 的第 (2,1) 位置 B 的第 2 行 · A 的第 1 列 7·1 8·3 31BA 的第 (2,2) 位置 B 的第 2 行 · A 的第 2 列 7·2 8·4 46所以 BA [[23, 34], [31, 46]]AB 和 BA 完全不同为什么这么定义很多人会问为什么矩阵乘法这么奇怪为什么不像加法一样对应位置相乘答案是矩阵乘法的本质是变换的复合。想象矩阵 A 和 B 都是线性变换。如果你先用 B 变换一个向量 x得到 Bx然后再用 A 变换它得到 A(Bx)。A(Bx) 等于 (AB)x——所以矩阵乘法 AB 代表的是先 B 后 A这个复合变换。这就是矩阵乘法这样定义的根本原因。它是为了让矩阵运算和变换复合这个几何操作完美对应。一个让你印象深刻的例子回到我开头讲的故事。在 3D 图形学里假设R 是旋转 30 度的矩阵S 是放大 2 倍的矩阵如果你想让物体先旋转再放大你应该写 SR——靠右的 R 先作用。如果你想让物体先放大再旋转你应该写 RS——靠右的 S 先作用。这两个结果是不一样的想象一个长方形先旋转 30 度再放大 2 倍长方形旋转了然后整体放大先放大 2 倍再旋转 30 度长方形先放大然后旋转最终位置可能不同如果矩阵不是从原点出发的话结果会差很多。这就是为什么 AB ≠ BA——因为变换的顺序很重要。性质矩阵乘法满足结合律(AB)C A(BC)分配律A(B C) AB AC(A B)C AC BC数乘可以提取k(AB) (kA)B A(kB)但不满足交换律AB ≠ BA一般情况下消去律AB AC 不能推出 B C除非 A 可逆零因子律AB 0 不能推出 A 0 或 B 0这些不满足的性质是矩阵运算最容易出错的地方。普通代数的直觉在矩阵世界里经常失效——必须时刻保持警惕。单位矩阵单位矩阵 I 是矩阵乘法的单位元——对任何矩阵 AAI IA A。它的样子是对角线全是 1其他位置全是 0。比如 3 阶单位矩阵[[1, 0, 0],[0, 1, 0],[0, 0, 1]]几何意义单位矩阵代表什么都不做的变换——把每个向量原封不动地返回。这就像数字世界的 1。六、第四个运算转置转置就是把矩阵翻转——行变列列变行。A [[1, 2, 3], [4, 5, 6]]Aᵀ [[1, 4], [2, 5], [3, 6]]原本是 2×3 的矩阵转置后变成 3×2。几何意义转置的几何意义比较微妙不像其他运算那么直观。粗略地说转置和内积有深刻的联系(Ax) · y x · (Aᵀy)。这个公式叫做伴随关系是泛函分析的基础。在欧氏空间里正交矩阵满足 Aᵀ A⁻¹——这是转置最重要的应用之一。性质转置满足(Aᵀ)ᵀ A转置两次回到原矩阵(A B)ᵀ Aᵀ Bᵀ(kA)ᵀ kAᵀ(AB)ᵀ BᵀAᵀ注意顺序反了最后一条非常重要。乘积的转置等于转置的乘积反序。这就像穿衣服——“先穿袜子再穿鞋”脱的时候必须先脱鞋再脱袜子。对称矩阵和反对称矩阵如果一个矩阵满足 Aᵀ A叫做对称矩阵。比如[[1, 2, 3],[2, 4, 5],[3, 5, 6]]对称矩阵有非常好的性质——所有特征值都是实数并且可以正交对角化。这是谱定理的内容是量子力学、主成分分析、统计学的核心数学工具。如果一个矩阵满足 Aᵀ -A叫做反对称矩阵。反对称矩阵的对角线元素必须是零。它在物理如角动量算子和微分几何如外微分中有重要应用。七、第五个运算求逆如果一个方阵 A 存在另一个矩阵 B使得 AB BA I那 B 就是 A 的逆矩阵记作 A⁻¹。几何意义逆矩阵代表反向变换——如果 A 把向量 x 变成 y那 A⁻¹ 把 y 变回 x。举例旋转 30 度的逆是旋转 -30 度。放大 2 倍的逆是缩小 2 倍即放大 1/2 倍。不是所有矩阵都有逆只有方阵才可能有逆非方阵的逆概念不一样叫伪逆。更进一步只有行列式不为零的方阵才有逆。为什么因为行列式为零意味着这个变换压缩了空间——把高维压成了低维。压缩后信息丢失了无法反过来恢复。比如二维矩阵 [[1, 2], [2, 4]]行列式 0。它把整个二维平面压缩到一条直线上。你无法从那条直线上的一点反推出原平面上的点因为很多点都映射到了同一个点。求逆的方法求 2×2 矩阵的逆很简单A [[a, b], [c, d]]A⁻¹ (1/(ad-bc)) · [[d, -b], [-c, a]]求高阶矩阵的逆有几种方法伴随矩阵法A⁻¹ (1/det(A)) · adj(A)。理论上漂亮但计算量大只适合手算小矩阵。初等行变换法把 [A | I] 通过初等行变换化成 [I | A⁻¹]。这是最实用的方法也是计算机用的方法。LU 分解、QR 分解等更高级的数值方法用于大规模计算。逆矩阵的性质(A⁻¹)⁻¹ A(AB)⁻¹ B⁻¹A⁻¹又是反序(Aᵀ)⁻¹ (A⁻¹)ᵀ(kA)⁻¹ (1/k) · A⁻¹注意 (AB)⁻¹ B⁻¹A⁻¹——又是反序。这和转置的规则一样。原因也类似要撤销一个复合变换必须按相反的顺序撤销。八、第六个运算迹矩阵的迹trace是对角线元素之和记作 tr(A)。A [[1, 2, 3], [4, 5, 6], [7, 8, 9]]tr(A) 1 5 9 15几何意义迹是一个不变量——相似矩阵的迹相等。这意味着迹反映了线性变换本身的某种本质特征与你选什么基无关。更深刻地迹等于所有特征值的和。这是迹的灵魂。性质tr(A B) tr(A) tr(B)tr(kA) k · tr(A)tr(Aᵀ) tr(A)tr(AB) tr(BA)即使 AB ≠ BA最后一条非常神奇——AB 和 BA 一般不相等但它们的迹相等。这是迹最有用的性质在物理、统计、机器学习中频繁出现。九、第七个运算分块矩阵把一个大矩阵切成几个小块每块也是一个矩阵——这就是分块矩阵。举例一个 4×4 矩阵可以看作 2×2 的块矩阵每个块是 2×2 的小矩阵[[A, B],[C, D]]其中 A、B、C、D 都是 2×2 矩阵。为什么分块第一简化计算。某些大矩阵有特殊结构比如有大块的零分块后能利用这些结构加速计算。第二揭示结构。分块能让你看清矩阵的组织方式找到隐藏的规律。第三便于并行。在大规模计算中分块矩阵可以分给不同的处理器同时计算——这是 GPU 加速、分布式机器学习的基础。分块矩阵的运算分块矩阵的运算和普通矩阵几乎一样——只要分块的大小匹配。分块加法对应块相加。分块乘法和普通矩阵乘法一样但每个元素相乘变成块矩阵相乘。举例[[A, B], [C, D]] × [[E, F], [G, H]] [[AE BG, AF BH], [CE DG, CF DH]]形式和 2×2 矩阵乘法一模一样只是 A、B、…、H 是矩阵而不是数。这种自相似的结构是数学最美的现象之一——同一套规则可以用在不同的层次上。十、贯穿所有运算的几个心法讲完所有基本运算分享几个心法帮你真正掌握矩阵运算。心法 1永远关注形状矩阵运算中形状是第一位的。每次写下一个表达式先确认形状对不对m×n 加 m×n m×n加法要求形状相同m×n 乘 n×p m×p乘法要求中间维度相等m×n 转置 n×m形状不对运算根本无法进行。形状对了至少有计算的可能。养成先看形状的习惯能避免 80% 的低级错误。心法 2顺序很重要矩阵世界没有交换律。AB 和 BA 是两个完全不同的东西。涉及顺序的几个规则(AB)ᵀ BᵀAᵀ反序(AB)⁻¹ B⁻¹A⁻¹反序变换复合(AB)x A(Bx)B 先作用这些反序现象都源于一个共同的几何直觉撤销/翻转一个复合操作必须按相反顺序。心法 3几何直觉是王道任何时候算到一个奇怪的结果回到几何意义问自己这个矩阵代表什么变换这个乘积代表什么复合这个逆代表什么反向操作几何直觉是矩阵运算的灵魂。光靠代数公式你永远只是会算有了几何直觉你才懂。心法 4特殊矩阵要熟悉零矩阵、单位矩阵、对角矩阵、对称矩阵、正交矩阵、置换矩阵、初等矩阵——这些特殊矩阵每个都有自己的个性和应用场景。熟悉它们的性质能让你的计算事半功倍。心法 5多动手算矩阵运算的肌肉记忆很重要。看 10 遍不如算 1 遍。建议每个新概念学完立刻拿 2×2 和 3×3 的小矩阵实际算一遍。算的过程中所有抽象概念都会变得具体。十一、矩阵运算的应用讲了这么多理论最后看看矩阵运算在实际中怎么用。机器学习神经网络的本质就是矩阵乘法的连续作用。一层神经网络做一次矩阵乘法加上非线性激活几十层叠加起来就是深度学习。计算机图形学3D 物体的旋转、缩放、平移、投影都是矩阵变换。游戏引擎、CAD 软件、电影特效底层都是大量的矩阵运算。搜索引擎Google 的 PageRank 算法本质上是一个特征向量问题——找出网页之间链接关系矩阵的最大特征向量。推荐系统Netflix、淘宝的推荐算法核心是用户-物品矩阵的低秩分解。信号处理傅里叶变换、滤波、压缩都可以用矩阵运算表达。JPEG 图像压缩的本质是 DCT 矩阵变换。密码学椭圆曲线密码、Lattice 密码等现代密码体系都涉及大量矩阵运算。物理学量子力学的状态用向量描述演化用矩阵描述。量子计算的门操作就是酉矩阵的作用。经济学投入产出分析、马尔可夫链、博弈论都离不开矩阵运算。可以说现代世界的运行机制大部分是用矩阵运算写成的。十二、收尾矩阵运算的真正魅力写到这里我想说点心里话。很多人学矩阵运算留下的印象就是一堆公式、一堆规则、一堆为什么这么算的疑惑。考完试就忘了。但矩阵运算的真正魅力不在于会算而在于它打开了一种全新的思维方式。它让你学会用变换的眼光看世界——不是看静态的对象而是看动态的操作。它让你学会用代数和几何双语思考——代数公式背后总有几何画面几何直觉总能写成代数表达。它让你学会用组合和结构的眼光看复杂——任何复杂的对象都可以分解成简单的组件然后用规则组合起来。这些思维方式比任何具体的运算规则都珍贵。它们是你以后做任何和数学相关的工作时最底层、最通用的能力。最后送你三句心里话。第一句不要怕计算的复杂。矩阵运算看起来复杂但每个步骤都有清晰的几何意义。理解了意义再复杂的计算也只是按部就班。第二句不要满足于会算。会算是入门懂是高手能用是大师。学每一个运算都要问自己它在哪里有用它解决了什么问题第三句要把矩阵运算用起来。学完矩阵乘法去写一段代码做图像旋转学完矩阵求逆去解一个线性方程组学完特征值去做一次主成分分析。用过的知识才真正属于你。打开你的笔记本写两个 3×3 的矩阵把它们的加法、乘法、转置、逆都算一遍。算完之后你会发现那些原本枯燥的运算突然变得有意思了。你会感受到——矩阵不是冷冰冰的数字表格它是有生命的数学积木。而你正在用这些积木搭建一个理解世界的新维度。这就是矩阵运算的真正魅力。也是数学最迷人的地方。