从一组响应到一张矩阵
向量与线性组合把两个输入的响应分别写成向量。输入数量增加后,每次把整组向量重写一遍就很笨重。把这些响应依次放进各列,便得到矩阵:
A=(21−12).
第 j 列记录第 j 个输入增加一单位时的全部响应;第 i 行记录第 i 个观测量怎样依赖所有输入。列与行不是两套不同的模型,而是观察同一张表的两种方式。
一般地,实矩阵 A∈Rm×n 有 m 行、n 列,元素 aij 位于第 i 行、第 j 列。行数对应输出数量,列数对应输入数量,这个解释适用于把矩阵当作响应规则的场景。
矩阵乘向量,就是按列组合
定义矩阵与向量的乘积
设 A 的列为 a1,…,an,输入为 x∈Rn。定义
Ax=x1a1+⋯+xnan.结果属于 Rm。按分量写,就是
(Ax)i=j=1∑naijxj.
因此前面的矩阵满足
A(21)=2(21)+(−12)=(34).
这也解释了维数为什么必须匹配:有多少列,就要提供多少个组合系数。矩阵不必是方阵,例如两个参数可以产生三个观测值。
先检查大小,再谈运算
矩阵的大小不是装饰性记号,而是规定了输入、输出和运算是否有定义。若 A∈Rm×n,那么 Ax 要求 x 有 n 个分量,结果有 m 个分量。两个矩阵只有大小完全相同,才能逐项相加;相乘却只要求中间维数匹配。
例如,若 A 是 2×3,B 是 3×4,则 AB 是 2×4,而 BA 没有定义。即使 A,B 都是方阵,AB 与 BA 都有定义,也不意味着它们相等。
矩阵相等也必须同时满足两点:大小相同,对应元素相同。不能把“对应的几个数一样”当作矩阵相等,更不能像普通分数一样随意约去矩阵因子。
零矩阵、对角矩阵与三角矩阵
零矩阵的每个元素都为零,表示所有输入都产生零输出。记号 0 的具体大小通常由上下文决定。
对角矩阵只允许主对角线上的元素非零:
D=d1000d2000d3,Dx=(d1x1,d2x2,d3x3)T.
它分别缩放各个坐标,没有坐标间的混合。某个 di=0 时,第 i 个输入的信息完全消失。
上三角矩阵的主对角线下方为零,下三角矩阵的主对角线上方为零。它们的重要性在于方程能按顺序求解。例如,上三角系统的最后一行只涉及最后一个未知量,解出后便能向上回代。LU 分解正是利用这种结构。
插值:曲线不是直线,参数关系仍可以线性
给定三个观测点 (1,6),(2,7),(3,5),希望找到一个二次以下的多项式,使它在这些位置的取值恰好等于观测值[1][1] X. Yang, “ENG1005 Week 3: Interpolation and Fitting, Personal Workshop Solutions,” 2024. Personal solutions to Monash ENG1005 workshop problems; source snapshot 77ebe58de2fea53d62533d6dd23caa16108ed109. Repository access may be restricted.. https://github.com/Eryc123Y/ENG1005-2024S2/blob/77ebe58de2fea53d62533d6dd23caa16108ed109/Source%20Code/W3.tex。
设
p(t)=αt2+βt+γ.
把三个输入分别代入,得到
V149123111cαβγ=y675.
第一列是函数 t2 的三个采样值,第二列来自 t,第三列来自常函数 1。三个系数把这些采样向量组合成目标数据。
这里的线性是针对未知系数而言。 多项式关于 t 含有平方,并不妨碍系数到观测值的关系是线性的。固定采样位置之后,矩阵 V 就固定了;换一组观测值,只需换右侧向量。
系数为
c=−3/211/22.
代回三个采样点可分别得到 6,7,5。线性系统与 LU会从消元推导这组系数,而不是把答案当作计算器输出。
矩阵乘矩阵:把两步处理接起来
设 B∈Rn×p 先把输入变成 n 个中间量,再由 A∈Rm×n 产生输出。我们希望一个矩阵就能记录整个过程:
(AB)x=A(Bx).
让输入依次取标准基向量,便知道乘积第 j 列必须是 A 作用于 B 第 j 列的结果。因此
(AB)ij=k=1∑naikbkj.
这个公式是在累加经过每个中间量的贡献。乘积大小为 m×p,共享的中间维数 n 被求和消去。
例先剪切再缩放,与反过来不同
取
S=(1011),D=(2001).S(x,y)=(x+y,y),D(x,y)=(2x,y)。直接计算:
DS=(2021),SD=(2011).同一个输入 (0,1) 分别得到 (2,1) 与 (1,1)。矩阵乘法通常不交换,因为处理顺序会改变结果。书写 DS 时,右侧的 S 先作用。
组合三步处理时,括号放在哪里不改变作用顺序。因此矩阵乘法满足结合律。也可以逐项验证:两种括号都给出有限和
j,k∑aijbjkckℓ.
一个乘积的三种读法
对 A∈Rm×n 和 B∈Rn×p,不必每次都从逐元素公式开始。
按列读: AB 的第 j 列为 Abj。这适合解释一个变换怎样同时处理多个输入向量。
按行读: AB 的第 i 行为 A 第 i 行与 B 的乘积。它把中间输出的各条规则重新组合成最终第 i 个输出的规则。
按中间坐标读: 设 ak 是 A 第 k 列,rk 是 B 第 k 行,则
AB=k=1∑nakrk.
每个 m×1 列向量与 1×p 行向量的乘积是一个 m×p 的外积。其中第 (i,j) 项为 aikbkj,表示第 k 个中间坐标对输入 j 到输出 i 的贡献。
例如取
A=(1324),B=(5768).
第一项取第一列与第一行的外积,第二项取第二列与第二行的外积:
AB=(13)(56)+(24)(78).
分别计算这两项,再逐项相加:
AB=(515618)+(14281632)=(19432250).
三种读法描述的是同一个乘积,只是把求和按不同结构组织起来。
分块乘法仍然要对齐中间维数
把输入拆成两组,把矩阵按对应列分块,就有
(A1A2)(x1x2)=A1x1+A2x2.
更一般地,若各块大小兼容,
(ACBD)(xy)=(Ax+ByCx+Dy).
块可以大小不同,也不必是方阵;共享的边界必须匹配。分块不是一种新乘法,而是在保留原运算的同时,把变量按问题结构分组。
相加、单位矩阵与逆矩阵
同大小矩阵逐项相加和数乘。由按列组合的定义,
(A+B)x=Ax+Bx,A(x+z)=Ax+Az.
单位矩阵 In 的对角线元素为 1,其余为 0。它的列就是标准基,所以 Inx=x。
对于方阵 A,若存在方阵 C 同时满足 CA=AC=I,就称 A 可逆,并记 C=A−1。逆矩阵把输出还原为输入。例如
(21−12)−1=51(2−112).
把两个矩阵按任一顺序相乘都得到 I2,即可验证。可逆矩阵的方程 Ax=b 对每个右端都有唯一解 A−1b。
反过来,如果方阵对每个右端都有唯一解,分别求解 Acj=ej,把解放入矩阵 C,就得到 AC=I。又因为齐次方程只有零解,由 A(CA−I)=0 逐列可得 CA=I。这说明可逆性恰好刻画了“所有目标都可达且系数唯一”。实际求解通常直接消元,不必先构造完整逆矩阵。
为什么矩阵不能随意消去
取
A=(1000),B=(0001).
两者都不是零矩阵,但 AB=0。因此,矩阵乘积为零不保证某个因子为零。同样,AX=AY 不保证 X=Y:矩阵 A 可能把 X−Y 中的非零信息消去了。
若已知 A 可逆,才能在左侧同时乘 A−1,推出 X=Y。若要消去的是右侧因子,则逆矩阵也必须乘在右侧。乘法不交换,因此位置不能改变。
逆矩阵是唯一的。若 C,D 都是 A 的逆,则
C=C(AD)=(CA)D=D.
对于二阶方阵,直接乘法还给出一个可以检验的公式。若 ad−bc=0,则
(acbd)−1=ad−bc1(d−c−ba).
两个矩阵相乘时,非对角项抵消,对角项都为 ad−bc。这里暂时把它看成乘法恒等式,不需要先用行列式理论。
若 ad−bc=0,逆不存在。第一行非零时,非零向量 (b,−a)T 会映为零;第一行为零而第二行非零时,可取 (d,−c)T;两行都为零则任意非零向量都在核中。任何可逆矩阵都不可能把非零输入映成零,否则乘逆后会得到这个输入也为零。
转置改变哪些索引
转置 AT 把行与列交换:
(AT)ij=aji.
它把 m×n 矩阵变成 n×m 矩阵,通常不是逆矩阵。根据乘积公式,
(AB)T=BTAT.
因为右侧的第 (i,j) 项是 ∑kbkiajk,恰好是 AB 的第 (j,i) 项。后续矩阵与图会解释,为什么对邻接矩阵转置需要特别小心方向约定。
练习
练习读懂矩形矩阵
取
B=110011.求 B(2,3)T,并说明第三个输出来自哪个输入。
解答
输出为 (2,5,3)T。第三行是 (0,1),所以第三个输出只取第二个输入。三个输出并不意味着需要三个输入。
练习顺序与逆运算
若方阵 A,B 都可逆,证明 (AB)−1=B−1A−1。
解答
利用结合律,(AB)(B−1A−1)=AIA−1=I,反向相乘也为 I。先撤销最后施加的 A,再撤销 B。
练习转置不等于求逆
取对角矩阵 D=diag(2,3)。分别求转置和逆,并说明二者承担的不同任务。
解答
转置仍为 D,逆为 diag(1/2,1/3)。转置交换索引,求逆撤销原变换。对称性不保证转置等于逆。
练习从单位输入读矩阵
某个矩阵把 (1,0) 映为 (1,2,3),把 (0,1) 映为 (−1,0,2)。求它对 (2,−1) 的输出。
解答
两个已知输出就是矩阵的两列,因此输出为 2(1,2,3)−(−1,0,2)=(3,4,4)。矩阵大小为 3×2。
评论