矩阵与马尔可夫链

☰ Contents

矩阵是按横行和列排成的一个长方形数表。矩阵乘以一个列的数,会得到一个新的列,所以矩阵是一条把一串数变成另一串数的规则;两个矩阵的乘积,就是先套用一条规则,再套用另一条。

矩阵怎么描述,怎么相加?

描述一个矩阵要说它的阶数:先说行数(横向),再说列数(直向),所以 2 行 3 列的矩阵是 2 × 3 矩阵。一个元素用它所在的行和列来命名:a₂₁ 位于第 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 = 12

同样的点,换了个方向:3×4和4×3

摆出24个点,再换一种摆法

A314275
列竖着排。再数列数,得到规格 2 × 3。 完整课程: 矩阵的行数和列数

详见 矩阵的行数和列数和矩阵的加减和数乘。

A3105B14624567+=
逐个元素相加。和的左上角是 3 + 1 = 4。 完整课程: 矩阵的加减和数乘
3105142627+
2 × 2和2 × 3不是同型矩阵:第3列没有可以相加的元素,所以这个加法做不了。 完整课程: 矩阵的加减和数乘

你来试试

A4559B1343+

A + B 的第 1 行第 2 列是多少?

48387×

把这个矩阵乘以 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。

A231402B541032×
第1行配第1列:逐对相乘再相加,2 × 5 + 3 × 1 + 1 × 3 = 16。 完整课程: 矩阵的乘法

A 的一行必须和 B 的一列一样长,而两个阶数外侧的数字,就是答案的阶数。

这条规则之所以这样定,是因为它在算帐:一行数量乘以一列价格,就是一家店的营业额。

S4235price35×
A店卖出4支$3的笔和2本$5的便签本,所以销售额是 4 × 3 + 2 × 5 = $22。 完整课程: 用矩阵乘法合并数据

反过来,3 × 2 乘 2 × 3 得到 3 × 3,所以两个乘积连阶数都不一定相同。矩阵乘法不满足交换律。

AB3211BA1213≠
所以AB和BA是不同的矩阵:矩阵乘法不满足交换律。 完整课程: 为什么AB不等于BA

单位矩阵 I 的主对角线上都是 1,其余位置都是 0;乘以 I 不会改变任何东西,就像一个数乘以 1 一样。A 的逆矩阵是和 A 相乘得到 I 的那个矩阵。A 的幂呈现的规律用数学归纳法证明:先在 n = 1 时验证公式,再把假设成立的矩阵多乘一次 A。详见 矩阵的乘法、用矩阵乘法合并数据、为什么AB不等于BA、单位矩阵和零矩阵和用归纳法求矩阵的幂。

你来试试

3459267553×

这个乘积能算出来吗?

814135167542713861×

这个乘积的规格是多少?

行列式量的是什么?

对于 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。

−2−1123412xy

det [[a, b], [0, 1]] = a × 1 − b × 0 = a,所以b从未出现:错切不改变面积

把面积变成两倍

行列式为 0 时,不同的点会落到同一个点上,再也没有办法把它们分开送回去。

B2412
当两个乘积相等时,det = 0,矩阵没有逆矩阵。 完整课程: 2×2矩阵的行列式

行列式不为 0 时,求 (a b; c d) 的逆矩阵只要三步:交换 a 和 d,改变 b 和 c 的正负号,再把每个元素除以 ad − bc。用乘法检查:乘积是 I。

A3512A⁻¹2−5−13→
这里 ad − bc = 3 × 2 − 5 × 1 = 1,所以 (3 5; 1 2) 的逆矩阵是 (2 −5; −1 3)。 完整课程: 2×2矩阵的逆矩阵

逆矩阵一步就能解方程组。把方程组写成 A X = b,系数放在 A 里,未知数放在列 X 里,常数放在 b 里,再把两边从左边同乘 A⁻¹,X 就单独留下了。

A⁻¹2−5−13b11421×=
算出 A⁻¹b:2 × 11 − 5 × 4 = 2,−11 + 3 × 4 = 1,所以 x = 2,y = 1。 完整课程: 用逆矩阵解方程组

3 × 3 行列式沿着一行展开:第 1 行的每个元素,乘以删去它所在的行和列之后剩下的 2 × 2 行列式,正负号依次为 +、−、+。它量的是体积,而且恰好在没有逆矩阵时等于 0。3 × 3 逆矩阵是余因子矩阵的转置除以行列式,一步就能解三个方程。详见 2×2矩阵的行列式、2×2矩阵的逆矩阵、用逆矩阵解方程组、3×3矩阵的行列式、3×3矩阵的逆矩阵和用逆矩阵解三元方程组。

你来试试

6353

这个矩阵的行列式是多少?

1326

这个矩阵有逆矩阵吗?

什么是特征值和特征向量?

方阵 A 的特征向量是一个非零的列,A 只会把它拉长或缩短,而拉伸的倍数就是它的特征值:A v = λ v。乘以 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) 就被放大 3⁵ 倍。求特征向量要从特征值开始,特征值是 det(A − λI) = 0 的解,每个特征值再给出一个方向。验证一个声称的特征向量:A 乘 (1, 2) 得 (2, 4),是原列的两倍,所以另一个特征值是 2。

Avθ = 20°|Av| = 2.75旋转 16°−3−3−2−2−1−1112233

Av 与 v 的方向相差 16°,所以 Av ≠ λv:A 在拉伸这个向量的同时也旋转了它,因此它不是特征向量

旋转 v,直到 Av 与 v 落在同一条直线上

A4−1211133×=
但(1,1)变回(3,3):方向不变,只是拉伸了三倍。 完整课程: 特征值和特征向量

求特征值时,把 A v = λ v 改写成 (A − λI) v = 0。一个非零列被送到零,表示 A − λI 没有逆矩阵,所以 det(A − λI) = 0。减去 λI 就是从每个对角元素减去 λ,所以这里 det(A − λI) = (4 − λ)(1 − λ) + 2 = λ² − 5λ + 6,这就是特征多项式。它的根 2 和 3 就是特征值。

or
令它等于零并因式分解:A的两个特征值是2和3。 完整课程: 特征多项式

对每个特征值解 (A − λI) v = 0。在 λ = 3 时两行都得出 y = x,所以 v = (1, 1);在 λ = 2 时两行都得出 y = 2x,所以 v = (1, 2)。

把特征向量作为 P 的各列,再把特征值按同样的顺序放在 D 的对角线上。于是 A P = P D,所以 A = P D P⁻¹。幂也就跟着出来了,因为中间的每个 P⁻¹ P 都互相抵消:Aⁿ = P Dⁿ P⁻¹,而 Dⁿ 可以逐个元素求出。详见 特征值和特征向量、特征多项式、求特征向量、对角化2×2矩阵和用对角化求矩阵的幂。

P1112D⁵2430032P⁻¹2−1−11××
所以 A⁵ 只需两次矩阵乘法,不是四次:P 乘 D⁵,再乘 P⁻¹。 完整课程: 用对角化求矩阵的幂

你来试试

A − λI4 − λ−121 − λ

A − λI 是什么样子的?

A1423

这个矩阵的特征多项式是什么?

什么是马尔可夫链,它为什么会稳定下来?

马尔可夫链在固定几种状态之间移动,每一步只取决于目前的状态。移动的概率填成一个转移矩阵 T,T 乘以今年的分布就得到明年的分布。假设每年城市里有 0.2 的人搬到乡下,乡下有 0.3 的人搬到城市。T 的每一列代表一个起始状态,所以每一列的元素加起来等于 1。如果两地各有 500 人,明年城市就有 400 + 150 = 550 人,因为 500 人中有 4/5 留下,另外 500 人中有 3/10 搬来。正则的链会稳定下来,是因为 T 会让某一个分布保持不变,而起点里其余的部分每一步都在缩小。这里那个分布让双向的流量相等,城市因此占所有人的 3/5。陷阱状态是没有人会离开的状态,最终会收容所有能到达它的人。验证这个稳定分布:2/10 等于 400 的 600 = 120 = 3/10。

AB100%0%0.3 →← 0.2πA = 0.4t104812t = 0: A = 100%

这个比例与 40/60 仍相差 60 个百分点,且每一步这个差距都会减半:(a₀ − 0.4) × 0.5ᵗ

从全部处于 A 开始,让时间向前推进,直到比例不再变化

n 年后的分布是 Tⁿ 乘以起始分布,而把 T 对角化,求 Tⁿ 就很容易了。

T0.80.30.20.7now500500550450×=
T乘以今年的分布,就得出明年的:550和450。 完整课程: 转移矩阵

转移图用状态之间的箭头表示同样的数字,留在原地的比例画成一个回到自己的圈。如果 T 的某个幂的所有元素都是正数,这条链就是正则的。一个状态如果唯一的箭头指回自己,进去的人就全被困住,这样的链就不是正则的。

0.80.70.20.3CK
C是城市,K是乡村。每个箭头带着转移过去的比例,一个环形箭头带着留下的比例。 完整课程: 转移图

让所有人一开始都在城市,分布就会稳定下来。稳定的分布是 T 不会改变的分布,所以它是 T 的特征值为 1 的特征向量。解 (T − I) s = 0:两行都得出 2x = 3y,所以长期来看,城市和乡下的人口比是 3 比 2。

citycountryyear 010000year 1800200year 2700300year 3650350year 4625375
所有人都从城市出发,分布逐渐稳定:800、700、650、625。 完整课程: 长期稳态

每个转移矩阵都有特征值 1,因为它的每一列加起来都是 1。其余特征值的大小都小于 1,所以它们在任何起点中所占的部分每一步都在缩小,最后剩下的就是特征值 1 的特征向量。PageRank 就是网页之间链接矩阵的这个向量。详见 转移矩阵、转移图和长期稳态。

你来试试

0.80.1?0.9

城市有80%的人口留下。第1列下面应该填什么?

T0.80.30.20.7

在转移矩阵中,哪一组元素相加等于1?

接下来通往哪里

矩阵运算说明矩阵对一个列做了什么,行列式说明这能不能复原,特征值则说明矩阵作用很多次之后会发生什么。马尔可夫链就是把最后这个问题,放在一个由概率组成的矩阵上来问。

值得点名的错误

矩阵对图形的作用,在全等、圆的定理与变换(英文)中继续;特征多项式用到的因式分解,来自二次方程与多项式。相关指南:积分的应用与极坐标曲线(英文)和复数。

轮到你了

三题试一试,点选作答。

任何矩阵乘以单位矩阵,得到

[[2, 1], [3, 4]] 的行列式

马尔可夫转移矩阵的每一列加起来等于

常见问题

为什么矩阵的 AB 和 BA 不一样?
因为矩阵代表一个动作,而动作一般不能交换顺序。把一本书先转九十度再翻面,和先翻面再转九十度,最后的位置不一样。矩阵乘法的定义就是把动作依序组合起来,所以它也继承了这种对顺序的依赖。有些矩阵确实满足 AB 等于 BA,但那是这几个矩阵碰巧如此,不是规则。
矩阵的行列式告诉你什么?
它是矩阵把面积(二维)或体积(三维)放大的倍数。行列式为 3 表示每个区域都变成原来的三倍大,行列式为负则表示矩阵还把图形翻了面。行列式为零表示矩阵把一切压扁了,这也是行列式为零的矩阵没有逆矩阵的原因:信息已经被毁掉,无法再找回来。
怎么用矩阵解方程组?
把方程组写成系数矩阵乘以未知数列、等于常数列,然后两边同乘逆矩阵。这样一边只剩下未知数,一次求逆矩阵加一次乘法,就同时得出每一个未知数。如果行列式为零,逆矩阵就不存在,这正好对应方程组无解或有无限多解的情况。
用白话说,特征向量是什么?
特征向量是矩阵不会让它转向的方向——落在这个方向上的东西只会被拉长或缩短。拉长的倍数就是特征值。矩阵作用时,大多数方向都会被转动;特征向量是少数仍指向原方向的特殊方向,而反复作用最后会把一切都排到它们上面。
什么是马尔可夫链?
它是一个在固定几种状态之间移动的系统模型,下一步往哪里走的概率只取决于目前的状态,与过去的历程无关。这些概率存放在转移矩阵里,乘一次这个矩阵,模型就前进一步。天气、顾客流失、棋盘游戏的位置和文字预测,都常常用这种方式建模。
为什么马尔可夫链会趋于稳定状态?
因为反复乘以转移矩阵,会把任何起始分布拉向这个矩阵的主特征向量。每个转移矩阵都恰好有一个特征值等于 1,对应的特征向量就是链会原封不动重现的那个分布。其余的成分每一步都在缩小,所以走了足够多步之后,起点就不再重要。
Mr. Chalk