矩阵
矩阵(matrix)是把一组数按行、列排成的长方形数表。矩阵的运算可以把多个数量之间的关系放在一起计算:一组方程的系数、一次平面变换,或几种投入与产出的关系,都能用矩阵表示。
理解矩阵,可以先记住一个具体含义:每一列记录一种单位输入会产生多少输出。 下面先用这个含义计算,再解释矩阵的乘法、方程和逆。本文主要使用实数;复数矩阵的基本运算遵循相同规则。
一张数表怎样表示一个计算过程
设有两种原料包,含有甲、乙两种成分。第一种包含甲一份、乙零份,第二种包含甲一份、乙一份。按“每行一种成分,每列一种原料包”排列,得到 第一列 是第一种包的成分,第二列 是第二种包的成分。
取第一种包两包、第二种包一包,总成分是多少?先分别计算两类成分:甲有 份,乙有 份。把输入的两种包数竖排,计算可简写成 这就是矩阵乘向量。左边的向量记录投入,右边的向量记录产出。把两包和一包换成任意数量 ,便有 中间的式子尤其有用:矩阵乘向量,就是用输入的各个数给矩阵各列加权,再相加。 实际配料量应非负;作为数学运算,这个式子对任意实数 都有定义。
行、列与元素的记号
有 行、 列的矩阵称为 矩阵,第 行、第 列的数记作 。例如 是一个二行三列矩阵,。下标先写行号,再写列号。
由于每列对应一种输入, 可以接收三个数;由于每行计算一种输出,结果有两个数。例如 因此 矩阵把 个输入变成 个输出。一般公式是 求和号只是把前面逐项相乘再相加的过程压缩写下;它没有增加新的运算规则。
同形状矩阵的加法按对应位置进行;数乘则把每个元素乘以同一个数。例如 若两张表的行列分别表示相同种类的量,相加便是在合计它们。若一列是长度、另一列是时间,组合这些列以前仍需说明计算的实际含义。
矩阵乘矩阵:把两个过程接起来
回到原料矩阵 。再设 先把第一种投入加倍, 再把投入换算成成分。连续计算得到 若想只用一个矩阵完成这两步,它的第一列应是输入 时的输出 ,第二列应是输入 时的输出 。所以 这里右边的 先做,左边的 后做。乘积的每一列,也就是把 的对应列交给 计算。由此得到通常的“行乘列”规则: 若 是 , 是 ,中间的 相同,表示前一步输出的数量恰好等于后一步需要的输入数量;乘积是 。
交换两步会怎样?先做 ,再做 ,得到
图中的箭头按实际执行顺序排列;乘积记号则把先执行的矩阵写在右边。
取 ,两种次序分别得到 和 。这就说明矩阵乘法通常不交换。它仍满足结合律:三个过程依次执行,先把哪两步合并不改变总效果,因此 。
从数表看到图形的变化
把 看作平面点, 的作用仍是 :点的高度不变,水平位置增加一个高度值。横轴上的点不动,越高的点向右移动得越多,这种变换称为剪切。
图中单位正方形的四个顶点依次变为 。下边保持不变,上边整体右移一格,于是得到平行四边形。它的底和高仍为一,面积也仍为一。
一般二阶矩阵的两列 与 围成平行四边形。用四边形的有向面积公式,按顶点 绕行一周,所得有向面积是 这就是二阶行列式 ;普通面积是它的绝对值,符号记录绕行方向。剪切矩阵的行列式为一。如果两列在同一直线上,围成的面积为零,平面就被压到一条线或一个点。
图中每个小格的面积是一。右图虽然列向量都不为零,所有输入仍只能产生同一条线上的输出;行列式为零反映的是方向之间的依赖。
亲手改变矩阵
先保持 ,只改变 。上边沿左右移动,底边与高都不变,因而面积不变。再选择“压成直线”,观察两个列向量怎样变得共线,正方形怎样失去面积。最后试着找一个面积仍为 1、方向却翻转的矩阵,用 核验。
矩阵怎样改变平面
改变矩阵的四个数,观察单位正方形、两个基向量与面积怎样变化。
静态配图与完整推导见本节正文;交互演示需浏览器启用 JavaScript。
反过来计算:由输出寻找输入
现在给定目标输出 ,要找输入 ,就得到矩阵方程 。每一行是一条普通方程。例如 表示 第二式减去第一式的两倍:,于是 。代回第一式,剩下 。任取 ,就得到 例如 给出 , 给出 ,两者代入都产生同一输出。三个未知量只有两条独立约束,还留下一个可以自由改变的方向。
两个标出的解之差是 ,沿这个方向移动,输出保持不变;直线上每个点都代表一个解。
消元之所以保留全部解,是因为操作可以撤销:交换两行可以换回来,加上另一行的倍数可以再减去。右端必须跟随同样的操作。若消元得到 ,则没有解;若每个未知量都被确定,则解唯一;否则保留自由参数。这比单纯比较方程数和未知数个数更准确。
核是所有产生零输出的输入,记作 ;秩是列向量中独立方向的个数。上例第二列是第一列的两倍,第一、第三列独立,所以秩为二;核由 的所有倍数组成。一般的维数关系及证明见线性代数,线性无关的含义见向量空间。
逆矩阵:完整撤销一次变换
若每种目标输出都对应唯一输入,就可以把计算反向进行。对方阵,这个反向过程用逆矩阵表示: 单位矩阵 的对角线为一,其余为零,乘上它等于不改变输入。
以 为例。给定输出 ,输入满足 、。两式相减得 ,再代回得 。所以 逆矩阵的元素由反解方程得来,并非把原元素各自取倒数。给定输出 ,逆运算得到 ;代回有 、。
二阶矩阵 在 时,其逆为 将两矩阵相乘,非对角项分别是 和 ,两个对角项都是 ,除去这个数便得到 。若行列式为零,两列不能提供两个独立方向,变换丢失信息,因而无法用双侧逆恢复整个平面。
逆若存在就是唯一的。若 都能撤销 ,则 。撤销两个连续操作还要倒序进行,因此 。
可逆与容易计算并不是一回事
考虑两个很接近的方程 相减得 ,故 。如果第二个测量值增加 ,相减后变为 ,于是 例如 ,,右端只改变万分之一,解却从 变成 。两条约束几乎在说同一件事,细小差异决定的那个方向就很敏感。
实际求解大矩阵时,通常直接消元或分解求解,而不先算完整逆矩阵。算出答案后,应把它代回原方程检查残差;若问题本身敏感,还需结合数据误差评价解的可靠程度。投影与不精确数据的拟合继续见最小二乘法。
矩阵语言怎样形成
《九章算术》的“方程”章已经用算筹排列系数并消去未知量,排列方向与今天的行列习惯不同,但可以辨认出对应的消元步骤。MAA 的研究介绍展示了原问题及其算法。
现代术语 matrix 由 Sylvester 于 1850 年使用,Cayley 在 1858 年的论文中系统研究矩阵运算。行列式、方程求解与线性变换逐渐汇入同一套记号,形成今天的矩阵理论。MacTutor 的矩阵与行列式史记载了这些工作。
参考资料与后续阅读
- MIT OpenCourseWare,Gilbert Strang,18.06 Linear Algebra:矩阵乘法、消元、秩和逆矩阵。
- Strang,《Introduction to Linear Algebra》第 3.5 节:行变换与四个基本子空间。
- J. J. O’Connor、E. F. Robertson,Matrices and determinants:术语与理论形成史。
- 后续可读向量空间、线性代数、最小二乘法和图论。