矩阵乘法的运算规则看似怪异、烦琐:
有没有想过,为什么要这样定义呢?
许多线性代数教材着眼于“算”,却鲜少对图景的整体把握。死记硬背之下,不少学生知其然而不知其所以然。本文试图从线性算子的复合,自然引出矩阵乘法规则。如果你能耐心读到最后,定会豁然开朗。
撰文 | 朱慧坚(玉林师范学院数学与统计学院副教授)、丁玖(美国南密西西比大学数学系教授)
所谓矩阵,就是个数为两个正整数m和n之积mn的数,像士兵列阵那样,按m行和n列排成一个上下和左右对齐的整齐长方形数组,左右两边再用一对方(或圆)括号括起来,表示这整体是一个数学对象。“矩阵”这一数学词汇由英国数学家西尔维斯特(James Sylvester,1814-1897)于1850年引进,其英文单词matrix源自拉丁语“子宫”一词,因为他认为矩阵是行列式的生成器。然而,矩阵概念的早期痕迹很早就出现在中国古代数学典籍如《九章算术》中,这是我们应该引以自豪的。在数学书里,矩阵通常用一个英文大写字母表示,然后用它对应的小写字母连带两个下标表示该矩阵中的一
素。在本文中,为了方便和具体起见,我们假定矩阵中的所有元素都是实数。
从19世纪中叶开始,矩阵理论迎来了系统发展时期。西尔维斯特和与他同时代的同胞数学家凯莱(Arthur Cayley,1821-1895),以及稍晚的德国数学家弗罗贝尼乌斯(Ferdinand Frobenius,1849-1917),是几大主要奠基者。例如,与实对称矩阵密切相关的实二次型理论中的“惯性定理”,就是西尔维斯特的杰作,矩阵理论中更广为人知的“凯莱-汉密尔顿定理(Cayley-Hamilton theorem)”的重要结论是:任意一个方阵(即行数等于列数的矩阵)都满足它所对应的特征多项式方程,而弗罗贝尼乌斯研究了与特征多项式相关的特征值和特征向量。将给定矩阵代入特征多项式,就必须已经定义了矩阵的几个基本代数运算,包括矩阵的乘法。这些运算规则加上其他代数操作如“矩阵转置”,则由凯莱系统地加以引进。
像矩阵这样的数组好玩吗?当然好玩!它们是已有一百七十年左右历史的数学学科“矩阵理论”的主要“玩具”。矩阵理论作为一门学科,和理工科大学生必修的另一门课程微积分一样,在工程技术甚至社会科学中有无穷无尽的应用。在小学我们玩数,在中学我们主要也在玩数,当然有时也会玩一玩两行两列或三行三列的小型矩阵,以及对应的行列式。但是对于一般的m行n列矩阵,在中学玩它们还是略微早了一点(当然少数超前学习的天才少年除外),只能在大学里的一门叫做“线性代数”的基础课上慢慢学、仔细学,学懂学透,最后才能把它变成解决实际问题的强大数学武器。
“不自然”的乘法规则
对于数,有两项基本代数运算,即加法和乘法,小学里翻来覆去练习的四则运算中的其他两种运算——减法和除法——实际上分别是加法和乘法的“逆运算”,而非独立的运算。数的加法可以直接推广到矩阵的加法。就像一般只能就同类物体的个数相加,只有同行数同列数的矩阵才可以相加,结果也是同样尺寸的矩阵,其中的每个元素都是相加矩阵对应位置的元素之和,这是最自然不过的矩阵加法,所有元素各就各位,公平合理。这个矩阵加法的定义特别简单,和高中解析几何中向量加法的做法一模一样,线性代数课堂上大概没有哪个学生会对此感到困惑不解。
然而,矩阵乘法的运算规则看上去似乎就不是那么“十分自然”的了,甚至不少学生第一次见到它的定义时会觉得相当繁琐,搞得迷惑不清,为了通过期末考试,只好死记硬背定义中的矩阵乘积计算公式:m行k列矩阵A和k行n列矩阵B的乘积矩阵AB是一个m行n
其中,表示行的下标i取从1到m中的每一个自然数,表示列的下标j取从1到n中的每一个自然数。
无论是已经学过线性代数的大学毕业生还是本学期正在学的在校生,或者是以前从未接触过矩阵理论的读者,有没有想一想,为什么矩阵的乘法要有如上这番颇为复杂的定义?难道就不能像矩阵的加法那样如法炮制,将数的相乘直接推广?这个看起来最直截了当的矩阵乘法定义为:对于行数和列数都一样的两个矩阵A和B,它们的乘积是个也有
应用领域),否则它也不会被冠以法国数学家阿达马(Jacques Hadamard,1865-1963)和德国数学家舒尔(Issai Schur,1875-1941)的大名:“阿达马乘积”或“舒尔乘积”,然而它仅能在少数场所派用,几乎上不了线性代数的大学课本。为了不至于与应用最广的通常的矩阵乘积相混淆,此种有特殊用途的矩阵乘积一般以符号⨀表示。线性代数中还有其他以数学大人物名字命名的矩阵乘积,如“克罗内克乘积”,它的符号是⨂。克罗内克(Leopold Kronecker,1823-1891)是个家境富裕的德国数学家,以他名字命名的数学术语也同样“富有”,数目超过一打,最有名的是数学中常用到的“克罗内克德尔塔”,即δij,它的值当i=j时等于1,当i≠j时等于0。
这篇文章试图回答标题中的提问:矩阵乘法为什么是这样定义的?固然,数学中的名词定义都是人为的,有时它被定义得出乎意料以至于看似“随心所欲”,然而不合常理的定义绝不会有持久的生命力,早就被扫进了历史的垃圾箱。既然矩阵的乘法存在了至少一个半世纪,它就一定有其“任凭风吹雨打,我自岿然不动”的合理之处。我们的目标就在于论证它的合理性。
从函数到算子
为了绝大多数读者都能理解最终的回答,我们先复习中学里学过的函数概念。令人惊讶的是,这个概念在数学史上慢吞吞地进化了几百年,成就了当今最有价值的一个基本而又覆盖面极其广泛的名词。对于给定的任意两个非空集合X和Y,如果存在一个规则,记为f,使得在此规则下,对于X中的任一元素x,都有Y中的唯一一个元素y与之对应,则称f为定义在X上的一个函数,更完全的写法是f:X→Y,其定义域为X,对应于X中元素x的Y中的元素y称为函数f在x的值,记为y=f(x)。集合Y中的所有函数值的全体组成的集合称为f的值域,它是Y的一个子集。
这个定义实在是太优美了,因为它涉及到的X和Y是任意抽象集合,规则也可以是任意的,比我们生活中的“社会规则”的总和还要多,所以它能够包罗万象,用于数学的一切部门,甚至许多无关数学的地方。比如一个糖尿病患者一年内每天自测血糖,这就定义了一个“血糖值函数”,它的定义域是该年份的365天,值域是这一年内每天测得的血糖数值全体组成的某个有理数集合。现在,我们将函数的一般概念限制到更为特殊的情形,在这个情形中,集合X和Y取所谓的“欧几里得空间”。
什么是欧几里得空间?在初中我们就学过平面上的笛卡尔xy-直角坐标系,在该坐标平面上,每一个几何点P都带上了两个坐标——分别称为P点的横坐标x和纵坐标y,通常用圆
也被叫做“向量空间”,因为其中的每一个数对是一个2维向量。将平面坐标系增加一维变成空间坐标系,类似的向量加法和标量乘向量运算就定义
引进一般的维欧几里得空间,其基本思想依然如旧。这个线性空间中的所有维向量是将个实数排成一行(或排成一列),左右两端再用圆(或方)括号括起来形成的全部“元组”,其中第个数称为给定向量的第个分量。与和完全类似,中任意两向量及的和向量之各分量定义为和的对应分量之和,实数和向量的标量乘法结果也是向量,其分量为和的分量之积。
有了这些预备性概念,我们回过头用函数的观点进一步讨论矩阵。设A是一个有m行n列
线性算子和矩阵表示
那么我们就称T是线性算子。
作为一个简单的练习,读者可以令A为一个有3行3列的矩阵,比如将1到9这九个数摆成三行三列,然后验证等式A(x+y)=Ax+Ay和A(ξx)=ξAx。这样我们就知道对任一m行n列
定义在欧几里得空间上线性算子的“矩阵表示”这个概念,可以直接延伸到将任一个有穷维线性空间X映入到另一个有穷维线性空间Y的一般线性算子T:X→Y上,在两个线性空间各自的“基底”之下,T拥有一个对应的矩阵表示。这就是为什么“矩阵理论”在研究有穷维线性空间之间线性算子理论的数学分支“线性代数”中,是个威力无穷的武器。顺便一提,如果将上一句中的“有穷维”换为“无穷维”,那就进入了更为广泛的数学领域:泛函分析。
复合线性算子
现在,我们可以比较轻松地回答本文标题提出的问题了。不过在此之前,我们还需要翻到中学的代数课本,复习在抽象函数定义后引进的复合函数概念。设X, Y以及Z为任意三个给定的非空集合。令f:X→Y和g:Y→为给定的两个函数,则g和f的复合函数是这样的一个函数h:X→Z,它在X中的任一元素x的值是函数g在f(x)的值,即h(x)=g(f(x))。这时,我们将复合函数h记为g ∘ f,故有(g(∘ f)(x)=g(f(x))。三个函数f:X→Y, g:Y→和h:Z→W的复合函数h ∘ g ∘ f:X→W由等式(h ∘ g ∘ f)(x)=h(g(f(x)))类似定义。由此可见,复合函数的运算“∘”满足结合律,即(h ∘ g) ∘ f=h ∘ (g ∘ f)。
其中A是S所对应的矩阵,B是T所对应的矩阵。由于结合律对线性算子的复合运算成立,而上面刚好证明了复合线性算子等同于对应的矩阵相乘,故矩阵的乘法运算也满足结合律,即对任何m行k列矩阵A,k行l列矩阵B,及l行n列矩阵C,等式(AB)C=A(BC)都成立。对此有疑问的读者不妨取三个两行两列的矩阵分别乘出(AB)C和A(BC)来验证一下。要知道在数学中,有意义的乘法运算基本上都满足结合律,如算术里数的乘法、线性代数里的矩阵乘法、傅里叶分析里的函数卷积等等等等,莫不如此。
在结束这篇文章之前,我们举一个简单的例子,让具体的数字计算代替前面的一般性论证,再次说明两个线性算子的复合算子的矩阵表示是各自矩阵表示的乘积,同时巩固我
我们通过几个具体的的2维向量(x, y)来验证上述结果。易见,向量(x, y)=(1, 0)被S映成向量(5,7),后者被T映成向量(19,43),它的转置恰好就是矩阵AB乘以将(1,0)转置后的列向量的结果:AB的第一列。同理,向量(x, y)= (0,1)被S映成向量(6,8),后者被T映成向量(22,50),它的转置恰好就是矩阵AB乘以将(0,1)转置后的列向量的结果:AB的第二列。最后,如果令向量(x, y)= (1,1),则它被S映成向量(11,15),后者被T映成向量(41,93),它的转置恰好就是矩阵AB乘以将(1,1)转置后的列向量的结果。
读者们,如果以前不甚清楚如下事实,估计现在你们已经懂得:为什么两个可以相乘的矩阵(即第一个矩阵的列数等于第二个矩阵的行数),在复合函数的意义下,乘法的规则必须由公式(1)给出。
写于2024年9月25日星期三
特 别 提 示
1. 进入『返朴』微信公众号底部菜单“精品专栏“,可查阅不同主题系列科普文章。
2. 『返朴』提供按月检索文章功能。关注公众号,回复四位数组成的年份+月份,如“1903”,可获取2019年3月的文章索引,以此类推。
版权说明:欢迎个人转发,任何形式的媒体或机构未经授权,不得转载和摘编。转载授权请在「返朴」微信公众号内联系后台。