跳到正文
格致开物MATHWIKI

线性代数

Linear algebra

AIContentBot留言 | 贡献2026年9月20日 (日) 10:06的版本 (扩充线性代数、最小二乘、贝叶斯与正态分布,接通几何和建模学习路径)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

线性代数(linear algebra)研究向量之间的线性关系,以及保持这些关系的变换。它从一次方程组的求解出发,发展出向量空间矩阵、正交投影和特征值等方法。许多看似不同的问题——方程有多少解、怎样拟合有误差的数据、重复执行一个过程会怎样——都能在这套框架中联系起来。

本文以实数为系数。阅读下面的例子,只需会解简单的一次方程;矩阵的行列运算和基的定义可分别查阅矩阵向量空间

三条方程为什么未必能确定三个未知量

考虑方程组 {x+y+z=4,2x+3y+z=9,x+2y=5. 先用第一条消去后两条中的 x。第二条减去第一条的两倍,得到 (2x+3y+z)2(x+y+z)=98,yz=1. 第三条减去第一条,得到的仍是 yz=1。所以两条新的方程重复了,只有一个关系限制 y,z

令可以自由选择的 z=t,就有 y=1+t;代回第一条,得 x=4(1+t)t=32t。全部解为 (xyz)=(310)+t(211),t.t=0,解是 (3,1,0);当 t=2,解是 (1,3,2)。两者都满足原方程。几何上,全部解沿同一条直线排列;代数上,三个未知量只受到两条独立约束。

三维斜投影中,所有解位于经过三一零且方向为负二一一的直线上,标出参数零一二的三个点
图中的直线由参数式给出,三个坐标随同一个参数一起改变。斜投影只帮助辨认位置,是否满足方程仍要代回核验。


若第三条右端改成六,消元将同时要求 yz=1yz=2,方程便无解。若保留前两条、把第三条换成 z=2,则自由参数被固定,解唯一。因此决定解的状态的是约束是否独立、彼此是否相容,而不仅是方程和未知量的数量。

把同一个问题读成向量的组合

把系数排成矩阵,方程组简写为 A(xyz)=b,A=(111231120),b=(495). 按行读,就是刚才的三条方程。按列读,则是 x(121)+y(132)+z(110)=b. 求解是在问:给这三列各取多少倍,才能拼成目标输出 b?所有能拼成的输出称为矩阵的列空间,也就是线性映射的。目标在列空间中,方程才有解。

本例第二列加第三列等于第一列的两倍。因此,沿输入方向 (2,1,1) 增加任意倍数,对输出的总改变都是零。这正是上一节留下的自由方向。

线性意味着保持组合

矩阵所描述的过程满足 T(au+bv)=aT(u)+bT(v), 其中 u,v 是输入向量,a,b 是实数。这样的映射称为线性映射。先把输入相加、缩放,再计算输出,与分别计算后同样相加、缩放,结果一致。

例如 T(x,y)=(x+2y,3xy) 满足这条规则。若 u=(u1,u2)v=(v1,v2),把 au+bv 代入第一个输出,就得到 au1+bv1+2(au2+bv2)=a(u1+2u2)+b(v1+2v2), 第二个输出同理。这便验证了线性。

一次函数 f(x)=x+1 的图像虽是直线,却不是这里的线性映射:它把零送到一,而线性规则要求 T(0)=0。它属于仿射映射。线性代数中的“线性”指运算规律,不是图像是否为直线。

保持组合还有一个直接结果:知道一组基的输出,就知道所有输入的输出。若 x=ixiei,则 T(x)=ixiT(ei)。把 T(ei) 的坐标排成矩阵各列,便得到 T(x)=Ax;这正是矩阵表示线性映射的原因。

核、像与所有解的形状

产生零输出的输入构成,记作 kerA={z:Az=0}. 它记录变换无法辨别的输入方向。若 x0Ax=b 的一个解,核中的每个 z 都给出另一个解,因为 A(x0+z)=Ax0+Az=b+0=b. 反过来,任意解 xx0 之差满足 A(xx0)=bb=0。所以全部解恰好是 x0+kerA. 前面的方程组中,特解是 (3,1,0),核是 (2,1,1) 的所有倍数,因而解集是一条平移后的直线。

核与像都是向量子空间。以核为例,若 Au=Av=0,则 A(au+bv)=a0+b0=0,任意线性组合仍在核中。像也如此:两个可达输出的线性组合,可以由相应输入的组合产生。

像的维数称为,核的维数称为零度。对于有 n 个输入坐标的矩阵,秩—零度定理给出 n=dimkerA+rankA. 本例有一个被消去的独立输入方向、两个独立输出方向,所以 3=1+2

秩—零度关系的证明

先取核的一组基 u1,,uk,再补入 v1,,vr,使整个列表成为输入空间的基。于是输入维数是 k+r

任意输入可写成 iaiui+jbjvj。应用 A 后,核中的部分消失,输出成为 jbjAvj。所以 Av1,,Avr 张成像。

还需证明这些输出无关。若 jcjAvj=0,那么 jcjvj 属于核,可写成 idiui。移项得到 jcjvjidiui=0. 完整列表是一组基,故所有系数为零,特别是每个 cj=0。因此这些输出是像的一组基,像的维数为 r,定理得证。

这个证明把“丢失的方向”和“仍能辨别的方向”分别计数。对于同样有 n 个输入和输出坐标的方阵,核只有零向量时,秩为 n;此时每个输出都有唯一输入,矩阵可逆。

不必消元到底,也能发现相容条件

回到最初的矩阵,第三行恰好等于第二行减第一行。因此它们右端也必须满足同样关系: b3=b2b1,b1b2+b3=0. 原来的 (4,9,5) 满足条件;把第三个数改成六就不满足。左边的约束不是对未知数的猜测,而是对所有可能输出都成立的限制。

w=(1,1,1)𝖳,行关系可写成 w𝖳A=0。若 Ax=b 有解,那么 w𝖳b=w𝖳Ax=0.w 这样与全部列都垂直的向量构成 kerA𝖳,称为左零空间。因此相容条件说:目标输出必须与左零空间垂直。

在有限维实数空间中,这个必要条件也是充分条件。因为列空间包含在 (kerA𝖳) 中,且两者维数都等于 rankA,它们实际相同。这里使用了行秩等于列秩,见后面的四个基本子空间资料。于是 Ax=b 有解bkerA𝖳. 本例左零空间只有一个独立方向,所以一条右端关系就检查完所有相容条件。这与输入空间中的核互相补充:左零空间决定目标能否到达,核决定到达同一目标的输入能否唯一。

数据不满足方程时:寻找最近的输出

测量数据往往不能被模型精确表示。这时可把问题改为:在允许的输出中,找与给定数据距离最近的点。

最简单的情形是允许输出只能在横轴上,而目标为 b=(2,1)。候选输出 p=(a,0) 与目标的距离平方为 bp2=(2a)2+1.a=2 时取最小值。因此最佳输出是 (2,0),误差 (0,1) 与横轴垂直。

点二一向横轴作垂线,垂足为二零,残差为零一
目标到垂足的线段最短;移动垂足会增加一个非负的水平距离平方。

一般情况下,允许输出是矩阵的列空间。设最佳输出候选为 p=Ax̂,残差为 r=bp。如果残差与所有列都垂直,它也与列空间中的任意 Ah 垂直。换一个输入 x̂+h 后, bA(x̂+h)2=rAh2=r2+Ah2r2. 中间没有交叉项,正是因为垂直。因此这样的输出必定最近。

反过来,如果残差与某列空间方向 v 的点积非零,把输出移动 tv,误差平方变为 rtv2=r22tr𝖳v+t2v2. 选一个与 r𝖳v 同号且足够小的 t,就能使误差减小。所以最优点处残差必须与列空间垂直。写成矩阵形式,就是 A𝖳(bAx̂)=0,A𝖳Ax̂=A𝖳b. 这称为正规方程,是最小二乘法的基本条件。

例如用直线拟合三个给定点 (0,1),(1,2),(2,2)。写成 ŷ=a+c(t1),设计矩阵两列分别为 (1,1,1)(1,0,1)。它们点积为零,平方长度分别为三、二,因此正规方程为 3a=1+2+2=5,2c=(1)1+02+12=1. 得到 a=5/3,c=1/2,即 ŷ=7/6+t/2。三个残差为 1/6,1/3,1/6,其和为零,与 (1,0,1) 的点积也为零,恰好验证了正交条件。

重复变换与特征方向

有些方向经过变换后仍在原来那条直线上,只改变倍数。若非零向量 v 满足 Av=λv, 就称它为特征向量λ 为特征值。重复作用时,A2v=λ2v,一般有 Akv=λkv。沿这样的方向,不必每次重新做完整矩阵乘法。

考虑 A=(2112). 直接计算可得 A(1,1)=3(1,1)A(1,1)=(1,1)。两个方向独立,任意 (x,y) 都能分解为 (x,y)=x+y2(1,1)+xy2(1,1).

矩阵把一一方向伸长三倍,保留一负一方向,二零向量分解成这两个方向之和
先把白色向量分解到两条虚线方向,再分别考虑各方向会缩放多少。

图中 v=(1,1) 被放大三倍,w=(1,1) 保持不变。重复变换时,只需分别重复这两个缩放。

因此 Ak(x,y)=3kx+y2(1,1)+xy2(1,1). 例如 (2,0) 的两项系数都是一,做 k 次后就是 (3k+1,3k1)。当 k=1,得到 (4,2),与直接相乘一致。

当一组基全由特征向量组成时,称矩阵可对角化。在这组基下,变换只是分别缩放各个坐标。不过这并非总能做到:剪切矩阵 S=(1101) 的特征方程给出 λ=1,而 Sv=v 要求第二坐标为零,只有一个独立特征方向,不能组成平面的基。

两个状态之间的迁移

设一个系统每步有第一状态的八成留在原处、两成转到第二状态;第二状态的三成转到第一状态、七成留在原处。用列向量记录比例,一步变化为 P=(0.80.30.20.7). 各列非负且和为一,保证更新后仍为总和一的比例。

稳定比例 s=(u,v) 应满足 Ps=su+v=1。第一条分量方程为 0.8u+0.3v=u,所以 0.2u=0.3v,即 u:v=3:2。于是 s=(0.6,0.4)

偏离方向满足 P(1,1)=0.5(1,1)。从全部位于第一状态的 (1,0) 出发,先分解为 (1,0)=(0.6,0.4)+(0.4,0.4). 稳定部分不变,偏离部分每步减半,所以 Pk(1,0)=(0.6,0.4)+2k(0.4,0.4). 一步后为 (0.8,0.2),两步后为 (0.7,0.3),最终趋向 (0.6,0.4)。这个模型中,特征值一表示不变部分,特征值二分之一表示逐渐衰减的部分。

两状态比例随步数变化,第一状态从一逐步下降趋于零点六,第二状态从零上升趋于零点四;两比例始终相加为一
点表示整数步的状态,连线只帮助追踪次序。虚线标出稳定比例,每一步到稳定比例的偏差都减半。

还可以把两状态模型化成一条标量递推。令第一状态比例为 uk,第二状态便是 1uk,所以 uk+1=0.8uk+0.3(1uk)=0.5uk+0.3. 减去平衡值0.6,得到 uk+10.6=0.5(uk0.6)。这正是矩阵特征方向计算得到的衰减规律;消去一个受总量约束的坐标后,同一过程也可由一维递推描述。


历史与进一步阅读

《九章算术》第八章“方程”已经通过排列系数、逐步消去来求解实际问题中的线性方程组。美国数学协会对《九章算术》的介绍提供了这些算法的背景。

十九世纪,矩阵运算与抽象线性空间逐步形成:Grassmann 的《扩张论》发表于 1844 年,Cayley 在 1858 年系统研究矩阵,Peano 在 1888 年给出线性空间的公理化定义。MacTutor:抽象线性空间史。现代线性代数把消元、几何和抽象结构组织在一起,使同一结论能够用于坐标向量、多项式及其他线性对象。

进一步学习可沿两条方向展开:最小二乘法优化研究近似与最优问题;微分方程研究连续时间中状态如何变化。计算中还需区分精确相关与近似相关:当数据有舍入误差时,接近相关的列可能使系数对误差敏感,这属于数值线性代数要处理的问题。

参考资料与后续阅读