矩阵与马尔可夫链
☰ Contents
矩阵是按横行和列排成的一个长方形数表。矩阵乘以一个列的数,会得到一个新的列,所以矩阵是一条把一串数变成另一串数的规则;两个矩阵的乘积,就是先套用一条规则,再套用另一条。
矩阵怎么描述,怎么相加?
描述一个矩阵要说它的阶数:先说行数(横向),再说列数(直向),所以 2 行 3 列的矩阵是 2 × 3 矩阵。一个元素用它所在的行和列来命名: 位于第 2 行、第 1 列。矩阵相加是对应元素逐一相加,所以两个矩阵的阶数必须相同。用分号隔开各行来书写,(1 4; 2 0) + (3 −1; 5 2) = (4 3; 7 2),因为 1 + 3 = 4、4 − 1 = 3、2 + 5 = 7、0 + 2 = 2。这行得通,是因为两个矩阵里同一个位置放的是同一种量,例如某一家店某一种商品的销量。阶数不同的矩阵不能相加,因为有些元素找不到对应的伙伴。纯量乘法是把每个元素都乘上这个数:3 乘 (1 4; 2 0) 等于 (3 12; 6 0)。检查和的方法是减去其中一个矩阵,看能否得回另一个。
同样的点,换了个方向:3×4和4×3
摆出24个点,再换一种摆法
你来试试
A + B 的第 1 行第 2 列是多少?
把这个矩阵乘以 4。第 1 行第 1 列是多少?
矩阵乘法怎么算,为什么 AB 不等于 BA?
两个矩阵相乘时,把左边矩阵的每一行和右边矩阵的每一列配对:对应元素相乘,再把乘积加起来。设 A = (1 2; 3 4)、B = (0 1; 1 0),A 的第 1 行配 B 的第 1 列得 1 × 0 + 2 × 1 = 2,完整的乘积是 AB = (2 1; 4 3)。这条规则让乘积表示“先做一个变换,再做另一个”。AB 通常和 BA 不同:BA = (3 4; 1 2),因为 B 在左边时交换的是 A 的两行,在右边时交换的是 A 的两列。大小也可能让乘积不存在:只有当 A 的列数等于 B 的行数时,AB 才存在,所以 2 × 3 乘 3 × 2 得到 2 × 2。检查 BA 的一个元素:B 的第 1 行配 A 的第 1 列得 0 × 1 + 1 × 3 = 3。
A 的一行必须和 B 的一列一样长,而两个阶数外侧的数字,就是答案的阶数。
这条规则之所以这样定,是因为它在算帐:一行数量乘以一列价格,就是一家店的营业额。
反过来,3 × 2 乘 2 × 3 得到 3 × 3,所以两个乘积连阶数都不一定相同。矩阵乘法不满足交换律。
单位矩阵 I 的主对角线上都是 1,其余位置都是 0;乘以 I 不会改变任何东西,就像一个数乘以 1 一样。A 的逆矩阵是和 A 相乘得到 I 的那个矩阵。A 的幂呈现的规律用数学归纳法证明:先在 n = 1 时验证公式,再把假设成立的矩阵多乘一次 A。详见 矩阵的乘法、用矩阵乘法合并数据、为什么AB不等于BA、单位矩阵和零矩阵和用归纳法求矩阵的幂。
你来试试
这个乘积能算出来吗?
这个乘积的规格是多少?
行列式量的是什么?
对于 2 × 2 矩阵 (a b; c d),行列式是 ad − bc:主对角线的乘积减去另一条对角线的乘积。它是矩阵把面积放大的倍数。(4 2; 5 3) 的行列式是 4 × 3 − 2 × 5 = 12 − 10 = 2,所以单位正方形变成面积为 2 的平行四边形。这个公式算出的是面积,因为两个列 (4, 5) 和 (2, 3) 正是这个平行四边形的两边,而 ad − bc 就是带正负号的面积。行列式为负表示还做了一次镜射。行列式为 0 则完全不同:整个平面被压到一条直线或一个点上,所以矩阵没有逆矩阵,例如 (2 4; 1 2),其中 2 × 2 − 4 × 1 = 0。检查:面积为 3 的图形会变成面积 3 × 2 = 6。
det [[a, b], [0, 1]] = a × 1 − b × 0 = a,所以b从未出现:错切不改变面积
把面积变成两倍
行列式为 0 时,不同的点会落到同一个点上,再也没有办法把它们分开送回去。
行列式不为 0 时,求 (a b; c d) 的逆矩阵只要三步:交换 a 和 d,改变 b 和 c 的正负号,再把每个元素除以 ad − bc。用乘法检查:乘积是 I。
逆矩阵一步就能解方程组。把方程组写成 A X = b,系数放在 A 里,未知数放在列 X 里,常数放在 b 里,再把两边从左边同乘 ,X 就单独留下了。
3 × 3 行列式沿着一行展开:第 1 行的每个元素,乘以删去它所在的行和列之后剩下的 2 × 2 行列式,正负号依次为 +、−、+。它量的是体积,而且恰好在没有逆矩阵时等于 0。3 × 3 逆矩阵是余因子矩阵的转置除以行列式,一步就能解三个方程。详见 2×2矩阵的行列式、2×2矩阵的逆矩阵、用逆矩阵解方程组、3×3矩阵的行列式、3×3矩阵的逆矩阵和用逆矩阵解三元方程组。
你来试试
这个矩阵的行列式是多少?
这个矩阵有逆矩阵吗?
什么是特征值和特征向量?
方阵 A 的特征向量是一个非零的列,A 只会把它拉长或缩短,而拉伸的倍数就是它的特征值:。乘以 A = (4 −1; 2 1) 时,大多数列都会改变方向,但 (1, 1) 回来时是 (3, 3),因为 4 × 1 − 1 × 1 = 3 且 2 × 1 + 1 × 1 = 3,所以 (1, 1) 是特征值为 3 的特征向量。特征向量的任何倍数也是特征向量,所以特征向量指的是一个方向。负的特征值会把方向反转,0 则把它压扁。特征向量重要,是因为沿着它们,矩阵的作用就像普通的乘法,所以求幂很容易:把 A 作用五次,(1, 1) 就被放大 倍。求特征向量要从特征值开始,特征值是 的解,每个特征值再给出一个方向。验证一个声称的特征向量:A 乘 (1, 2) 得 (2, 4),是原列的两倍,所以另一个特征值是 2。
Av 与 v 的方向相差 16°,所以 Av ≠ λv:A 在拉伸这个向量的同时也旋转了它,因此它不是特征向量
旋转 v,直到 Av 与 v 落在同一条直线上
求特征值时,把 改写成 。一个非零列被送到零,表示 没有逆矩阵,所以 。减去 就是从每个对角元素减去 ,所以这里 ,这就是特征多项式。它的根 2 和 3 就是特征值。
对每个特征值解 。在 时两行都得出 y = x,所以 v = (1, 1);在 时两行都得出 y = 2x,所以 v = (1, 2)。
把特征向量作为 P 的各列,再把特征值按同样的顺序放在 D 的对角线上。于是 A P = P D,所以 。幂也就跟着出来了,因为中间的每个 都互相抵消:,而 可以逐个元素求出。详见 特征值和特征向量、特征多项式、求特征向量、对角化2×2矩阵和用对角化求矩阵的幂。
你来试试
是什么样子的?
这个矩阵的特征多项式是什么?
什么是马尔可夫链,它为什么会稳定下来?
马尔可夫链在固定几种状态之间移动,每一步只取决于目前的状态。移动的概率填成一个转移矩阵 T,T 乘以今年的分布就得到明年的分布。假设每年城市里有 0.2 的人搬到乡下,乡下有 0.3 的人搬到城市。T 的每一列代表一个起始状态,所以每一列的元素加起来等于 1。如果两地各有 500 人,明年城市就有 400 + 150 = 550 人,因为 500 人中有 留下,另外 500 人中有 搬来。正则的链会稳定下来,是因为 T 会让某一个分布保持不变,而起点里其余的部分每一步都在缩小。这里那个分布让双向的流量相等,城市因此占所有人的 。陷阱状态是没有人会离开的状态,最终会收容所有能到达它的人。验证这个稳定分布: 等于 400 的 。
这个比例与 40/60 仍相差 60 个百分点,且每一步这个差距都会减半:(a₀ − 0.4) × 0.5ᵗ
从全部处于 A 开始,让时间向前推进,直到比例不再变化
n 年后的分布是 乘以起始分布,而把 T 对角化,求 就很容易了。
转移图用状态之间的箭头表示同样的数字,留在原地的比例画成一个回到自己的圈。如果 T 的某个幂的所有元素都是正数,这条链就是正则的。一个状态如果唯一的箭头指回自己,进去的人就全被困住,这样的链就不是正则的。
让所有人一开始都在城市,分布就会稳定下来。稳定的分布是 T 不会改变的分布,所以它是 T 的特征值为 1 的特征向量。解 (T − I) s = 0:两行都得出 2x = 3y,所以长期来看,城市和乡下的人口比是 3 比 2。
每个转移矩阵都有特征值 1,因为它的每一列加起来都是 1。其余特征值的大小都小于 1,所以它们在任何起点中所占的部分每一步都在缩小,最后剩下的就是特征值 1 的特征向量。PageRank 就是网页之间链接矩阵的这个向量。详见 转移矩阵、转移图和长期稳态。
你来试试
城市有80%的人口留下。第1列下面应该填什么?
在转移矩阵中,哪一组元素相加等于1?
接下来通往哪里
矩阵运算说明矩阵对一个列做了什么,行列式说明这能不能复原,特征值则说明矩阵作用很多次之后会发生什么。马尔可夫链就是把最后这个问题,放在一个由概率组成的矩阵上来问。
值得点名的错误
- 逐个元素相乘。矩阵乘法是把左边矩阵的每一行和右边矩阵的每一列配对。
- 以为 AB = BA。两个都要算出来。
- 把矩阵约掉。只有当 A 有逆矩阵时,AB = AC 才能推出 B = C。
- 把行列式为零当成一个很小的答案。它表示这个矩阵没有逆矩阵。
矩阵对图形的作用,在全等、圆的定理与变换(英文)中继续;特征多项式用到的因式分解,来自二次方程与多项式。相关指南:积分的应用与极坐标曲线(英文)和复数。
轮到你了
三题试一试,点选作答。
任何矩阵乘以单位矩阵,得到
[[2, 1], [3, 4]] 的行列式
马尔可夫转移矩阵的每一列加起来等于
常见问题
- 为什么矩阵的 AB 和 BA 不一样?
- 因为矩阵代表一个动作,而动作一般不能交换顺序。把一本书先转九十度再翻面,和先翻面再转九十度,最后的位置不一样。矩阵乘法的定义就是把动作依序组合起来,所以它也继承了这种对顺序的依赖。有些矩阵确实满足 AB 等于 BA,但那是这几个矩阵碰巧如此,不是规则。
- 矩阵的行列式告诉你什么?
- 它是矩阵把面积(二维)或体积(三维)放大的倍数。行列式为 3 表示每个区域都变成原来的三倍大,行列式为负则表示矩阵还把图形翻了面。行列式为零表示矩阵把一切压扁了,这也是行列式为零的矩阵没有逆矩阵的原因:信息已经被毁掉,无法再找回来。
- 怎么用矩阵解方程组?
- 把方程组写成系数矩阵乘以未知数列、等于常数列,然后两边同乘逆矩阵。这样一边只剩下未知数,一次求逆矩阵加一次乘法,就同时得出每一个未知数。如果行列式为零,逆矩阵就不存在,这正好对应方程组无解或有无限多解的情况。
- 用白话说,特征向量是什么?
- 特征向量是矩阵不会让它转向的方向——落在这个方向上的东西只会被拉长或缩短。拉长的倍数就是特征值。矩阵作用时,大多数方向都会被转动;特征向量是少数仍指向原方向的特殊方向,而反复作用最后会把一切都排到它们上面。
- 什么是马尔可夫链?
- 它是一个在固定几种状态之间移动的系统模型,下一步往哪里走的概率只取决于目前的状态,与过去的历程无关。这些概率存放在转移矩阵里,乘一次这个矩阵,模型就前进一步。天气、顾客流失、棋盘游戏的位置和文字预测,都常常用这种方式建模。
- 为什么马尔可夫链会趋于稳定状态?
- 因为反复乘以转移矩阵,会把任何起始分布拉向这个矩阵的主特征向量。每个转移矩阵都恰好有一个特征值等于 1,对应的特征向量就是链会原封不动重现的那个分布。其余的成分每一步都在缩小,所以走了足够多步之后,起点就不再重要。